Skip to main content

origincloud_resourcemanager/generated/
origincloud.resourcemanager.v1beta1.rs

1// Code generated by origincloud-sdk-generator. DO NOT EDIT.
2// source: origincloud/resourcemanager/v1beta1/quota.proto
3// source: origincloud/resourcemanager/v1beta1/organization.proto
4// source: origincloud/resourcemanager/v1beta1/project.proto
5
6/// An organization's quota: the most of each kind of resource its projects
7/// may hold together, and how much of it they use. Creating a resource past a
8/// limit is refused.
9#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10pub struct OrganizationQuota {
11    /// The quota's resource name, `organizations/{organization}/quota`.
12    #[prost(string, tag = "1")]
13    pub name: ::prost::alloc::string::String,
14    /// The most instances that aren't terminated.
15    #[prost(int64, tag = "2")]
16    pub max_instances: i64,
17    /// The most vCPUs, summed over the instances that aren't terminated.
18    #[prost(int64, tag = "3")]
19    pub max_vcpu: i64,
20    /// The most GiB of volumes that aren't deleted.
21    #[prost(int64, tag = "4")]
22    pub max_volume_gib: i64,
23    /// The most VPCs.
24    #[prost(int64, tag = "5")]
25    pub max_vpcs: i64,
26    /// The most floating IPs.
27    #[prost(int64, tag = "6")]
28    pub max_public_ips: i64,
29    /// The most DNS hosted zones, including those not yet verified.
30    #[prost(int64, tag = "8")]
31    pub max_hosted_zones: i64,
32    /// The most DNS record sets, summed over every hosted zone.
33    #[prost(int64, tag = "9")]
34    pub max_record_sets: i64,
35    /// How much of each limit the organization's projects use together.
36    #[prost(message, optional, tag = "7")]
37    pub usage: ::core::option::Option<QuotaUsage>,
38}
39/// A project's quota: the budgets its owners set for it, and how much of each
40/// the project uses. A project without a budget for a kind of resource is
41/// bounded by its organization's quota alone; with one, by both. Budgets are
42/// not reservations: several projects' budgets may add up to more than the
43/// organization's limit.
44#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
45pub struct ProjectQuota {
46    /// The quota's resource name, `projects/{project}/quota`.
47    #[prost(string, tag = "1")]
48    pub name: ::prost::alloc::string::String,
49    /// The most instances that aren't terminated; unset means no budget. Each
50    /// budget is zero or more, and no more than the organization's limit for
51    /// the same kind.
52    #[prost(int64, optional, tag = "2")]
53    pub max_instances: ::core::option::Option<i64>,
54    /// The most vCPUs, summed over the instances that aren't terminated; unset
55    /// means no budget.
56    #[prost(int64, optional, tag = "3")]
57    pub max_vcpu: ::core::option::Option<i64>,
58    /// The most GiB of volumes that aren't deleted; unset means no budget.
59    #[prost(int64, optional, tag = "4")]
60    pub max_volume_gib: ::core::option::Option<i64>,
61    /// The most VPCs; unset means no budget.
62    #[prost(int64, optional, tag = "5")]
63    pub max_vpcs: ::core::option::Option<i64>,
64    /// The most floating IPs; unset means no budget.
65    #[prost(int64, optional, tag = "6")]
66    pub max_public_ips: ::core::option::Option<i64>,
67    /// The most DNS hosted zones, including those not yet verified; unset
68    /// means no budget.
69    #[prost(int64, optional, tag = "8")]
70    pub max_hosted_zones: ::core::option::Option<i64>,
71    /// The most DNS record sets, summed over the project's hosted zones; unset
72    /// means no budget.
73    #[prost(int64, optional, tag = "9")]
74    pub max_record_sets: ::core::option::Option<i64>,
75    /// How much of each budget the project uses.
76    #[prost(message, optional, tag = "7")]
77    pub usage: ::core::option::Option<QuotaUsage>,
78}
79/// How many of each kind of resource are held. Counted continuously, so a
80/// resource just created or deleted can take up to half a minute to show;
81/// a limit is enforced on the exact count.
82#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
83pub struct QuotaUsage {
84    /// Instances that aren't terminated.
85    #[prost(int64, tag = "1")]
86    pub instances: i64,
87    /// vCPUs of the instances that aren't terminated.
88    #[prost(int64, tag = "2")]
89    pub vcpu: i64,
90    /// GiB of volumes that aren't deleted.
91    #[prost(int64, tag = "3")]
92    pub volume_gib: i64,
93    /// VPCs.
94    #[prost(int64, tag = "4")]
95    pub vpcs: i64,
96    /// Floating IPs.
97    #[prost(int64, tag = "5")]
98    pub public_ips: i64,
99    /// DNS hosted zones, including those not yet verified; unset while they
100    /// can't be counted, the other figures answered all the same.
101    #[prost(int64, optional, tag = "6")]
102    pub hosted_zones: ::core::option::Option<i64>,
103    /// DNS record sets; unset while they can't be counted, the other figures
104    /// answered all the same.
105    #[prost(int64, optional, tag = "7")]
106    pub record_sets: ::core::option::Option<i64>,
107}
108/// An organization: the account its projects, members and billing belong to.
109#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
110pub struct Organization {
111    /// The organization's resource name, `organizations/{organization}`.
112    #[prost(string, tag = "1")]
113    pub name: ::prost::alloc::string::String,
114    /// The organization's URN, the identifier access policies and the audit
115    /// log use.
116    #[prost(string, tag = "2")]
117    pub urn: ::prost::alloc::string::String,
118    /// The name the console shows, typically the company's name. Not empty.
119    #[prost(string, tag = "3")]
120    pub display_name: ::prost::alloc::string::String,
121    /// Whether the organization may create resources. Decided by the
122    /// platform, never by the organization's members.
123    #[prost(enumeration = "organization::State", tag = "4")]
124    pub state: i32,
125    /// When the organization was created.
126    #[prost(message, optional, tag = "5")]
127    pub create_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
128    /// The principal that created the organization, such as `user:<id>` or
129    /// `service_account:<id>`.
130    #[prost(string, tag = "6")]
131    pub creator: ::prost::alloc::string::String,
132}
133/// Nested message and enum types in `Organization`.
134pub mod organization {
135    /// Whether the organization may create resources.
136    #[derive(
137        Clone,
138        Copy,
139        Debug,
140        PartialEq,
141        Eq,
142        Hash,
143        PartialOrd,
144        Ord,
145        ::prost::Enumeration
146    )]
147    #[repr(i32)]
148    pub enum State {
149        /// Not set.
150        Unspecified = 0,
151        /// Under review by the platform: it can't create projects or resources
152        /// until it is `organization::State::Active`.
153        PendingReview = 1,
154        /// Admitted: it can create projects and resources.
155        Active = 2,
156        /// Not admitted. Final.
157        Rejected = 3,
158    }
159    impl State {
160        /// String value of the enum field names used in the ProtoBuf definition.
161        ///
162        /// The values are not transformed in any way and thus are considered stable
163        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
164        pub fn as_str_name(&self) -> &'static str {
165            match self {
166                Self::Unspecified => "STATE_UNSPECIFIED",
167                Self::PendingReview => "PENDING_REVIEW",
168                Self::Active => "ACTIVE",
169                Self::Rejected => "REJECTED",
170            }
171        }
172        /// Creates an enum from field names used in the ProtoBuf definition.
173        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
174            match value {
175                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
176                "PENDING_REVIEW" => Some(Self::PendingReview),
177                "ACTIVE" => Some(Self::Active),
178                "REJECTED" => Some(Self::Rejected),
179                _ => None,
180            }
181        }
182    }
183}
184/// The request for GetOrganization.
185#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
186pub struct GetOrganizationRequest {
187    /// The organization to return.
188    #[prost(string, tag = "1")]
189    pub name: ::prost::alloc::string::String,
190}
191/// The request for ListOrganizations.
192#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
193pub struct ListOrganizationsRequest {
194    /// The most organizations to return; the server clamps it, and 0 means its
195    /// default.
196    #[prost(int32, tag = "1")]
197    pub page_size: i32,
198    /// A previous response's `next_page_token`, for the page after it.
199    #[prost(string, tag = "2")]
200    pub page_token: ::prost::alloc::string::String,
201}
202/// The response for ListOrganizations.
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct ListOrganizationsResponse {
205    /// The organizations on this page.
206    #[prost(message, repeated, tag = "1")]
207    pub organizations: ::prost::alloc::vec::Vec<Organization>,
208    /// The token for the next page; empty on the last one.
209    #[prost(string, tag = "2")]
210    pub next_page_token: ::prost::alloc::string::String,
211}
212/// The request for CreateOrganization.
213#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
214pub struct CreateOrganizationRequest {
215    /// The organization to create: its `display_name`.
216    #[prost(message, optional, tag = "1")]
217    pub organization: ::core::option::Option<Organization>,
218    /// A UUID; a repeat with the same id returns the organization the first
219    /// request created instead of creating a second one.
220    #[prost(string, tag = "2")]
221    pub request_id: ::prost::alloc::string::String,
222}
223/// The request for UpdateOrganization.
224#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
225pub struct UpdateOrganizationRequest {
226    /// The organization, by its name, with the fields to change.
227    #[prost(message, optional, tag = "1")]
228    pub organization: ::core::option::Option<Organization>,
229    /// The fields to change: `display_name`. `*` is the same.
230    #[prost(message, optional, tag = "2")]
231    pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
232}
233/// The request for DeleteOrganization.
234#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
235pub struct DeleteOrganizationRequest {
236    /// The organization to delete.
237    #[prost(string, tag = "1")]
238    pub name: ::prost::alloc::string::String,
239}
240/// The request for GetOrganizationQuota.
241#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
242pub struct GetOrganizationQuotaRequest {
243    /// The quota to return, `organizations/{organization}/quota`.
244    #[prost(string, tag = "1")]
245    pub name: ::prost::alloc::string::String,
246}
247/// A project: the namespace an organization's resources are created in.
248#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
249pub struct Project {
250    /// The project's resource name, `projects/{project}`. The id, chosen when
251    /// the project is created, is unique across the platform and never used
252    /// again, not even after the project is deleted.
253    #[prost(string, tag = "1")]
254    pub name: ::prost::alloc::string::String,
255    /// The project's URN, the identifier access policies and the audit log
256    /// use.
257    #[prost(string, tag = "2")]
258    pub urn: ::prost::alloc::string::String,
259    /// The organization the project belongs to, `organizations/{organization}`.
260    #[prost(string, tag = "3")]
261    pub organization: ::prost::alloc::string::String,
262    /// The name the console shows. Not empty.
263    #[prost(string, tag = "4")]
264    pub display_name: ::prost::alloc::string::String,
265    /// When the project was created.
266    #[prost(message, optional, tag = "5")]
267    pub create_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
268    /// The principal that created the project, such as `user:<id>` or
269    /// `service_account:<id>`.
270    #[prost(string, tag = "6")]
271    pub creator: ::prost::alloc::string::String,
272}
273/// The request for GetProject.
274#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
275pub struct GetProjectRequest {
276    /// The project to return.
277    #[prost(string, tag = "1")]
278    pub name: ::prost::alloc::string::String,
279}
280/// The request for ListProjects.
281#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
282pub struct ListProjectsRequest {
283    /// The organization whose projects to list, `organizations/{organization}`.
284    #[prost(string, tag = "1")]
285    pub organization: ::prost::alloc::string::String,
286    /// The most projects to return; the server clamps it, and 0 means its
287    /// default.
288    #[prost(int32, tag = "2")]
289    pub page_size: i32,
290    /// A previous response's `next_page_token`, for the page after it.
291    #[prost(string, tag = "3")]
292    pub page_token: ::prost::alloc::string::String,
293}
294/// The response for ListProjects.
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct ListProjectsResponse {
297    /// The projects on this page.
298    #[prost(message, repeated, tag = "1")]
299    pub projects: ::prost::alloc::vec::Vec<Project>,
300    /// The token for the next page; empty on the last one.
301    #[prost(string, tag = "2")]
302    pub next_page_token: ::prost::alloc::string::String,
303}
304/// The request for CreateProject.
305#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
306pub struct CreateProjectRequest {
307    /// The project to create: its `organization` and `display_name`.
308    #[prost(message, optional, tag = "1")]
309    pub project: ::core::option::Option<Project>,
310    /// The project's id, the last segment of its name: 6 to 16 lowercase
311    /// letters, digits and hyphens, starting with a letter and not ending with
312    /// a hyphen, such as `acme-prod`.
313    #[prost(string, tag = "3")]
314    pub project_id: ::prost::alloc::string::String,
315    /// A UUID; a repeat with the same id returns the project the first request
316    /// created instead of creating a second one.
317    #[prost(string, tag = "2")]
318    pub request_id: ::prost::alloc::string::String,
319}
320/// The request for UpdateProject.
321#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
322pub struct UpdateProjectRequest {
323    /// The project, by its name, with the fields to change.
324    #[prost(message, optional, tag = "1")]
325    pub project: ::core::option::Option<Project>,
326    /// The fields to change: `display_name`. `*` is the same.
327    #[prost(message, optional, tag = "2")]
328    pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
329}
330/// The request for DeleteProject.
331#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
332pub struct DeleteProjectRequest {
333    /// The project to delete.
334    #[prost(string, tag = "1")]
335    pub name: ::prost::alloc::string::String,
336}
337/// The request for GetProjectQuota.
338#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
339pub struct GetProjectQuotaRequest {
340    /// The quota to return, `projects/{project}/quota`.
341    #[prost(string, tag = "1")]
342    pub name: ::prost::alloc::string::String,
343}
344/// The request for UpdateProjectQuota.
345#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
346pub struct UpdateProjectQuotaRequest {
347    /// The quota, by its name, with the budgets to set.
348    #[prost(message, optional, tag = "1")]
349    pub project_quota: ::core::option::Option<ProjectQuota>,
350    /// The budgets to set or remove, such as `max_vcpu`. `*` is every budget:
351    /// those given are set, the others removed.
352    #[prost(message, optional, tag = "2")]
353    pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
354}
355impl serde::Serialize for CreateOrganizationRequest {
356    #[allow(deprecated)]
357    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
358    where
359        S: serde::Serializer,
360    {
361        use serde::ser::SerializeStruct;
362        let mut len = 0;
363        if self.organization.is_some() {
364            len += 1;
365        }
366        if !self.request_id.is_empty() {
367            len += 1;
368        }
369        let mut struct_ser = serializer
370            .serialize_struct(
371                "origincloud.resourcemanager.v1beta1.CreateOrganizationRequest",
372                len,
373            )?;
374        if let Some(v) = self.organization.as_ref() {
375            struct_ser.serialize_field("organization", v)?;
376        }
377        if !self.request_id.is_empty() {
378            struct_ser.serialize_field("requestId", &self.request_id)?;
379        }
380        struct_ser.end()
381    }
382}
383impl<'de> serde::Deserialize<'de> for CreateOrganizationRequest {
384    #[allow(deprecated)]
385    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
386    where
387        D: serde::Deserializer<'de>,
388    {
389        const FIELDS: &[&str] = &["organization", "request_id", "requestId"];
390        #[allow(clippy::enum_variant_names)]
391        enum GeneratedField {
392            Organization,
393            RequestId,
394            __SkipField__,
395        }
396        impl<'de> serde::Deserialize<'de> for GeneratedField {
397            fn deserialize<D>(
398                deserializer: D,
399            ) -> std::result::Result<GeneratedField, D::Error>
400            where
401                D: serde::Deserializer<'de>,
402            {
403                struct GeneratedVisitor;
404                impl serde::de::Visitor<'_> for GeneratedVisitor {
405                    type Value = GeneratedField;
406                    fn expecting(
407                        &self,
408                        formatter: &mut std::fmt::Formatter<'_>,
409                    ) -> std::fmt::Result {
410                        write!(formatter, "expected one of: {:?}", & FIELDS)
411                    }
412                    #[allow(unused_variables)]
413                    fn visit_str<E>(
414                        self,
415                        value: &str,
416                    ) -> std::result::Result<GeneratedField, E>
417                    where
418                        E: serde::de::Error,
419                    {
420                        match value {
421                            "organization" => Ok(GeneratedField::Organization),
422                            "requestId" | "request_id" => Ok(GeneratedField::RequestId),
423                            _ => Ok(GeneratedField::__SkipField__),
424                        }
425                    }
426                }
427                deserializer.deserialize_identifier(GeneratedVisitor)
428            }
429        }
430        struct GeneratedVisitor;
431        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
432            type Value = CreateOrganizationRequest;
433            fn expecting(
434                &self,
435                formatter: &mut std::fmt::Formatter<'_>,
436            ) -> std::fmt::Result {
437                formatter
438                    .write_str(
439                        "struct origincloud.resourcemanager.v1beta1.CreateOrganizationRequest",
440                    )
441            }
442            fn visit_map<V>(
443                self,
444                mut map_: V,
445            ) -> std::result::Result<CreateOrganizationRequest, V::Error>
446            where
447                V: serde::de::MapAccess<'de>,
448            {
449                let mut organization__ = None;
450                let mut request_id__ = None;
451                while let Some(k) = map_.next_key()? {
452                    match k {
453                        GeneratedField::Organization => {
454                            if organization__.is_some() {
455                                return Err(
456                                    serde::de::Error::duplicate_field("organization"),
457                                );
458                            }
459                            organization__ = map_.next_value()?;
460                        }
461                        GeneratedField::RequestId => {
462                            if request_id__.is_some() {
463                                return Err(serde::de::Error::duplicate_field("requestId"));
464                            }
465                            request_id__ = Some(map_.next_value()?);
466                        }
467                        GeneratedField::__SkipField__ => {
468                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
469                        }
470                    }
471                }
472                Ok(CreateOrganizationRequest {
473                    organization: organization__,
474                    request_id: request_id__.unwrap_or_default(),
475                })
476            }
477        }
478        deserializer
479            .deserialize_struct(
480                "origincloud.resourcemanager.v1beta1.CreateOrganizationRequest",
481                FIELDS,
482                GeneratedVisitor,
483            )
484    }
485}
486impl serde::Serialize for CreateProjectRequest {
487    #[allow(deprecated)]
488    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
489    where
490        S: serde::Serializer,
491    {
492        use serde::ser::SerializeStruct;
493        let mut len = 0;
494        if self.project.is_some() {
495            len += 1;
496        }
497        if !self.project_id.is_empty() {
498            len += 1;
499        }
500        if !self.request_id.is_empty() {
501            len += 1;
502        }
503        let mut struct_ser = serializer
504            .serialize_struct(
505                "origincloud.resourcemanager.v1beta1.CreateProjectRequest",
506                len,
507            )?;
508        if let Some(v) = self.project.as_ref() {
509            struct_ser.serialize_field("project", v)?;
510        }
511        if !self.project_id.is_empty() {
512            struct_ser.serialize_field("projectId", &self.project_id)?;
513        }
514        if !self.request_id.is_empty() {
515            struct_ser.serialize_field("requestId", &self.request_id)?;
516        }
517        struct_ser.end()
518    }
519}
520impl<'de> serde::Deserialize<'de> for CreateProjectRequest {
521    #[allow(deprecated)]
522    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
523    where
524        D: serde::Deserializer<'de>,
525    {
526        const FIELDS: &[&str] = &[
527            "project",
528            "project_id",
529            "projectId",
530            "request_id",
531            "requestId",
532        ];
533        #[allow(clippy::enum_variant_names)]
534        enum GeneratedField {
535            Project,
536            ProjectId,
537            RequestId,
538            __SkipField__,
539        }
540        impl<'de> serde::Deserialize<'de> for GeneratedField {
541            fn deserialize<D>(
542                deserializer: D,
543            ) -> std::result::Result<GeneratedField, D::Error>
544            where
545                D: serde::Deserializer<'de>,
546            {
547                struct GeneratedVisitor;
548                impl serde::de::Visitor<'_> for GeneratedVisitor {
549                    type Value = GeneratedField;
550                    fn expecting(
551                        &self,
552                        formatter: &mut std::fmt::Formatter<'_>,
553                    ) -> std::fmt::Result {
554                        write!(formatter, "expected one of: {:?}", & FIELDS)
555                    }
556                    #[allow(unused_variables)]
557                    fn visit_str<E>(
558                        self,
559                        value: &str,
560                    ) -> std::result::Result<GeneratedField, E>
561                    where
562                        E: serde::de::Error,
563                    {
564                        match value {
565                            "project" => Ok(GeneratedField::Project),
566                            "projectId" | "project_id" => Ok(GeneratedField::ProjectId),
567                            "requestId" | "request_id" => Ok(GeneratedField::RequestId),
568                            _ => Ok(GeneratedField::__SkipField__),
569                        }
570                    }
571                }
572                deserializer.deserialize_identifier(GeneratedVisitor)
573            }
574        }
575        struct GeneratedVisitor;
576        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
577            type Value = CreateProjectRequest;
578            fn expecting(
579                &self,
580                formatter: &mut std::fmt::Formatter<'_>,
581            ) -> std::fmt::Result {
582                formatter
583                    .write_str(
584                        "struct origincloud.resourcemanager.v1beta1.CreateProjectRequest",
585                    )
586            }
587            fn visit_map<V>(
588                self,
589                mut map_: V,
590            ) -> std::result::Result<CreateProjectRequest, V::Error>
591            where
592                V: serde::de::MapAccess<'de>,
593            {
594                let mut project__ = None;
595                let mut project_id__ = None;
596                let mut request_id__ = None;
597                while let Some(k) = map_.next_key()? {
598                    match k {
599                        GeneratedField::Project => {
600                            if project__.is_some() {
601                                return Err(serde::de::Error::duplicate_field("project"));
602                            }
603                            project__ = map_.next_value()?;
604                        }
605                        GeneratedField::ProjectId => {
606                            if project_id__.is_some() {
607                                return Err(serde::de::Error::duplicate_field("projectId"));
608                            }
609                            project_id__ = Some(map_.next_value()?);
610                        }
611                        GeneratedField::RequestId => {
612                            if request_id__.is_some() {
613                                return Err(serde::de::Error::duplicate_field("requestId"));
614                            }
615                            request_id__ = Some(map_.next_value()?);
616                        }
617                        GeneratedField::__SkipField__ => {
618                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
619                        }
620                    }
621                }
622                Ok(CreateProjectRequest {
623                    project: project__,
624                    project_id: project_id__.unwrap_or_default(),
625                    request_id: request_id__.unwrap_or_default(),
626                })
627            }
628        }
629        deserializer
630            .deserialize_struct(
631                "origincloud.resourcemanager.v1beta1.CreateProjectRequest",
632                FIELDS,
633                GeneratedVisitor,
634            )
635    }
636}
637impl serde::Serialize for DeleteOrganizationRequest {
638    #[allow(deprecated)]
639    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
640    where
641        S: serde::Serializer,
642    {
643        use serde::ser::SerializeStruct;
644        let mut len = 0;
645        if !self.name.is_empty() {
646            len += 1;
647        }
648        let mut struct_ser = serializer
649            .serialize_struct(
650                "origincloud.resourcemanager.v1beta1.DeleteOrganizationRequest",
651                len,
652            )?;
653        if !self.name.is_empty() {
654            struct_ser.serialize_field("name", &self.name)?;
655        }
656        struct_ser.end()
657    }
658}
659impl<'de> serde::Deserialize<'de> for DeleteOrganizationRequest {
660    #[allow(deprecated)]
661    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
662    where
663        D: serde::Deserializer<'de>,
664    {
665        const FIELDS: &[&str] = &["name"];
666        #[allow(clippy::enum_variant_names)]
667        enum GeneratedField {
668            Name,
669            __SkipField__,
670        }
671        impl<'de> serde::Deserialize<'de> for GeneratedField {
672            fn deserialize<D>(
673                deserializer: D,
674            ) -> std::result::Result<GeneratedField, D::Error>
675            where
676                D: serde::Deserializer<'de>,
677            {
678                struct GeneratedVisitor;
679                impl serde::de::Visitor<'_> for GeneratedVisitor {
680                    type Value = GeneratedField;
681                    fn expecting(
682                        &self,
683                        formatter: &mut std::fmt::Formatter<'_>,
684                    ) -> std::fmt::Result {
685                        write!(formatter, "expected one of: {:?}", & FIELDS)
686                    }
687                    #[allow(unused_variables)]
688                    fn visit_str<E>(
689                        self,
690                        value: &str,
691                    ) -> std::result::Result<GeneratedField, E>
692                    where
693                        E: serde::de::Error,
694                    {
695                        match value {
696                            "name" => Ok(GeneratedField::Name),
697                            _ => Ok(GeneratedField::__SkipField__),
698                        }
699                    }
700                }
701                deserializer.deserialize_identifier(GeneratedVisitor)
702            }
703        }
704        struct GeneratedVisitor;
705        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
706            type Value = DeleteOrganizationRequest;
707            fn expecting(
708                &self,
709                formatter: &mut std::fmt::Formatter<'_>,
710            ) -> std::fmt::Result {
711                formatter
712                    .write_str(
713                        "struct origincloud.resourcemanager.v1beta1.DeleteOrganizationRequest",
714                    )
715            }
716            fn visit_map<V>(
717                self,
718                mut map_: V,
719            ) -> std::result::Result<DeleteOrganizationRequest, V::Error>
720            where
721                V: serde::de::MapAccess<'de>,
722            {
723                let mut name__ = None;
724                while let Some(k) = map_.next_key()? {
725                    match k {
726                        GeneratedField::Name => {
727                            if name__.is_some() {
728                                return Err(serde::de::Error::duplicate_field("name"));
729                            }
730                            name__ = Some(map_.next_value()?);
731                        }
732                        GeneratedField::__SkipField__ => {
733                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
734                        }
735                    }
736                }
737                Ok(DeleteOrganizationRequest {
738                    name: name__.unwrap_or_default(),
739                })
740            }
741        }
742        deserializer
743            .deserialize_struct(
744                "origincloud.resourcemanager.v1beta1.DeleteOrganizationRequest",
745                FIELDS,
746                GeneratedVisitor,
747            )
748    }
749}
750impl serde::Serialize for DeleteProjectRequest {
751    #[allow(deprecated)]
752    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
753    where
754        S: serde::Serializer,
755    {
756        use serde::ser::SerializeStruct;
757        let mut len = 0;
758        if !self.name.is_empty() {
759            len += 1;
760        }
761        let mut struct_ser = serializer
762            .serialize_struct(
763                "origincloud.resourcemanager.v1beta1.DeleteProjectRequest",
764                len,
765            )?;
766        if !self.name.is_empty() {
767            struct_ser.serialize_field("name", &self.name)?;
768        }
769        struct_ser.end()
770    }
771}
772impl<'de> serde::Deserialize<'de> for DeleteProjectRequest {
773    #[allow(deprecated)]
774    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
775    where
776        D: serde::Deserializer<'de>,
777    {
778        const FIELDS: &[&str] = &["name"];
779        #[allow(clippy::enum_variant_names)]
780        enum GeneratedField {
781            Name,
782            __SkipField__,
783        }
784        impl<'de> serde::Deserialize<'de> for GeneratedField {
785            fn deserialize<D>(
786                deserializer: D,
787            ) -> std::result::Result<GeneratedField, D::Error>
788            where
789                D: serde::Deserializer<'de>,
790            {
791                struct GeneratedVisitor;
792                impl serde::de::Visitor<'_> for GeneratedVisitor {
793                    type Value = GeneratedField;
794                    fn expecting(
795                        &self,
796                        formatter: &mut std::fmt::Formatter<'_>,
797                    ) -> std::fmt::Result {
798                        write!(formatter, "expected one of: {:?}", & FIELDS)
799                    }
800                    #[allow(unused_variables)]
801                    fn visit_str<E>(
802                        self,
803                        value: &str,
804                    ) -> std::result::Result<GeneratedField, E>
805                    where
806                        E: serde::de::Error,
807                    {
808                        match value {
809                            "name" => Ok(GeneratedField::Name),
810                            _ => Ok(GeneratedField::__SkipField__),
811                        }
812                    }
813                }
814                deserializer.deserialize_identifier(GeneratedVisitor)
815            }
816        }
817        struct GeneratedVisitor;
818        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
819            type Value = DeleteProjectRequest;
820            fn expecting(
821                &self,
822                formatter: &mut std::fmt::Formatter<'_>,
823            ) -> std::fmt::Result {
824                formatter
825                    .write_str(
826                        "struct origincloud.resourcemanager.v1beta1.DeleteProjectRequest",
827                    )
828            }
829            fn visit_map<V>(
830                self,
831                mut map_: V,
832            ) -> std::result::Result<DeleteProjectRequest, V::Error>
833            where
834                V: serde::de::MapAccess<'de>,
835            {
836                let mut name__ = None;
837                while let Some(k) = map_.next_key()? {
838                    match k {
839                        GeneratedField::Name => {
840                            if name__.is_some() {
841                                return Err(serde::de::Error::duplicate_field("name"));
842                            }
843                            name__ = Some(map_.next_value()?);
844                        }
845                        GeneratedField::__SkipField__ => {
846                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
847                        }
848                    }
849                }
850                Ok(DeleteProjectRequest {
851                    name: name__.unwrap_or_default(),
852                })
853            }
854        }
855        deserializer
856            .deserialize_struct(
857                "origincloud.resourcemanager.v1beta1.DeleteProjectRequest",
858                FIELDS,
859                GeneratedVisitor,
860            )
861    }
862}
863impl serde::Serialize for GetOrganizationQuotaRequest {
864    #[allow(deprecated)]
865    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
866    where
867        S: serde::Serializer,
868    {
869        use serde::ser::SerializeStruct;
870        let mut len = 0;
871        if !self.name.is_empty() {
872            len += 1;
873        }
874        let mut struct_ser = serializer
875            .serialize_struct(
876                "origincloud.resourcemanager.v1beta1.GetOrganizationQuotaRequest",
877                len,
878            )?;
879        if !self.name.is_empty() {
880            struct_ser.serialize_field("name", &self.name)?;
881        }
882        struct_ser.end()
883    }
884}
885impl<'de> serde::Deserialize<'de> for GetOrganizationQuotaRequest {
886    #[allow(deprecated)]
887    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
888    where
889        D: serde::Deserializer<'de>,
890    {
891        const FIELDS: &[&str] = &["name"];
892        #[allow(clippy::enum_variant_names)]
893        enum GeneratedField {
894            Name,
895            __SkipField__,
896        }
897        impl<'de> serde::Deserialize<'de> for GeneratedField {
898            fn deserialize<D>(
899                deserializer: D,
900            ) -> std::result::Result<GeneratedField, D::Error>
901            where
902                D: serde::Deserializer<'de>,
903            {
904                struct GeneratedVisitor;
905                impl serde::de::Visitor<'_> for GeneratedVisitor {
906                    type Value = GeneratedField;
907                    fn expecting(
908                        &self,
909                        formatter: &mut std::fmt::Formatter<'_>,
910                    ) -> std::fmt::Result {
911                        write!(formatter, "expected one of: {:?}", & FIELDS)
912                    }
913                    #[allow(unused_variables)]
914                    fn visit_str<E>(
915                        self,
916                        value: &str,
917                    ) -> std::result::Result<GeneratedField, E>
918                    where
919                        E: serde::de::Error,
920                    {
921                        match value {
922                            "name" => Ok(GeneratedField::Name),
923                            _ => Ok(GeneratedField::__SkipField__),
924                        }
925                    }
926                }
927                deserializer.deserialize_identifier(GeneratedVisitor)
928            }
929        }
930        struct GeneratedVisitor;
931        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
932            type Value = GetOrganizationQuotaRequest;
933            fn expecting(
934                &self,
935                formatter: &mut std::fmt::Formatter<'_>,
936            ) -> std::fmt::Result {
937                formatter
938                    .write_str(
939                        "struct origincloud.resourcemanager.v1beta1.GetOrganizationQuotaRequest",
940                    )
941            }
942            fn visit_map<V>(
943                self,
944                mut map_: V,
945            ) -> std::result::Result<GetOrganizationQuotaRequest, V::Error>
946            where
947                V: serde::de::MapAccess<'de>,
948            {
949                let mut name__ = None;
950                while let Some(k) = map_.next_key()? {
951                    match k {
952                        GeneratedField::Name => {
953                            if name__.is_some() {
954                                return Err(serde::de::Error::duplicate_field("name"));
955                            }
956                            name__ = Some(map_.next_value()?);
957                        }
958                        GeneratedField::__SkipField__ => {
959                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
960                        }
961                    }
962                }
963                Ok(GetOrganizationQuotaRequest {
964                    name: name__.unwrap_or_default(),
965                })
966            }
967        }
968        deserializer
969            .deserialize_struct(
970                "origincloud.resourcemanager.v1beta1.GetOrganizationQuotaRequest",
971                FIELDS,
972                GeneratedVisitor,
973            )
974    }
975}
976impl serde::Serialize for GetOrganizationRequest {
977    #[allow(deprecated)]
978    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
979    where
980        S: serde::Serializer,
981    {
982        use serde::ser::SerializeStruct;
983        let mut len = 0;
984        if !self.name.is_empty() {
985            len += 1;
986        }
987        let mut struct_ser = serializer
988            .serialize_struct(
989                "origincloud.resourcemanager.v1beta1.GetOrganizationRequest",
990                len,
991            )?;
992        if !self.name.is_empty() {
993            struct_ser.serialize_field("name", &self.name)?;
994        }
995        struct_ser.end()
996    }
997}
998impl<'de> serde::Deserialize<'de> for GetOrganizationRequest {
999    #[allow(deprecated)]
1000    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1001    where
1002        D: serde::Deserializer<'de>,
1003    {
1004        const FIELDS: &[&str] = &["name"];
1005        #[allow(clippy::enum_variant_names)]
1006        enum GeneratedField {
1007            Name,
1008            __SkipField__,
1009        }
1010        impl<'de> serde::Deserialize<'de> for GeneratedField {
1011            fn deserialize<D>(
1012                deserializer: D,
1013            ) -> std::result::Result<GeneratedField, D::Error>
1014            where
1015                D: serde::Deserializer<'de>,
1016            {
1017                struct GeneratedVisitor;
1018                impl serde::de::Visitor<'_> for GeneratedVisitor {
1019                    type Value = GeneratedField;
1020                    fn expecting(
1021                        &self,
1022                        formatter: &mut std::fmt::Formatter<'_>,
1023                    ) -> std::fmt::Result {
1024                        write!(formatter, "expected one of: {:?}", & FIELDS)
1025                    }
1026                    #[allow(unused_variables)]
1027                    fn visit_str<E>(
1028                        self,
1029                        value: &str,
1030                    ) -> std::result::Result<GeneratedField, E>
1031                    where
1032                        E: serde::de::Error,
1033                    {
1034                        match value {
1035                            "name" => Ok(GeneratedField::Name),
1036                            _ => Ok(GeneratedField::__SkipField__),
1037                        }
1038                    }
1039                }
1040                deserializer.deserialize_identifier(GeneratedVisitor)
1041            }
1042        }
1043        struct GeneratedVisitor;
1044        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1045            type Value = GetOrganizationRequest;
1046            fn expecting(
1047                &self,
1048                formatter: &mut std::fmt::Formatter<'_>,
1049            ) -> std::fmt::Result {
1050                formatter
1051                    .write_str(
1052                        "struct origincloud.resourcemanager.v1beta1.GetOrganizationRequest",
1053                    )
1054            }
1055            fn visit_map<V>(
1056                self,
1057                mut map_: V,
1058            ) -> std::result::Result<GetOrganizationRequest, V::Error>
1059            where
1060                V: serde::de::MapAccess<'de>,
1061            {
1062                let mut name__ = None;
1063                while let Some(k) = map_.next_key()? {
1064                    match k {
1065                        GeneratedField::Name => {
1066                            if name__.is_some() {
1067                                return Err(serde::de::Error::duplicate_field("name"));
1068                            }
1069                            name__ = Some(map_.next_value()?);
1070                        }
1071                        GeneratedField::__SkipField__ => {
1072                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1073                        }
1074                    }
1075                }
1076                Ok(GetOrganizationRequest {
1077                    name: name__.unwrap_or_default(),
1078                })
1079            }
1080        }
1081        deserializer
1082            .deserialize_struct(
1083                "origincloud.resourcemanager.v1beta1.GetOrganizationRequest",
1084                FIELDS,
1085                GeneratedVisitor,
1086            )
1087    }
1088}
1089impl serde::Serialize for GetProjectQuotaRequest {
1090    #[allow(deprecated)]
1091    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1092    where
1093        S: serde::Serializer,
1094    {
1095        use serde::ser::SerializeStruct;
1096        let mut len = 0;
1097        if !self.name.is_empty() {
1098            len += 1;
1099        }
1100        let mut struct_ser = serializer
1101            .serialize_struct(
1102                "origincloud.resourcemanager.v1beta1.GetProjectQuotaRequest",
1103                len,
1104            )?;
1105        if !self.name.is_empty() {
1106            struct_ser.serialize_field("name", &self.name)?;
1107        }
1108        struct_ser.end()
1109    }
1110}
1111impl<'de> serde::Deserialize<'de> for GetProjectQuotaRequest {
1112    #[allow(deprecated)]
1113    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1114    where
1115        D: serde::Deserializer<'de>,
1116    {
1117        const FIELDS: &[&str] = &["name"];
1118        #[allow(clippy::enum_variant_names)]
1119        enum GeneratedField {
1120            Name,
1121            __SkipField__,
1122        }
1123        impl<'de> serde::Deserialize<'de> for GeneratedField {
1124            fn deserialize<D>(
1125                deserializer: D,
1126            ) -> std::result::Result<GeneratedField, D::Error>
1127            where
1128                D: serde::Deserializer<'de>,
1129            {
1130                struct GeneratedVisitor;
1131                impl serde::de::Visitor<'_> for GeneratedVisitor {
1132                    type Value = GeneratedField;
1133                    fn expecting(
1134                        &self,
1135                        formatter: &mut std::fmt::Formatter<'_>,
1136                    ) -> std::fmt::Result {
1137                        write!(formatter, "expected one of: {:?}", & FIELDS)
1138                    }
1139                    #[allow(unused_variables)]
1140                    fn visit_str<E>(
1141                        self,
1142                        value: &str,
1143                    ) -> std::result::Result<GeneratedField, E>
1144                    where
1145                        E: serde::de::Error,
1146                    {
1147                        match value {
1148                            "name" => Ok(GeneratedField::Name),
1149                            _ => Ok(GeneratedField::__SkipField__),
1150                        }
1151                    }
1152                }
1153                deserializer.deserialize_identifier(GeneratedVisitor)
1154            }
1155        }
1156        struct GeneratedVisitor;
1157        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1158            type Value = GetProjectQuotaRequest;
1159            fn expecting(
1160                &self,
1161                formatter: &mut std::fmt::Formatter<'_>,
1162            ) -> std::fmt::Result {
1163                formatter
1164                    .write_str(
1165                        "struct origincloud.resourcemanager.v1beta1.GetProjectQuotaRequest",
1166                    )
1167            }
1168            fn visit_map<V>(
1169                self,
1170                mut map_: V,
1171            ) -> std::result::Result<GetProjectQuotaRequest, V::Error>
1172            where
1173                V: serde::de::MapAccess<'de>,
1174            {
1175                let mut name__ = None;
1176                while let Some(k) = map_.next_key()? {
1177                    match k {
1178                        GeneratedField::Name => {
1179                            if name__.is_some() {
1180                                return Err(serde::de::Error::duplicate_field("name"));
1181                            }
1182                            name__ = Some(map_.next_value()?);
1183                        }
1184                        GeneratedField::__SkipField__ => {
1185                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1186                        }
1187                    }
1188                }
1189                Ok(GetProjectQuotaRequest {
1190                    name: name__.unwrap_or_default(),
1191                })
1192            }
1193        }
1194        deserializer
1195            .deserialize_struct(
1196                "origincloud.resourcemanager.v1beta1.GetProjectQuotaRequest",
1197                FIELDS,
1198                GeneratedVisitor,
1199            )
1200    }
1201}
1202impl serde::Serialize for GetProjectRequest {
1203    #[allow(deprecated)]
1204    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1205    where
1206        S: serde::Serializer,
1207    {
1208        use serde::ser::SerializeStruct;
1209        let mut len = 0;
1210        if !self.name.is_empty() {
1211            len += 1;
1212        }
1213        let mut struct_ser = serializer
1214            .serialize_struct(
1215                "origincloud.resourcemanager.v1beta1.GetProjectRequest",
1216                len,
1217            )?;
1218        if !self.name.is_empty() {
1219            struct_ser.serialize_field("name", &self.name)?;
1220        }
1221        struct_ser.end()
1222    }
1223}
1224impl<'de> serde::Deserialize<'de> for GetProjectRequest {
1225    #[allow(deprecated)]
1226    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1227    where
1228        D: serde::Deserializer<'de>,
1229    {
1230        const FIELDS: &[&str] = &["name"];
1231        #[allow(clippy::enum_variant_names)]
1232        enum GeneratedField {
1233            Name,
1234            __SkipField__,
1235        }
1236        impl<'de> serde::Deserialize<'de> for GeneratedField {
1237            fn deserialize<D>(
1238                deserializer: D,
1239            ) -> std::result::Result<GeneratedField, D::Error>
1240            where
1241                D: serde::Deserializer<'de>,
1242            {
1243                struct GeneratedVisitor;
1244                impl serde::de::Visitor<'_> for GeneratedVisitor {
1245                    type Value = GeneratedField;
1246                    fn expecting(
1247                        &self,
1248                        formatter: &mut std::fmt::Formatter<'_>,
1249                    ) -> std::fmt::Result {
1250                        write!(formatter, "expected one of: {:?}", & FIELDS)
1251                    }
1252                    #[allow(unused_variables)]
1253                    fn visit_str<E>(
1254                        self,
1255                        value: &str,
1256                    ) -> std::result::Result<GeneratedField, E>
1257                    where
1258                        E: serde::de::Error,
1259                    {
1260                        match value {
1261                            "name" => Ok(GeneratedField::Name),
1262                            _ => Ok(GeneratedField::__SkipField__),
1263                        }
1264                    }
1265                }
1266                deserializer.deserialize_identifier(GeneratedVisitor)
1267            }
1268        }
1269        struct GeneratedVisitor;
1270        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1271            type Value = GetProjectRequest;
1272            fn expecting(
1273                &self,
1274                formatter: &mut std::fmt::Formatter<'_>,
1275            ) -> std::fmt::Result {
1276                formatter
1277                    .write_str(
1278                        "struct origincloud.resourcemanager.v1beta1.GetProjectRequest",
1279                    )
1280            }
1281            fn visit_map<V>(
1282                self,
1283                mut map_: V,
1284            ) -> std::result::Result<GetProjectRequest, V::Error>
1285            where
1286                V: serde::de::MapAccess<'de>,
1287            {
1288                let mut name__ = None;
1289                while let Some(k) = map_.next_key()? {
1290                    match k {
1291                        GeneratedField::Name => {
1292                            if name__.is_some() {
1293                                return Err(serde::de::Error::duplicate_field("name"));
1294                            }
1295                            name__ = Some(map_.next_value()?);
1296                        }
1297                        GeneratedField::__SkipField__ => {
1298                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1299                        }
1300                    }
1301                }
1302                Ok(GetProjectRequest {
1303                    name: name__.unwrap_or_default(),
1304                })
1305            }
1306        }
1307        deserializer
1308            .deserialize_struct(
1309                "origincloud.resourcemanager.v1beta1.GetProjectRequest",
1310                FIELDS,
1311                GeneratedVisitor,
1312            )
1313    }
1314}
1315impl serde::Serialize for ListOrganizationsRequest {
1316    #[allow(deprecated)]
1317    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1318    where
1319        S: serde::Serializer,
1320    {
1321        use serde::ser::SerializeStruct;
1322        let mut len = 0;
1323        if self.page_size != 0 {
1324            len += 1;
1325        }
1326        if !self.page_token.is_empty() {
1327            len += 1;
1328        }
1329        let mut struct_ser = serializer
1330            .serialize_struct(
1331                "origincloud.resourcemanager.v1beta1.ListOrganizationsRequest",
1332                len,
1333            )?;
1334        if self.page_size != 0 {
1335            struct_ser.serialize_field("pageSize", &self.page_size)?;
1336        }
1337        if !self.page_token.is_empty() {
1338            struct_ser.serialize_field("pageToken", &self.page_token)?;
1339        }
1340        struct_ser.end()
1341    }
1342}
1343impl<'de> serde::Deserialize<'de> for ListOrganizationsRequest {
1344    #[allow(deprecated)]
1345    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1346    where
1347        D: serde::Deserializer<'de>,
1348    {
1349        const FIELDS: &[&str] = &["page_size", "pageSize", "page_token", "pageToken"];
1350        #[allow(clippy::enum_variant_names)]
1351        enum GeneratedField {
1352            PageSize,
1353            PageToken,
1354            __SkipField__,
1355        }
1356        impl<'de> serde::Deserialize<'de> for GeneratedField {
1357            fn deserialize<D>(
1358                deserializer: D,
1359            ) -> std::result::Result<GeneratedField, D::Error>
1360            where
1361                D: serde::Deserializer<'de>,
1362            {
1363                struct GeneratedVisitor;
1364                impl serde::de::Visitor<'_> for GeneratedVisitor {
1365                    type Value = GeneratedField;
1366                    fn expecting(
1367                        &self,
1368                        formatter: &mut std::fmt::Formatter<'_>,
1369                    ) -> std::fmt::Result {
1370                        write!(formatter, "expected one of: {:?}", & FIELDS)
1371                    }
1372                    #[allow(unused_variables)]
1373                    fn visit_str<E>(
1374                        self,
1375                        value: &str,
1376                    ) -> std::result::Result<GeneratedField, E>
1377                    where
1378                        E: serde::de::Error,
1379                    {
1380                        match value {
1381                            "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
1382                            "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
1383                            _ => Ok(GeneratedField::__SkipField__),
1384                        }
1385                    }
1386                }
1387                deserializer.deserialize_identifier(GeneratedVisitor)
1388            }
1389        }
1390        struct GeneratedVisitor;
1391        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1392            type Value = ListOrganizationsRequest;
1393            fn expecting(
1394                &self,
1395                formatter: &mut std::fmt::Formatter<'_>,
1396            ) -> std::fmt::Result {
1397                formatter
1398                    .write_str(
1399                        "struct origincloud.resourcemanager.v1beta1.ListOrganizationsRequest",
1400                    )
1401            }
1402            fn visit_map<V>(
1403                self,
1404                mut map_: V,
1405            ) -> std::result::Result<ListOrganizationsRequest, V::Error>
1406            where
1407                V: serde::de::MapAccess<'de>,
1408            {
1409                let mut page_size__ = None;
1410                let mut page_token__ = None;
1411                while let Some(k) = map_.next_key()? {
1412                    match k {
1413                        GeneratedField::PageSize => {
1414                            if page_size__.is_some() {
1415                                return Err(serde::de::Error::duplicate_field("pageSize"));
1416                            }
1417                            page_size__ = Some(
1418                                map_
1419                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
1420                                    .0,
1421                            );
1422                        }
1423                        GeneratedField::PageToken => {
1424                            if page_token__.is_some() {
1425                                return Err(serde::de::Error::duplicate_field("pageToken"));
1426                            }
1427                            page_token__ = Some(map_.next_value()?);
1428                        }
1429                        GeneratedField::__SkipField__ => {
1430                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1431                        }
1432                    }
1433                }
1434                Ok(ListOrganizationsRequest {
1435                    page_size: page_size__.unwrap_or_default(),
1436                    page_token: page_token__.unwrap_or_default(),
1437                })
1438            }
1439        }
1440        deserializer
1441            .deserialize_struct(
1442                "origincloud.resourcemanager.v1beta1.ListOrganizationsRequest",
1443                FIELDS,
1444                GeneratedVisitor,
1445            )
1446    }
1447}
1448impl serde::Serialize for ListOrganizationsResponse {
1449    #[allow(deprecated)]
1450    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1451    where
1452        S: serde::Serializer,
1453    {
1454        use serde::ser::SerializeStruct;
1455        let mut len = 0;
1456        if !self.organizations.is_empty() {
1457            len += 1;
1458        }
1459        if !self.next_page_token.is_empty() {
1460            len += 1;
1461        }
1462        let mut struct_ser = serializer
1463            .serialize_struct(
1464                "origincloud.resourcemanager.v1beta1.ListOrganizationsResponse",
1465                len,
1466            )?;
1467        if !self.organizations.is_empty() {
1468            struct_ser.serialize_field("organizations", &self.organizations)?;
1469        }
1470        if !self.next_page_token.is_empty() {
1471            struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
1472        }
1473        struct_ser.end()
1474    }
1475}
1476impl<'de> serde::Deserialize<'de> for ListOrganizationsResponse {
1477    #[allow(deprecated)]
1478    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1479    where
1480        D: serde::Deserializer<'de>,
1481    {
1482        const FIELDS: &[&str] = &["organizations", "next_page_token", "nextPageToken"];
1483        #[allow(clippy::enum_variant_names)]
1484        enum GeneratedField {
1485            Organizations,
1486            NextPageToken,
1487            __SkipField__,
1488        }
1489        impl<'de> serde::Deserialize<'de> for GeneratedField {
1490            fn deserialize<D>(
1491                deserializer: D,
1492            ) -> std::result::Result<GeneratedField, D::Error>
1493            where
1494                D: serde::Deserializer<'de>,
1495            {
1496                struct GeneratedVisitor;
1497                impl serde::de::Visitor<'_> for GeneratedVisitor {
1498                    type Value = GeneratedField;
1499                    fn expecting(
1500                        &self,
1501                        formatter: &mut std::fmt::Formatter<'_>,
1502                    ) -> std::fmt::Result {
1503                        write!(formatter, "expected one of: {:?}", & FIELDS)
1504                    }
1505                    #[allow(unused_variables)]
1506                    fn visit_str<E>(
1507                        self,
1508                        value: &str,
1509                    ) -> std::result::Result<GeneratedField, E>
1510                    where
1511                        E: serde::de::Error,
1512                    {
1513                        match value {
1514                            "organizations" => Ok(GeneratedField::Organizations),
1515                            "nextPageToken" | "next_page_token" => {
1516                                Ok(GeneratedField::NextPageToken)
1517                            }
1518                            _ => Ok(GeneratedField::__SkipField__),
1519                        }
1520                    }
1521                }
1522                deserializer.deserialize_identifier(GeneratedVisitor)
1523            }
1524        }
1525        struct GeneratedVisitor;
1526        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1527            type Value = ListOrganizationsResponse;
1528            fn expecting(
1529                &self,
1530                formatter: &mut std::fmt::Formatter<'_>,
1531            ) -> std::fmt::Result {
1532                formatter
1533                    .write_str(
1534                        "struct origincloud.resourcemanager.v1beta1.ListOrganizationsResponse",
1535                    )
1536            }
1537            fn visit_map<V>(
1538                self,
1539                mut map_: V,
1540            ) -> std::result::Result<ListOrganizationsResponse, V::Error>
1541            where
1542                V: serde::de::MapAccess<'de>,
1543            {
1544                let mut organizations__ = None;
1545                let mut next_page_token__ = None;
1546                while let Some(k) = map_.next_key()? {
1547                    match k {
1548                        GeneratedField::Organizations => {
1549                            if organizations__.is_some() {
1550                                return Err(
1551                                    serde::de::Error::duplicate_field("organizations"),
1552                                );
1553                            }
1554                            organizations__ = Some(map_.next_value()?);
1555                        }
1556                        GeneratedField::NextPageToken => {
1557                            if next_page_token__.is_some() {
1558                                return Err(
1559                                    serde::de::Error::duplicate_field("nextPageToken"),
1560                                );
1561                            }
1562                            next_page_token__ = Some(map_.next_value()?);
1563                        }
1564                        GeneratedField::__SkipField__ => {
1565                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1566                        }
1567                    }
1568                }
1569                Ok(ListOrganizationsResponse {
1570                    organizations: organizations__.unwrap_or_default(),
1571                    next_page_token: next_page_token__.unwrap_or_default(),
1572                })
1573            }
1574        }
1575        deserializer
1576            .deserialize_struct(
1577                "origincloud.resourcemanager.v1beta1.ListOrganizationsResponse",
1578                FIELDS,
1579                GeneratedVisitor,
1580            )
1581    }
1582}
1583impl serde::Serialize for ListProjectsRequest {
1584    #[allow(deprecated)]
1585    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1586    where
1587        S: serde::Serializer,
1588    {
1589        use serde::ser::SerializeStruct;
1590        let mut len = 0;
1591        if !self.organization.is_empty() {
1592            len += 1;
1593        }
1594        if self.page_size != 0 {
1595            len += 1;
1596        }
1597        if !self.page_token.is_empty() {
1598            len += 1;
1599        }
1600        let mut struct_ser = serializer
1601            .serialize_struct(
1602                "origincloud.resourcemanager.v1beta1.ListProjectsRequest",
1603                len,
1604            )?;
1605        if !self.organization.is_empty() {
1606            struct_ser.serialize_field("organization", &self.organization)?;
1607        }
1608        if self.page_size != 0 {
1609            struct_ser.serialize_field("pageSize", &self.page_size)?;
1610        }
1611        if !self.page_token.is_empty() {
1612            struct_ser.serialize_field("pageToken", &self.page_token)?;
1613        }
1614        struct_ser.end()
1615    }
1616}
1617impl<'de> serde::Deserialize<'de> for ListProjectsRequest {
1618    #[allow(deprecated)]
1619    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1620    where
1621        D: serde::Deserializer<'de>,
1622    {
1623        const FIELDS: &[&str] = &[
1624            "organization",
1625            "page_size",
1626            "pageSize",
1627            "page_token",
1628            "pageToken",
1629        ];
1630        #[allow(clippy::enum_variant_names)]
1631        enum GeneratedField {
1632            Organization,
1633            PageSize,
1634            PageToken,
1635            __SkipField__,
1636        }
1637        impl<'de> serde::Deserialize<'de> for GeneratedField {
1638            fn deserialize<D>(
1639                deserializer: D,
1640            ) -> std::result::Result<GeneratedField, D::Error>
1641            where
1642                D: serde::Deserializer<'de>,
1643            {
1644                struct GeneratedVisitor;
1645                impl serde::de::Visitor<'_> for GeneratedVisitor {
1646                    type Value = GeneratedField;
1647                    fn expecting(
1648                        &self,
1649                        formatter: &mut std::fmt::Formatter<'_>,
1650                    ) -> std::fmt::Result {
1651                        write!(formatter, "expected one of: {:?}", & FIELDS)
1652                    }
1653                    #[allow(unused_variables)]
1654                    fn visit_str<E>(
1655                        self,
1656                        value: &str,
1657                    ) -> std::result::Result<GeneratedField, E>
1658                    where
1659                        E: serde::de::Error,
1660                    {
1661                        match value {
1662                            "organization" => Ok(GeneratedField::Organization),
1663                            "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
1664                            "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
1665                            _ => Ok(GeneratedField::__SkipField__),
1666                        }
1667                    }
1668                }
1669                deserializer.deserialize_identifier(GeneratedVisitor)
1670            }
1671        }
1672        struct GeneratedVisitor;
1673        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1674            type Value = ListProjectsRequest;
1675            fn expecting(
1676                &self,
1677                formatter: &mut std::fmt::Formatter<'_>,
1678            ) -> std::fmt::Result {
1679                formatter
1680                    .write_str(
1681                        "struct origincloud.resourcemanager.v1beta1.ListProjectsRequest",
1682                    )
1683            }
1684            fn visit_map<V>(
1685                self,
1686                mut map_: V,
1687            ) -> std::result::Result<ListProjectsRequest, V::Error>
1688            where
1689                V: serde::de::MapAccess<'de>,
1690            {
1691                let mut organization__ = None;
1692                let mut page_size__ = None;
1693                let mut page_token__ = None;
1694                while let Some(k) = map_.next_key()? {
1695                    match k {
1696                        GeneratedField::Organization => {
1697                            if organization__.is_some() {
1698                                return Err(
1699                                    serde::de::Error::duplicate_field("organization"),
1700                                );
1701                            }
1702                            organization__ = Some(map_.next_value()?);
1703                        }
1704                        GeneratedField::PageSize => {
1705                            if page_size__.is_some() {
1706                                return Err(serde::de::Error::duplicate_field("pageSize"));
1707                            }
1708                            page_size__ = Some(
1709                                map_
1710                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
1711                                    .0,
1712                            );
1713                        }
1714                        GeneratedField::PageToken => {
1715                            if page_token__.is_some() {
1716                                return Err(serde::de::Error::duplicate_field("pageToken"));
1717                            }
1718                            page_token__ = Some(map_.next_value()?);
1719                        }
1720                        GeneratedField::__SkipField__ => {
1721                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1722                        }
1723                    }
1724                }
1725                Ok(ListProjectsRequest {
1726                    organization: organization__.unwrap_or_default(),
1727                    page_size: page_size__.unwrap_or_default(),
1728                    page_token: page_token__.unwrap_or_default(),
1729                })
1730            }
1731        }
1732        deserializer
1733            .deserialize_struct(
1734                "origincloud.resourcemanager.v1beta1.ListProjectsRequest",
1735                FIELDS,
1736                GeneratedVisitor,
1737            )
1738    }
1739}
1740impl serde::Serialize for ListProjectsResponse {
1741    #[allow(deprecated)]
1742    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1743    where
1744        S: serde::Serializer,
1745    {
1746        use serde::ser::SerializeStruct;
1747        let mut len = 0;
1748        if !self.projects.is_empty() {
1749            len += 1;
1750        }
1751        if !self.next_page_token.is_empty() {
1752            len += 1;
1753        }
1754        let mut struct_ser = serializer
1755            .serialize_struct(
1756                "origincloud.resourcemanager.v1beta1.ListProjectsResponse",
1757                len,
1758            )?;
1759        if !self.projects.is_empty() {
1760            struct_ser.serialize_field("projects", &self.projects)?;
1761        }
1762        if !self.next_page_token.is_empty() {
1763            struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
1764        }
1765        struct_ser.end()
1766    }
1767}
1768impl<'de> serde::Deserialize<'de> for ListProjectsResponse {
1769    #[allow(deprecated)]
1770    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1771    where
1772        D: serde::Deserializer<'de>,
1773    {
1774        const FIELDS: &[&str] = &["projects", "next_page_token", "nextPageToken"];
1775        #[allow(clippy::enum_variant_names)]
1776        enum GeneratedField {
1777            Projects,
1778            NextPageToken,
1779            __SkipField__,
1780        }
1781        impl<'de> serde::Deserialize<'de> for GeneratedField {
1782            fn deserialize<D>(
1783                deserializer: D,
1784            ) -> std::result::Result<GeneratedField, D::Error>
1785            where
1786                D: serde::Deserializer<'de>,
1787            {
1788                struct GeneratedVisitor;
1789                impl serde::de::Visitor<'_> for GeneratedVisitor {
1790                    type Value = GeneratedField;
1791                    fn expecting(
1792                        &self,
1793                        formatter: &mut std::fmt::Formatter<'_>,
1794                    ) -> std::fmt::Result {
1795                        write!(formatter, "expected one of: {:?}", & FIELDS)
1796                    }
1797                    #[allow(unused_variables)]
1798                    fn visit_str<E>(
1799                        self,
1800                        value: &str,
1801                    ) -> std::result::Result<GeneratedField, E>
1802                    where
1803                        E: serde::de::Error,
1804                    {
1805                        match value {
1806                            "projects" => Ok(GeneratedField::Projects),
1807                            "nextPageToken" | "next_page_token" => {
1808                                Ok(GeneratedField::NextPageToken)
1809                            }
1810                            _ => Ok(GeneratedField::__SkipField__),
1811                        }
1812                    }
1813                }
1814                deserializer.deserialize_identifier(GeneratedVisitor)
1815            }
1816        }
1817        struct GeneratedVisitor;
1818        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1819            type Value = ListProjectsResponse;
1820            fn expecting(
1821                &self,
1822                formatter: &mut std::fmt::Formatter<'_>,
1823            ) -> std::fmt::Result {
1824                formatter
1825                    .write_str(
1826                        "struct origincloud.resourcemanager.v1beta1.ListProjectsResponse",
1827                    )
1828            }
1829            fn visit_map<V>(
1830                self,
1831                mut map_: V,
1832            ) -> std::result::Result<ListProjectsResponse, V::Error>
1833            where
1834                V: serde::de::MapAccess<'de>,
1835            {
1836                let mut projects__ = None;
1837                let mut next_page_token__ = None;
1838                while let Some(k) = map_.next_key()? {
1839                    match k {
1840                        GeneratedField::Projects => {
1841                            if projects__.is_some() {
1842                                return Err(serde::de::Error::duplicate_field("projects"));
1843                            }
1844                            projects__ = Some(map_.next_value()?);
1845                        }
1846                        GeneratedField::NextPageToken => {
1847                            if next_page_token__.is_some() {
1848                                return Err(
1849                                    serde::de::Error::duplicate_field("nextPageToken"),
1850                                );
1851                            }
1852                            next_page_token__ = Some(map_.next_value()?);
1853                        }
1854                        GeneratedField::__SkipField__ => {
1855                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1856                        }
1857                    }
1858                }
1859                Ok(ListProjectsResponse {
1860                    projects: projects__.unwrap_or_default(),
1861                    next_page_token: next_page_token__.unwrap_or_default(),
1862                })
1863            }
1864        }
1865        deserializer
1866            .deserialize_struct(
1867                "origincloud.resourcemanager.v1beta1.ListProjectsResponse",
1868                FIELDS,
1869                GeneratedVisitor,
1870            )
1871    }
1872}
1873impl serde::Serialize for Organization {
1874    #[allow(deprecated)]
1875    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1876    where
1877        S: serde::Serializer,
1878    {
1879        use serde::ser::SerializeStruct;
1880        let mut len = 0;
1881        if !self.name.is_empty() {
1882            len += 1;
1883        }
1884        if !self.urn.is_empty() {
1885            len += 1;
1886        }
1887        if !self.display_name.is_empty() {
1888            len += 1;
1889        }
1890        if self.state != 0 {
1891            len += 1;
1892        }
1893        if self.create_time.is_some() {
1894            len += 1;
1895        }
1896        if !self.creator.is_empty() {
1897            len += 1;
1898        }
1899        let mut struct_ser = serializer
1900            .serialize_struct("origincloud.resourcemanager.v1beta1.Organization", len)?;
1901        if !self.name.is_empty() {
1902            struct_ser.serialize_field("name", &self.name)?;
1903        }
1904        if !self.urn.is_empty() {
1905            struct_ser.serialize_field("urn", &self.urn)?;
1906        }
1907        if !self.display_name.is_empty() {
1908            struct_ser.serialize_field("displayName", &self.display_name)?;
1909        }
1910        if self.state != 0 {
1911            let v = organization::State::try_from(self.state)
1912                .map_err(|_| serde::ser::Error::custom(
1913                    format!("Invalid variant {}", self.state),
1914                ))?;
1915            struct_ser.serialize_field("state", &v)?;
1916        }
1917        if let Some(v) = self.create_time.as_ref() {
1918            struct_ser.serialize_field("createTime", v)?;
1919        }
1920        if !self.creator.is_empty() {
1921            struct_ser.serialize_field("creator", &self.creator)?;
1922        }
1923        struct_ser.end()
1924    }
1925}
1926impl<'de> serde::Deserialize<'de> for Organization {
1927    #[allow(deprecated)]
1928    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1929    where
1930        D: serde::Deserializer<'de>,
1931    {
1932        const FIELDS: &[&str] = &[
1933            "name",
1934            "urn",
1935            "display_name",
1936            "displayName",
1937            "state",
1938            "create_time",
1939            "createTime",
1940            "creator",
1941        ];
1942        #[allow(clippy::enum_variant_names)]
1943        enum GeneratedField {
1944            Name,
1945            Urn,
1946            DisplayName,
1947            State,
1948            CreateTime,
1949            Creator,
1950            __SkipField__,
1951        }
1952        impl<'de> serde::Deserialize<'de> for GeneratedField {
1953            fn deserialize<D>(
1954                deserializer: D,
1955            ) -> std::result::Result<GeneratedField, D::Error>
1956            where
1957                D: serde::Deserializer<'de>,
1958            {
1959                struct GeneratedVisitor;
1960                impl serde::de::Visitor<'_> for GeneratedVisitor {
1961                    type Value = GeneratedField;
1962                    fn expecting(
1963                        &self,
1964                        formatter: &mut std::fmt::Formatter<'_>,
1965                    ) -> std::fmt::Result {
1966                        write!(formatter, "expected one of: {:?}", & FIELDS)
1967                    }
1968                    #[allow(unused_variables)]
1969                    fn visit_str<E>(
1970                        self,
1971                        value: &str,
1972                    ) -> std::result::Result<GeneratedField, E>
1973                    where
1974                        E: serde::de::Error,
1975                    {
1976                        match value {
1977                            "name" => Ok(GeneratedField::Name),
1978                            "urn" => Ok(GeneratedField::Urn),
1979                            "displayName" | "display_name" => {
1980                                Ok(GeneratedField::DisplayName)
1981                            }
1982                            "state" => Ok(GeneratedField::State),
1983                            "createTime" | "create_time" => {
1984                                Ok(GeneratedField::CreateTime)
1985                            }
1986                            "creator" => Ok(GeneratedField::Creator),
1987                            _ => Ok(GeneratedField::__SkipField__),
1988                        }
1989                    }
1990                }
1991                deserializer.deserialize_identifier(GeneratedVisitor)
1992            }
1993        }
1994        struct GeneratedVisitor;
1995        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1996            type Value = Organization;
1997            fn expecting(
1998                &self,
1999                formatter: &mut std::fmt::Formatter<'_>,
2000            ) -> std::fmt::Result {
2001                formatter
2002                    .write_str("struct origincloud.resourcemanager.v1beta1.Organization")
2003            }
2004            fn visit_map<V>(
2005                self,
2006                mut map_: V,
2007            ) -> std::result::Result<Organization, V::Error>
2008            where
2009                V: serde::de::MapAccess<'de>,
2010            {
2011                let mut name__ = None;
2012                let mut urn__ = None;
2013                let mut display_name__ = None;
2014                let mut state__ = None;
2015                let mut create_time__ = None;
2016                let mut creator__ = None;
2017                while let Some(k) = map_.next_key()? {
2018                    match k {
2019                        GeneratedField::Name => {
2020                            if name__.is_some() {
2021                                return Err(serde::de::Error::duplicate_field("name"));
2022                            }
2023                            name__ = Some(map_.next_value()?);
2024                        }
2025                        GeneratedField::Urn => {
2026                            if urn__.is_some() {
2027                                return Err(serde::de::Error::duplicate_field("urn"));
2028                            }
2029                            urn__ = Some(map_.next_value()?);
2030                        }
2031                        GeneratedField::DisplayName => {
2032                            if display_name__.is_some() {
2033                                return Err(
2034                                    serde::de::Error::duplicate_field("displayName"),
2035                                );
2036                            }
2037                            display_name__ = Some(map_.next_value()?);
2038                        }
2039                        GeneratedField::State => {
2040                            if state__.is_some() {
2041                                return Err(serde::de::Error::duplicate_field("state"));
2042                            }
2043                            state__ = Some(
2044                                map_.next_value::<organization::State>()? as i32,
2045                            );
2046                        }
2047                        GeneratedField::CreateTime => {
2048                            if create_time__.is_some() {
2049                                return Err(serde::de::Error::duplicate_field("createTime"));
2050                            }
2051                            create_time__ = map_.next_value()?;
2052                        }
2053                        GeneratedField::Creator => {
2054                            if creator__.is_some() {
2055                                return Err(serde::de::Error::duplicate_field("creator"));
2056                            }
2057                            creator__ = Some(map_.next_value()?);
2058                        }
2059                        GeneratedField::__SkipField__ => {
2060                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2061                        }
2062                    }
2063                }
2064                Ok(Organization {
2065                    name: name__.unwrap_or_default(),
2066                    urn: urn__.unwrap_or_default(),
2067                    display_name: display_name__.unwrap_or_default(),
2068                    state: state__.unwrap_or_default(),
2069                    create_time: create_time__,
2070                    creator: creator__.unwrap_or_default(),
2071                })
2072            }
2073        }
2074        deserializer
2075            .deserialize_struct(
2076                "origincloud.resourcemanager.v1beta1.Organization",
2077                FIELDS,
2078                GeneratedVisitor,
2079            )
2080    }
2081}
2082impl serde::Serialize for organization::State {
2083    #[allow(deprecated)]
2084    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2085    where
2086        S: serde::Serializer,
2087    {
2088        let variant = match self {
2089            Self::Unspecified => "STATE_UNSPECIFIED",
2090            Self::PendingReview => "PENDING_REVIEW",
2091            Self::Active => "ACTIVE",
2092            Self::Rejected => "REJECTED",
2093        };
2094        serializer.serialize_str(variant)
2095    }
2096}
2097impl<'de> serde::Deserialize<'de> for organization::State {
2098    #[allow(deprecated)]
2099    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2100    where
2101        D: serde::Deserializer<'de>,
2102    {
2103        const FIELDS: &[&str] = &[
2104            "STATE_UNSPECIFIED",
2105            "PENDING_REVIEW",
2106            "ACTIVE",
2107            "REJECTED",
2108        ];
2109        struct GeneratedVisitor;
2110        impl serde::de::Visitor<'_> for GeneratedVisitor {
2111            type Value = organization::State;
2112            fn expecting(
2113                &self,
2114                formatter: &mut std::fmt::Formatter<'_>,
2115            ) -> std::fmt::Result {
2116                write!(formatter, "expected one of: {:?}", & FIELDS)
2117            }
2118            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
2119            where
2120                E: serde::de::Error,
2121            {
2122                i32::try_from(v)
2123                    .ok()
2124                    .and_then(|x| {
2125                        x
2126                            .try_into()
2127                            .ok()
2128                            .or_else(|| Some(organization::State::default()))
2129                    })
2130                    .ok_or_else(|| {
2131                        serde::de::Error::invalid_value(
2132                            serde::de::Unexpected::Signed(v),
2133                            &self,
2134                        )
2135                    })
2136            }
2137            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
2138            where
2139                E: serde::de::Error,
2140            {
2141                i32::try_from(v)
2142                    .ok()
2143                    .and_then(|x| {
2144                        x
2145                            .try_into()
2146                            .ok()
2147                            .or_else(|| Some(organization::State::default()))
2148                    })
2149                    .ok_or_else(|| {
2150                        serde::de::Error::invalid_value(
2151                            serde::de::Unexpected::Unsigned(v),
2152                            &self,
2153                        )
2154                    })
2155            }
2156            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
2157            where
2158                E: serde::de::Error,
2159            {
2160                match value {
2161                    "STATE_UNSPECIFIED" => Ok(organization::State::Unspecified),
2162                    "PENDING_REVIEW" => Ok(organization::State::PendingReview),
2163                    "ACTIVE" => Ok(organization::State::Active),
2164                    "REJECTED" => Ok(organization::State::Rejected),
2165                    _ => Ok(organization::State::default()),
2166                }
2167            }
2168        }
2169        deserializer.deserialize_any(GeneratedVisitor)
2170    }
2171}
2172impl serde::Serialize for OrganizationQuota {
2173    #[allow(deprecated)]
2174    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2175    where
2176        S: serde::Serializer,
2177    {
2178        use serde::ser::SerializeStruct;
2179        let mut len = 0;
2180        if !self.name.is_empty() {
2181            len += 1;
2182        }
2183        if self.max_instances != 0 {
2184            len += 1;
2185        }
2186        if self.max_vcpu != 0 {
2187            len += 1;
2188        }
2189        if self.max_volume_gib != 0 {
2190            len += 1;
2191        }
2192        if self.max_vpcs != 0 {
2193            len += 1;
2194        }
2195        if self.max_public_ips != 0 {
2196            len += 1;
2197        }
2198        if self.max_hosted_zones != 0 {
2199            len += 1;
2200        }
2201        if self.max_record_sets != 0 {
2202            len += 1;
2203        }
2204        if self.usage.is_some() {
2205            len += 1;
2206        }
2207        let mut struct_ser = serializer
2208            .serialize_struct(
2209                "origincloud.resourcemanager.v1beta1.OrganizationQuota",
2210                len,
2211            )?;
2212        if !self.name.is_empty() {
2213            struct_ser.serialize_field("name", &self.name)?;
2214        }
2215        if self.max_instances != 0 {
2216            #[allow(clippy::needless_borrow)]
2217            #[allow(clippy::needless_borrows_for_generic_args)]
2218            struct_ser
2219                .serialize_field(
2220                    "maxInstances",
2221                    ToString::to_string(&self.max_instances).as_str(),
2222                )?;
2223        }
2224        if self.max_vcpu != 0 {
2225            #[allow(clippy::needless_borrow)]
2226            #[allow(clippy::needless_borrows_for_generic_args)]
2227            struct_ser
2228                .serialize_field(
2229                    "maxVcpu",
2230                    ToString::to_string(&self.max_vcpu).as_str(),
2231                )?;
2232        }
2233        if self.max_volume_gib != 0 {
2234            #[allow(clippy::needless_borrow)]
2235            #[allow(clippy::needless_borrows_for_generic_args)]
2236            struct_ser
2237                .serialize_field(
2238                    "maxVolumeGib",
2239                    ToString::to_string(&self.max_volume_gib).as_str(),
2240                )?;
2241        }
2242        if self.max_vpcs != 0 {
2243            #[allow(clippy::needless_borrow)]
2244            #[allow(clippy::needless_borrows_for_generic_args)]
2245            struct_ser
2246                .serialize_field(
2247                    "maxVpcs",
2248                    ToString::to_string(&self.max_vpcs).as_str(),
2249                )?;
2250        }
2251        if self.max_public_ips != 0 {
2252            #[allow(clippy::needless_borrow)]
2253            #[allow(clippy::needless_borrows_for_generic_args)]
2254            struct_ser
2255                .serialize_field(
2256                    "maxPublicIps",
2257                    ToString::to_string(&self.max_public_ips).as_str(),
2258                )?;
2259        }
2260        if self.max_hosted_zones != 0 {
2261            #[allow(clippy::needless_borrow)]
2262            #[allow(clippy::needless_borrows_for_generic_args)]
2263            struct_ser
2264                .serialize_field(
2265                    "maxHostedZones",
2266                    ToString::to_string(&self.max_hosted_zones).as_str(),
2267                )?;
2268        }
2269        if self.max_record_sets != 0 {
2270            #[allow(clippy::needless_borrow)]
2271            #[allow(clippy::needless_borrows_for_generic_args)]
2272            struct_ser
2273                .serialize_field(
2274                    "maxRecordSets",
2275                    ToString::to_string(&self.max_record_sets).as_str(),
2276                )?;
2277        }
2278        if let Some(v) = self.usage.as_ref() {
2279            struct_ser.serialize_field("usage", v)?;
2280        }
2281        struct_ser.end()
2282    }
2283}
2284impl<'de> serde::Deserialize<'de> for OrganizationQuota {
2285    #[allow(deprecated)]
2286    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2287    where
2288        D: serde::Deserializer<'de>,
2289    {
2290        const FIELDS: &[&str] = &[
2291            "name",
2292            "max_instances",
2293            "maxInstances",
2294            "max_vcpu",
2295            "maxVcpu",
2296            "max_volume_gib",
2297            "maxVolumeGib",
2298            "max_vpcs",
2299            "maxVpcs",
2300            "max_public_ips",
2301            "maxPublicIps",
2302            "max_hosted_zones",
2303            "maxHostedZones",
2304            "max_record_sets",
2305            "maxRecordSets",
2306            "usage",
2307        ];
2308        #[allow(clippy::enum_variant_names)]
2309        enum GeneratedField {
2310            Name,
2311            MaxInstances,
2312            MaxVcpu,
2313            MaxVolumeGib,
2314            MaxVpcs,
2315            MaxPublicIps,
2316            MaxHostedZones,
2317            MaxRecordSets,
2318            Usage,
2319            __SkipField__,
2320        }
2321        impl<'de> serde::Deserialize<'de> for GeneratedField {
2322            fn deserialize<D>(
2323                deserializer: D,
2324            ) -> std::result::Result<GeneratedField, D::Error>
2325            where
2326                D: serde::Deserializer<'de>,
2327            {
2328                struct GeneratedVisitor;
2329                impl serde::de::Visitor<'_> for GeneratedVisitor {
2330                    type Value = GeneratedField;
2331                    fn expecting(
2332                        &self,
2333                        formatter: &mut std::fmt::Formatter<'_>,
2334                    ) -> std::fmt::Result {
2335                        write!(formatter, "expected one of: {:?}", & FIELDS)
2336                    }
2337                    #[allow(unused_variables)]
2338                    fn visit_str<E>(
2339                        self,
2340                        value: &str,
2341                    ) -> std::result::Result<GeneratedField, E>
2342                    where
2343                        E: serde::de::Error,
2344                    {
2345                        match value {
2346                            "name" => Ok(GeneratedField::Name),
2347                            "maxInstances" | "max_instances" => {
2348                                Ok(GeneratedField::MaxInstances)
2349                            }
2350                            "maxVcpu" | "max_vcpu" => Ok(GeneratedField::MaxVcpu),
2351                            "maxVolumeGib" | "max_volume_gib" => {
2352                                Ok(GeneratedField::MaxVolumeGib)
2353                            }
2354                            "maxVpcs" | "max_vpcs" => Ok(GeneratedField::MaxVpcs),
2355                            "maxPublicIps" | "max_public_ips" => {
2356                                Ok(GeneratedField::MaxPublicIps)
2357                            }
2358                            "maxHostedZones" | "max_hosted_zones" => {
2359                                Ok(GeneratedField::MaxHostedZones)
2360                            }
2361                            "maxRecordSets" | "max_record_sets" => {
2362                                Ok(GeneratedField::MaxRecordSets)
2363                            }
2364                            "usage" => Ok(GeneratedField::Usage),
2365                            _ => Ok(GeneratedField::__SkipField__),
2366                        }
2367                    }
2368                }
2369                deserializer.deserialize_identifier(GeneratedVisitor)
2370            }
2371        }
2372        struct GeneratedVisitor;
2373        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2374            type Value = OrganizationQuota;
2375            fn expecting(
2376                &self,
2377                formatter: &mut std::fmt::Formatter<'_>,
2378            ) -> std::fmt::Result {
2379                formatter
2380                    .write_str(
2381                        "struct origincloud.resourcemanager.v1beta1.OrganizationQuota",
2382                    )
2383            }
2384            fn visit_map<V>(
2385                self,
2386                mut map_: V,
2387            ) -> std::result::Result<OrganizationQuota, V::Error>
2388            where
2389                V: serde::de::MapAccess<'de>,
2390            {
2391                let mut name__ = None;
2392                let mut max_instances__ = None;
2393                let mut max_vcpu__ = None;
2394                let mut max_volume_gib__ = None;
2395                let mut max_vpcs__ = None;
2396                let mut max_public_ips__ = None;
2397                let mut max_hosted_zones__ = None;
2398                let mut max_record_sets__ = None;
2399                let mut usage__ = None;
2400                while let Some(k) = map_.next_key()? {
2401                    match k {
2402                        GeneratedField::Name => {
2403                            if name__.is_some() {
2404                                return Err(serde::de::Error::duplicate_field("name"));
2405                            }
2406                            name__ = Some(map_.next_value()?);
2407                        }
2408                        GeneratedField::MaxInstances => {
2409                            if max_instances__.is_some() {
2410                                return Err(
2411                                    serde::de::Error::duplicate_field("maxInstances"),
2412                                );
2413                            }
2414                            max_instances__ = Some(
2415                                map_
2416                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2417                                    .0,
2418                            );
2419                        }
2420                        GeneratedField::MaxVcpu => {
2421                            if max_vcpu__.is_some() {
2422                                return Err(serde::de::Error::duplicate_field("maxVcpu"));
2423                            }
2424                            max_vcpu__ = Some(
2425                                map_
2426                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2427                                    .0,
2428                            );
2429                        }
2430                        GeneratedField::MaxVolumeGib => {
2431                            if max_volume_gib__.is_some() {
2432                                return Err(
2433                                    serde::de::Error::duplicate_field("maxVolumeGib"),
2434                                );
2435                            }
2436                            max_volume_gib__ = Some(
2437                                map_
2438                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2439                                    .0,
2440                            );
2441                        }
2442                        GeneratedField::MaxVpcs => {
2443                            if max_vpcs__.is_some() {
2444                                return Err(serde::de::Error::duplicate_field("maxVpcs"));
2445                            }
2446                            max_vpcs__ = Some(
2447                                map_
2448                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2449                                    .0,
2450                            );
2451                        }
2452                        GeneratedField::MaxPublicIps => {
2453                            if max_public_ips__.is_some() {
2454                                return Err(
2455                                    serde::de::Error::duplicate_field("maxPublicIps"),
2456                                );
2457                            }
2458                            max_public_ips__ = Some(
2459                                map_
2460                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2461                                    .0,
2462                            );
2463                        }
2464                        GeneratedField::MaxHostedZones => {
2465                            if max_hosted_zones__.is_some() {
2466                                return Err(
2467                                    serde::de::Error::duplicate_field("maxHostedZones"),
2468                                );
2469                            }
2470                            max_hosted_zones__ = Some(
2471                                map_
2472                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2473                                    .0,
2474                            );
2475                        }
2476                        GeneratedField::MaxRecordSets => {
2477                            if max_record_sets__.is_some() {
2478                                return Err(
2479                                    serde::de::Error::duplicate_field("maxRecordSets"),
2480                                );
2481                            }
2482                            max_record_sets__ = Some(
2483                                map_
2484                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2485                                    .0,
2486                            );
2487                        }
2488                        GeneratedField::Usage => {
2489                            if usage__.is_some() {
2490                                return Err(serde::de::Error::duplicate_field("usage"));
2491                            }
2492                            usage__ = map_.next_value()?;
2493                        }
2494                        GeneratedField::__SkipField__ => {
2495                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2496                        }
2497                    }
2498                }
2499                Ok(OrganizationQuota {
2500                    name: name__.unwrap_or_default(),
2501                    max_instances: max_instances__.unwrap_or_default(),
2502                    max_vcpu: max_vcpu__.unwrap_or_default(),
2503                    max_volume_gib: max_volume_gib__.unwrap_or_default(),
2504                    max_vpcs: max_vpcs__.unwrap_or_default(),
2505                    max_public_ips: max_public_ips__.unwrap_or_default(),
2506                    max_hosted_zones: max_hosted_zones__.unwrap_or_default(),
2507                    max_record_sets: max_record_sets__.unwrap_or_default(),
2508                    usage: usage__,
2509                })
2510            }
2511        }
2512        deserializer
2513            .deserialize_struct(
2514                "origincloud.resourcemanager.v1beta1.OrganizationQuota",
2515                FIELDS,
2516                GeneratedVisitor,
2517            )
2518    }
2519}
2520impl serde::Serialize for Project {
2521    #[allow(deprecated)]
2522    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2523    where
2524        S: serde::Serializer,
2525    {
2526        use serde::ser::SerializeStruct;
2527        let mut len = 0;
2528        if !self.name.is_empty() {
2529            len += 1;
2530        }
2531        if !self.urn.is_empty() {
2532            len += 1;
2533        }
2534        if !self.organization.is_empty() {
2535            len += 1;
2536        }
2537        if !self.display_name.is_empty() {
2538            len += 1;
2539        }
2540        if self.create_time.is_some() {
2541            len += 1;
2542        }
2543        if !self.creator.is_empty() {
2544            len += 1;
2545        }
2546        let mut struct_ser = serializer
2547            .serialize_struct("origincloud.resourcemanager.v1beta1.Project", len)?;
2548        if !self.name.is_empty() {
2549            struct_ser.serialize_field("name", &self.name)?;
2550        }
2551        if !self.urn.is_empty() {
2552            struct_ser.serialize_field("urn", &self.urn)?;
2553        }
2554        if !self.organization.is_empty() {
2555            struct_ser.serialize_field("organization", &self.organization)?;
2556        }
2557        if !self.display_name.is_empty() {
2558            struct_ser.serialize_field("displayName", &self.display_name)?;
2559        }
2560        if let Some(v) = self.create_time.as_ref() {
2561            struct_ser.serialize_field("createTime", v)?;
2562        }
2563        if !self.creator.is_empty() {
2564            struct_ser.serialize_field("creator", &self.creator)?;
2565        }
2566        struct_ser.end()
2567    }
2568}
2569impl<'de> serde::Deserialize<'de> for Project {
2570    #[allow(deprecated)]
2571    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2572    where
2573        D: serde::Deserializer<'de>,
2574    {
2575        const FIELDS: &[&str] = &[
2576            "name",
2577            "urn",
2578            "organization",
2579            "display_name",
2580            "displayName",
2581            "create_time",
2582            "createTime",
2583            "creator",
2584        ];
2585        #[allow(clippy::enum_variant_names)]
2586        enum GeneratedField {
2587            Name,
2588            Urn,
2589            Organization,
2590            DisplayName,
2591            CreateTime,
2592            Creator,
2593            __SkipField__,
2594        }
2595        impl<'de> serde::Deserialize<'de> for GeneratedField {
2596            fn deserialize<D>(
2597                deserializer: D,
2598            ) -> std::result::Result<GeneratedField, D::Error>
2599            where
2600                D: serde::Deserializer<'de>,
2601            {
2602                struct GeneratedVisitor;
2603                impl serde::de::Visitor<'_> for GeneratedVisitor {
2604                    type Value = GeneratedField;
2605                    fn expecting(
2606                        &self,
2607                        formatter: &mut std::fmt::Formatter<'_>,
2608                    ) -> std::fmt::Result {
2609                        write!(formatter, "expected one of: {:?}", & FIELDS)
2610                    }
2611                    #[allow(unused_variables)]
2612                    fn visit_str<E>(
2613                        self,
2614                        value: &str,
2615                    ) -> std::result::Result<GeneratedField, E>
2616                    where
2617                        E: serde::de::Error,
2618                    {
2619                        match value {
2620                            "name" => Ok(GeneratedField::Name),
2621                            "urn" => Ok(GeneratedField::Urn),
2622                            "organization" => Ok(GeneratedField::Organization),
2623                            "displayName" | "display_name" => {
2624                                Ok(GeneratedField::DisplayName)
2625                            }
2626                            "createTime" | "create_time" => {
2627                                Ok(GeneratedField::CreateTime)
2628                            }
2629                            "creator" => Ok(GeneratedField::Creator),
2630                            _ => Ok(GeneratedField::__SkipField__),
2631                        }
2632                    }
2633                }
2634                deserializer.deserialize_identifier(GeneratedVisitor)
2635            }
2636        }
2637        struct GeneratedVisitor;
2638        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2639            type Value = Project;
2640            fn expecting(
2641                &self,
2642                formatter: &mut std::fmt::Formatter<'_>,
2643            ) -> std::fmt::Result {
2644                formatter.write_str("struct origincloud.resourcemanager.v1beta1.Project")
2645            }
2646            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Project, V::Error>
2647            where
2648                V: serde::de::MapAccess<'de>,
2649            {
2650                let mut name__ = None;
2651                let mut urn__ = None;
2652                let mut organization__ = None;
2653                let mut display_name__ = None;
2654                let mut create_time__ = None;
2655                let mut creator__ = None;
2656                while let Some(k) = map_.next_key()? {
2657                    match k {
2658                        GeneratedField::Name => {
2659                            if name__.is_some() {
2660                                return Err(serde::de::Error::duplicate_field("name"));
2661                            }
2662                            name__ = Some(map_.next_value()?);
2663                        }
2664                        GeneratedField::Urn => {
2665                            if urn__.is_some() {
2666                                return Err(serde::de::Error::duplicate_field("urn"));
2667                            }
2668                            urn__ = Some(map_.next_value()?);
2669                        }
2670                        GeneratedField::Organization => {
2671                            if organization__.is_some() {
2672                                return Err(
2673                                    serde::de::Error::duplicate_field("organization"),
2674                                );
2675                            }
2676                            organization__ = Some(map_.next_value()?);
2677                        }
2678                        GeneratedField::DisplayName => {
2679                            if display_name__.is_some() {
2680                                return Err(
2681                                    serde::de::Error::duplicate_field("displayName"),
2682                                );
2683                            }
2684                            display_name__ = Some(map_.next_value()?);
2685                        }
2686                        GeneratedField::CreateTime => {
2687                            if create_time__.is_some() {
2688                                return Err(serde::de::Error::duplicate_field("createTime"));
2689                            }
2690                            create_time__ = map_.next_value()?;
2691                        }
2692                        GeneratedField::Creator => {
2693                            if creator__.is_some() {
2694                                return Err(serde::de::Error::duplicate_field("creator"));
2695                            }
2696                            creator__ = Some(map_.next_value()?);
2697                        }
2698                        GeneratedField::__SkipField__ => {
2699                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2700                        }
2701                    }
2702                }
2703                Ok(Project {
2704                    name: name__.unwrap_or_default(),
2705                    urn: urn__.unwrap_or_default(),
2706                    organization: organization__.unwrap_or_default(),
2707                    display_name: display_name__.unwrap_or_default(),
2708                    create_time: create_time__,
2709                    creator: creator__.unwrap_or_default(),
2710                })
2711            }
2712        }
2713        deserializer
2714            .deserialize_struct(
2715                "origincloud.resourcemanager.v1beta1.Project",
2716                FIELDS,
2717                GeneratedVisitor,
2718            )
2719    }
2720}
2721impl serde::Serialize for ProjectQuota {
2722    #[allow(deprecated)]
2723    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2724    where
2725        S: serde::Serializer,
2726    {
2727        use serde::ser::SerializeStruct;
2728        let mut len = 0;
2729        if !self.name.is_empty() {
2730            len += 1;
2731        }
2732        if self.max_instances.is_some() {
2733            len += 1;
2734        }
2735        if self.max_vcpu.is_some() {
2736            len += 1;
2737        }
2738        if self.max_volume_gib.is_some() {
2739            len += 1;
2740        }
2741        if self.max_vpcs.is_some() {
2742            len += 1;
2743        }
2744        if self.max_public_ips.is_some() {
2745            len += 1;
2746        }
2747        if self.max_hosted_zones.is_some() {
2748            len += 1;
2749        }
2750        if self.max_record_sets.is_some() {
2751            len += 1;
2752        }
2753        if self.usage.is_some() {
2754            len += 1;
2755        }
2756        let mut struct_ser = serializer
2757            .serialize_struct("origincloud.resourcemanager.v1beta1.ProjectQuota", len)?;
2758        if !self.name.is_empty() {
2759            struct_ser.serialize_field("name", &self.name)?;
2760        }
2761        if let Some(v) = self.max_instances.as_ref() {
2762            #[allow(clippy::needless_borrow)]
2763            #[allow(clippy::needless_borrows_for_generic_args)]
2764            struct_ser
2765                .serialize_field("maxInstances", ToString::to_string(&v).as_str())?;
2766        }
2767        if let Some(v) = self.max_vcpu.as_ref() {
2768            #[allow(clippy::needless_borrow)]
2769            #[allow(clippy::needless_borrows_for_generic_args)]
2770            struct_ser.serialize_field("maxVcpu", ToString::to_string(&v).as_str())?;
2771        }
2772        if let Some(v) = self.max_volume_gib.as_ref() {
2773            #[allow(clippy::needless_borrow)]
2774            #[allow(clippy::needless_borrows_for_generic_args)]
2775            struct_ser
2776                .serialize_field("maxVolumeGib", ToString::to_string(&v).as_str())?;
2777        }
2778        if let Some(v) = self.max_vpcs.as_ref() {
2779            #[allow(clippy::needless_borrow)]
2780            #[allow(clippy::needless_borrows_for_generic_args)]
2781            struct_ser.serialize_field("maxVpcs", ToString::to_string(&v).as_str())?;
2782        }
2783        if let Some(v) = self.max_public_ips.as_ref() {
2784            #[allow(clippy::needless_borrow)]
2785            #[allow(clippy::needless_borrows_for_generic_args)]
2786            struct_ser
2787                .serialize_field("maxPublicIps", ToString::to_string(&v).as_str())?;
2788        }
2789        if let Some(v) = self.max_hosted_zones.as_ref() {
2790            #[allow(clippy::needless_borrow)]
2791            #[allow(clippy::needless_borrows_for_generic_args)]
2792            struct_ser
2793                .serialize_field("maxHostedZones", ToString::to_string(&v).as_str())?;
2794        }
2795        if let Some(v) = self.max_record_sets.as_ref() {
2796            #[allow(clippy::needless_borrow)]
2797            #[allow(clippy::needless_borrows_for_generic_args)]
2798            struct_ser
2799                .serialize_field("maxRecordSets", ToString::to_string(&v).as_str())?;
2800        }
2801        if let Some(v) = self.usage.as_ref() {
2802            struct_ser.serialize_field("usage", v)?;
2803        }
2804        struct_ser.end()
2805    }
2806}
2807impl<'de> serde::Deserialize<'de> for ProjectQuota {
2808    #[allow(deprecated)]
2809    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2810    where
2811        D: serde::Deserializer<'de>,
2812    {
2813        const FIELDS: &[&str] = &[
2814            "name",
2815            "max_instances",
2816            "maxInstances",
2817            "max_vcpu",
2818            "maxVcpu",
2819            "max_volume_gib",
2820            "maxVolumeGib",
2821            "max_vpcs",
2822            "maxVpcs",
2823            "max_public_ips",
2824            "maxPublicIps",
2825            "max_hosted_zones",
2826            "maxHostedZones",
2827            "max_record_sets",
2828            "maxRecordSets",
2829            "usage",
2830        ];
2831        #[allow(clippy::enum_variant_names)]
2832        enum GeneratedField {
2833            Name,
2834            MaxInstances,
2835            MaxVcpu,
2836            MaxVolumeGib,
2837            MaxVpcs,
2838            MaxPublicIps,
2839            MaxHostedZones,
2840            MaxRecordSets,
2841            Usage,
2842            __SkipField__,
2843        }
2844        impl<'de> serde::Deserialize<'de> for GeneratedField {
2845            fn deserialize<D>(
2846                deserializer: D,
2847            ) -> std::result::Result<GeneratedField, D::Error>
2848            where
2849                D: serde::Deserializer<'de>,
2850            {
2851                struct GeneratedVisitor;
2852                impl serde::de::Visitor<'_> for GeneratedVisitor {
2853                    type Value = GeneratedField;
2854                    fn expecting(
2855                        &self,
2856                        formatter: &mut std::fmt::Formatter<'_>,
2857                    ) -> std::fmt::Result {
2858                        write!(formatter, "expected one of: {:?}", & FIELDS)
2859                    }
2860                    #[allow(unused_variables)]
2861                    fn visit_str<E>(
2862                        self,
2863                        value: &str,
2864                    ) -> std::result::Result<GeneratedField, E>
2865                    where
2866                        E: serde::de::Error,
2867                    {
2868                        match value {
2869                            "name" => Ok(GeneratedField::Name),
2870                            "maxInstances" | "max_instances" => {
2871                                Ok(GeneratedField::MaxInstances)
2872                            }
2873                            "maxVcpu" | "max_vcpu" => Ok(GeneratedField::MaxVcpu),
2874                            "maxVolumeGib" | "max_volume_gib" => {
2875                                Ok(GeneratedField::MaxVolumeGib)
2876                            }
2877                            "maxVpcs" | "max_vpcs" => Ok(GeneratedField::MaxVpcs),
2878                            "maxPublicIps" | "max_public_ips" => {
2879                                Ok(GeneratedField::MaxPublicIps)
2880                            }
2881                            "maxHostedZones" | "max_hosted_zones" => {
2882                                Ok(GeneratedField::MaxHostedZones)
2883                            }
2884                            "maxRecordSets" | "max_record_sets" => {
2885                                Ok(GeneratedField::MaxRecordSets)
2886                            }
2887                            "usage" => Ok(GeneratedField::Usage),
2888                            _ => Ok(GeneratedField::__SkipField__),
2889                        }
2890                    }
2891                }
2892                deserializer.deserialize_identifier(GeneratedVisitor)
2893            }
2894        }
2895        struct GeneratedVisitor;
2896        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2897            type Value = ProjectQuota;
2898            fn expecting(
2899                &self,
2900                formatter: &mut std::fmt::Formatter<'_>,
2901            ) -> std::fmt::Result {
2902                formatter
2903                    .write_str("struct origincloud.resourcemanager.v1beta1.ProjectQuota")
2904            }
2905            fn visit_map<V>(
2906                self,
2907                mut map_: V,
2908            ) -> std::result::Result<ProjectQuota, V::Error>
2909            where
2910                V: serde::de::MapAccess<'de>,
2911            {
2912                let mut name__ = None;
2913                let mut max_instances__ = None;
2914                let mut max_vcpu__ = None;
2915                let mut max_volume_gib__ = None;
2916                let mut max_vpcs__ = None;
2917                let mut max_public_ips__ = None;
2918                let mut max_hosted_zones__ = None;
2919                let mut max_record_sets__ = None;
2920                let mut usage__ = None;
2921                while let Some(k) = map_.next_key()? {
2922                    match k {
2923                        GeneratedField::Name => {
2924                            if name__.is_some() {
2925                                return Err(serde::de::Error::duplicate_field("name"));
2926                            }
2927                            name__ = Some(map_.next_value()?);
2928                        }
2929                        GeneratedField::MaxInstances => {
2930                            if max_instances__.is_some() {
2931                                return Err(
2932                                    serde::de::Error::duplicate_field("maxInstances"),
2933                                );
2934                            }
2935                            max_instances__ = map_
2936                                .next_value::<
2937                                    ::std::option::Option<
2938                                        ::pbjson::private::NumberDeserialize<_>,
2939                                    >,
2940                                >()?
2941                                .map(|x| x.0);
2942                        }
2943                        GeneratedField::MaxVcpu => {
2944                            if max_vcpu__.is_some() {
2945                                return Err(serde::de::Error::duplicate_field("maxVcpu"));
2946                            }
2947                            max_vcpu__ = map_
2948                                .next_value::<
2949                                    ::std::option::Option<
2950                                        ::pbjson::private::NumberDeserialize<_>,
2951                                    >,
2952                                >()?
2953                                .map(|x| x.0);
2954                        }
2955                        GeneratedField::MaxVolumeGib => {
2956                            if max_volume_gib__.is_some() {
2957                                return Err(
2958                                    serde::de::Error::duplicate_field("maxVolumeGib"),
2959                                );
2960                            }
2961                            max_volume_gib__ = map_
2962                                .next_value::<
2963                                    ::std::option::Option<
2964                                        ::pbjson::private::NumberDeserialize<_>,
2965                                    >,
2966                                >()?
2967                                .map(|x| x.0);
2968                        }
2969                        GeneratedField::MaxVpcs => {
2970                            if max_vpcs__.is_some() {
2971                                return Err(serde::de::Error::duplicate_field("maxVpcs"));
2972                            }
2973                            max_vpcs__ = map_
2974                                .next_value::<
2975                                    ::std::option::Option<
2976                                        ::pbjson::private::NumberDeserialize<_>,
2977                                    >,
2978                                >()?
2979                                .map(|x| x.0);
2980                        }
2981                        GeneratedField::MaxPublicIps => {
2982                            if max_public_ips__.is_some() {
2983                                return Err(
2984                                    serde::de::Error::duplicate_field("maxPublicIps"),
2985                                );
2986                            }
2987                            max_public_ips__ = map_
2988                                .next_value::<
2989                                    ::std::option::Option<
2990                                        ::pbjson::private::NumberDeserialize<_>,
2991                                    >,
2992                                >()?
2993                                .map(|x| x.0);
2994                        }
2995                        GeneratedField::MaxHostedZones => {
2996                            if max_hosted_zones__.is_some() {
2997                                return Err(
2998                                    serde::de::Error::duplicate_field("maxHostedZones"),
2999                                );
3000                            }
3001                            max_hosted_zones__ = map_
3002                                .next_value::<
3003                                    ::std::option::Option<
3004                                        ::pbjson::private::NumberDeserialize<_>,
3005                                    >,
3006                                >()?
3007                                .map(|x| x.0);
3008                        }
3009                        GeneratedField::MaxRecordSets => {
3010                            if max_record_sets__.is_some() {
3011                                return Err(
3012                                    serde::de::Error::duplicate_field("maxRecordSets"),
3013                                );
3014                            }
3015                            max_record_sets__ = map_
3016                                .next_value::<
3017                                    ::std::option::Option<
3018                                        ::pbjson::private::NumberDeserialize<_>,
3019                                    >,
3020                                >()?
3021                                .map(|x| x.0);
3022                        }
3023                        GeneratedField::Usage => {
3024                            if usage__.is_some() {
3025                                return Err(serde::de::Error::duplicate_field("usage"));
3026                            }
3027                            usage__ = map_.next_value()?;
3028                        }
3029                        GeneratedField::__SkipField__ => {
3030                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3031                        }
3032                    }
3033                }
3034                Ok(ProjectQuota {
3035                    name: name__.unwrap_or_default(),
3036                    max_instances: max_instances__,
3037                    max_vcpu: max_vcpu__,
3038                    max_volume_gib: max_volume_gib__,
3039                    max_vpcs: max_vpcs__,
3040                    max_public_ips: max_public_ips__,
3041                    max_hosted_zones: max_hosted_zones__,
3042                    max_record_sets: max_record_sets__,
3043                    usage: usage__,
3044                })
3045            }
3046        }
3047        deserializer
3048            .deserialize_struct(
3049                "origincloud.resourcemanager.v1beta1.ProjectQuota",
3050                FIELDS,
3051                GeneratedVisitor,
3052            )
3053    }
3054}
3055impl serde::Serialize for QuotaUsage {
3056    #[allow(deprecated)]
3057    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3058    where
3059        S: serde::Serializer,
3060    {
3061        use serde::ser::SerializeStruct;
3062        let mut len = 0;
3063        if self.instances != 0 {
3064            len += 1;
3065        }
3066        if self.vcpu != 0 {
3067            len += 1;
3068        }
3069        if self.volume_gib != 0 {
3070            len += 1;
3071        }
3072        if self.vpcs != 0 {
3073            len += 1;
3074        }
3075        if self.public_ips != 0 {
3076            len += 1;
3077        }
3078        if self.hosted_zones.is_some() {
3079            len += 1;
3080        }
3081        if self.record_sets.is_some() {
3082            len += 1;
3083        }
3084        let mut struct_ser = serializer
3085            .serialize_struct("origincloud.resourcemanager.v1beta1.QuotaUsage", len)?;
3086        if self.instances != 0 {
3087            #[allow(clippy::needless_borrow)]
3088            #[allow(clippy::needless_borrows_for_generic_args)]
3089            struct_ser
3090                .serialize_field(
3091                    "instances",
3092                    ToString::to_string(&self.instances).as_str(),
3093                )?;
3094        }
3095        if self.vcpu != 0 {
3096            #[allow(clippy::needless_borrow)]
3097            #[allow(clippy::needless_borrows_for_generic_args)]
3098            struct_ser
3099                .serialize_field("vcpu", ToString::to_string(&self.vcpu).as_str())?;
3100        }
3101        if self.volume_gib != 0 {
3102            #[allow(clippy::needless_borrow)]
3103            #[allow(clippy::needless_borrows_for_generic_args)]
3104            struct_ser
3105                .serialize_field(
3106                    "volumeGib",
3107                    ToString::to_string(&self.volume_gib).as_str(),
3108                )?;
3109        }
3110        if self.vpcs != 0 {
3111            #[allow(clippy::needless_borrow)]
3112            #[allow(clippy::needless_borrows_for_generic_args)]
3113            struct_ser
3114                .serialize_field("vpcs", ToString::to_string(&self.vpcs).as_str())?;
3115        }
3116        if self.public_ips != 0 {
3117            #[allow(clippy::needless_borrow)]
3118            #[allow(clippy::needless_borrows_for_generic_args)]
3119            struct_ser
3120                .serialize_field(
3121                    "publicIps",
3122                    ToString::to_string(&self.public_ips).as_str(),
3123                )?;
3124        }
3125        if let Some(v) = self.hosted_zones.as_ref() {
3126            #[allow(clippy::needless_borrow)]
3127            #[allow(clippy::needless_borrows_for_generic_args)]
3128            struct_ser.serialize_field("hostedZones", ToString::to_string(&v).as_str())?;
3129        }
3130        if let Some(v) = self.record_sets.as_ref() {
3131            #[allow(clippy::needless_borrow)]
3132            #[allow(clippy::needless_borrows_for_generic_args)]
3133            struct_ser.serialize_field("recordSets", ToString::to_string(&v).as_str())?;
3134        }
3135        struct_ser.end()
3136    }
3137}
3138impl<'de> serde::Deserialize<'de> for QuotaUsage {
3139    #[allow(deprecated)]
3140    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3141    where
3142        D: serde::Deserializer<'de>,
3143    {
3144        const FIELDS: &[&str] = &[
3145            "instances",
3146            "vcpu",
3147            "volume_gib",
3148            "volumeGib",
3149            "vpcs",
3150            "public_ips",
3151            "publicIps",
3152            "hosted_zones",
3153            "hostedZones",
3154            "record_sets",
3155            "recordSets",
3156        ];
3157        #[allow(clippy::enum_variant_names)]
3158        enum GeneratedField {
3159            Instances,
3160            Vcpu,
3161            VolumeGib,
3162            Vpcs,
3163            PublicIps,
3164            HostedZones,
3165            RecordSets,
3166            __SkipField__,
3167        }
3168        impl<'de> serde::Deserialize<'de> for GeneratedField {
3169            fn deserialize<D>(
3170                deserializer: D,
3171            ) -> std::result::Result<GeneratedField, D::Error>
3172            where
3173                D: serde::Deserializer<'de>,
3174            {
3175                struct GeneratedVisitor;
3176                impl serde::de::Visitor<'_> for GeneratedVisitor {
3177                    type Value = GeneratedField;
3178                    fn expecting(
3179                        &self,
3180                        formatter: &mut std::fmt::Formatter<'_>,
3181                    ) -> std::fmt::Result {
3182                        write!(formatter, "expected one of: {:?}", & FIELDS)
3183                    }
3184                    #[allow(unused_variables)]
3185                    fn visit_str<E>(
3186                        self,
3187                        value: &str,
3188                    ) -> std::result::Result<GeneratedField, E>
3189                    where
3190                        E: serde::de::Error,
3191                    {
3192                        match value {
3193                            "instances" => Ok(GeneratedField::Instances),
3194                            "vcpu" => Ok(GeneratedField::Vcpu),
3195                            "volumeGib" | "volume_gib" => Ok(GeneratedField::VolumeGib),
3196                            "vpcs" => Ok(GeneratedField::Vpcs),
3197                            "publicIps" | "public_ips" => Ok(GeneratedField::PublicIps),
3198                            "hostedZones" | "hosted_zones" => {
3199                                Ok(GeneratedField::HostedZones)
3200                            }
3201                            "recordSets" | "record_sets" => {
3202                                Ok(GeneratedField::RecordSets)
3203                            }
3204                            _ => Ok(GeneratedField::__SkipField__),
3205                        }
3206                    }
3207                }
3208                deserializer.deserialize_identifier(GeneratedVisitor)
3209            }
3210        }
3211        struct GeneratedVisitor;
3212        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3213            type Value = QuotaUsage;
3214            fn expecting(
3215                &self,
3216                formatter: &mut std::fmt::Formatter<'_>,
3217            ) -> std::fmt::Result {
3218                formatter
3219                    .write_str("struct origincloud.resourcemanager.v1beta1.QuotaUsage")
3220            }
3221            fn visit_map<V>(
3222                self,
3223                mut map_: V,
3224            ) -> std::result::Result<QuotaUsage, V::Error>
3225            where
3226                V: serde::de::MapAccess<'de>,
3227            {
3228                let mut instances__ = None;
3229                let mut vcpu__ = None;
3230                let mut volume_gib__ = None;
3231                let mut vpcs__ = None;
3232                let mut public_ips__ = None;
3233                let mut hosted_zones__ = None;
3234                let mut record_sets__ = None;
3235                while let Some(k) = map_.next_key()? {
3236                    match k {
3237                        GeneratedField::Instances => {
3238                            if instances__.is_some() {
3239                                return Err(serde::de::Error::duplicate_field("instances"));
3240                            }
3241                            instances__ = Some(
3242                                map_
3243                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3244                                    .0,
3245                            );
3246                        }
3247                        GeneratedField::Vcpu => {
3248                            if vcpu__.is_some() {
3249                                return Err(serde::de::Error::duplicate_field("vcpu"));
3250                            }
3251                            vcpu__ = Some(
3252                                map_
3253                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3254                                    .0,
3255                            );
3256                        }
3257                        GeneratedField::VolumeGib => {
3258                            if volume_gib__.is_some() {
3259                                return Err(serde::de::Error::duplicate_field("volumeGib"));
3260                            }
3261                            volume_gib__ = Some(
3262                                map_
3263                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3264                                    .0,
3265                            );
3266                        }
3267                        GeneratedField::Vpcs => {
3268                            if vpcs__.is_some() {
3269                                return Err(serde::de::Error::duplicate_field("vpcs"));
3270                            }
3271                            vpcs__ = Some(
3272                                map_
3273                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3274                                    .0,
3275                            );
3276                        }
3277                        GeneratedField::PublicIps => {
3278                            if public_ips__.is_some() {
3279                                return Err(serde::de::Error::duplicate_field("publicIps"));
3280                            }
3281                            public_ips__ = Some(
3282                                map_
3283                                    .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3284                                    .0,
3285                            );
3286                        }
3287                        GeneratedField::HostedZones => {
3288                            if hosted_zones__.is_some() {
3289                                return Err(
3290                                    serde::de::Error::duplicate_field("hostedZones"),
3291                                );
3292                            }
3293                            hosted_zones__ = map_
3294                                .next_value::<
3295                                    ::std::option::Option<
3296                                        ::pbjson::private::NumberDeserialize<_>,
3297                                    >,
3298                                >()?
3299                                .map(|x| x.0);
3300                        }
3301                        GeneratedField::RecordSets => {
3302                            if record_sets__.is_some() {
3303                                return Err(serde::de::Error::duplicate_field("recordSets"));
3304                            }
3305                            record_sets__ = map_
3306                                .next_value::<
3307                                    ::std::option::Option<
3308                                        ::pbjson::private::NumberDeserialize<_>,
3309                                    >,
3310                                >()?
3311                                .map(|x| x.0);
3312                        }
3313                        GeneratedField::__SkipField__ => {
3314                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3315                        }
3316                    }
3317                }
3318                Ok(QuotaUsage {
3319                    instances: instances__.unwrap_or_default(),
3320                    vcpu: vcpu__.unwrap_or_default(),
3321                    volume_gib: volume_gib__.unwrap_or_default(),
3322                    vpcs: vpcs__.unwrap_or_default(),
3323                    public_ips: public_ips__.unwrap_or_default(),
3324                    hosted_zones: hosted_zones__,
3325                    record_sets: record_sets__,
3326                })
3327            }
3328        }
3329        deserializer
3330            .deserialize_struct(
3331                "origincloud.resourcemanager.v1beta1.QuotaUsage",
3332                FIELDS,
3333                GeneratedVisitor,
3334            )
3335    }
3336}
3337impl serde::Serialize for UpdateOrganizationRequest {
3338    #[allow(deprecated)]
3339    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3340    where
3341        S: serde::Serializer,
3342    {
3343        use serde::ser::SerializeStruct;
3344        let mut len = 0;
3345        if self.organization.is_some() {
3346            len += 1;
3347        }
3348        if self.update_mask.is_some() {
3349            len += 1;
3350        }
3351        let mut struct_ser = serializer
3352            .serialize_struct(
3353                "origincloud.resourcemanager.v1beta1.UpdateOrganizationRequest",
3354                len,
3355            )?;
3356        if let Some(v) = self.organization.as_ref() {
3357            struct_ser.serialize_field("organization", v)?;
3358        }
3359        if let Some(v) = self.update_mask.as_ref() {
3360            struct_ser.serialize_field("updateMask", v)?;
3361        }
3362        struct_ser.end()
3363    }
3364}
3365impl<'de> serde::Deserialize<'de> for UpdateOrganizationRequest {
3366    #[allow(deprecated)]
3367    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3368    where
3369        D: serde::Deserializer<'de>,
3370    {
3371        const FIELDS: &[&str] = &["organization", "update_mask", "updateMask"];
3372        #[allow(clippy::enum_variant_names)]
3373        enum GeneratedField {
3374            Organization,
3375            UpdateMask,
3376            __SkipField__,
3377        }
3378        impl<'de> serde::Deserialize<'de> for GeneratedField {
3379            fn deserialize<D>(
3380                deserializer: D,
3381            ) -> std::result::Result<GeneratedField, D::Error>
3382            where
3383                D: serde::Deserializer<'de>,
3384            {
3385                struct GeneratedVisitor;
3386                impl serde::de::Visitor<'_> for GeneratedVisitor {
3387                    type Value = GeneratedField;
3388                    fn expecting(
3389                        &self,
3390                        formatter: &mut std::fmt::Formatter<'_>,
3391                    ) -> std::fmt::Result {
3392                        write!(formatter, "expected one of: {:?}", & FIELDS)
3393                    }
3394                    #[allow(unused_variables)]
3395                    fn visit_str<E>(
3396                        self,
3397                        value: &str,
3398                    ) -> std::result::Result<GeneratedField, E>
3399                    where
3400                        E: serde::de::Error,
3401                    {
3402                        match value {
3403                            "organization" => Ok(GeneratedField::Organization),
3404                            "updateMask" | "update_mask" => {
3405                                Ok(GeneratedField::UpdateMask)
3406                            }
3407                            _ => Ok(GeneratedField::__SkipField__),
3408                        }
3409                    }
3410                }
3411                deserializer.deserialize_identifier(GeneratedVisitor)
3412            }
3413        }
3414        struct GeneratedVisitor;
3415        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3416            type Value = UpdateOrganizationRequest;
3417            fn expecting(
3418                &self,
3419                formatter: &mut std::fmt::Formatter<'_>,
3420            ) -> std::fmt::Result {
3421                formatter
3422                    .write_str(
3423                        "struct origincloud.resourcemanager.v1beta1.UpdateOrganizationRequest",
3424                    )
3425            }
3426            fn visit_map<V>(
3427                self,
3428                mut map_: V,
3429            ) -> std::result::Result<UpdateOrganizationRequest, V::Error>
3430            where
3431                V: serde::de::MapAccess<'de>,
3432            {
3433                let mut organization__ = None;
3434                let mut update_mask__ = None;
3435                while let Some(k) = map_.next_key()? {
3436                    match k {
3437                        GeneratedField::Organization => {
3438                            if organization__.is_some() {
3439                                return Err(
3440                                    serde::de::Error::duplicate_field("organization"),
3441                                );
3442                            }
3443                            organization__ = map_.next_value()?;
3444                        }
3445                        GeneratedField::UpdateMask => {
3446                            if update_mask__.is_some() {
3447                                return Err(serde::de::Error::duplicate_field("updateMask"));
3448                            }
3449                            update_mask__ = map_.next_value()?;
3450                        }
3451                        GeneratedField::__SkipField__ => {
3452                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3453                        }
3454                    }
3455                }
3456                Ok(UpdateOrganizationRequest {
3457                    organization: organization__,
3458                    update_mask: update_mask__,
3459                })
3460            }
3461        }
3462        deserializer
3463            .deserialize_struct(
3464                "origincloud.resourcemanager.v1beta1.UpdateOrganizationRequest",
3465                FIELDS,
3466                GeneratedVisitor,
3467            )
3468    }
3469}
3470impl serde::Serialize for UpdateProjectQuotaRequest {
3471    #[allow(deprecated)]
3472    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3473    where
3474        S: serde::Serializer,
3475    {
3476        use serde::ser::SerializeStruct;
3477        let mut len = 0;
3478        if self.project_quota.is_some() {
3479            len += 1;
3480        }
3481        if self.update_mask.is_some() {
3482            len += 1;
3483        }
3484        let mut struct_ser = serializer
3485            .serialize_struct(
3486                "origincloud.resourcemanager.v1beta1.UpdateProjectQuotaRequest",
3487                len,
3488            )?;
3489        if let Some(v) = self.project_quota.as_ref() {
3490            struct_ser.serialize_field("projectQuota", v)?;
3491        }
3492        if let Some(v) = self.update_mask.as_ref() {
3493            struct_ser.serialize_field("updateMask", v)?;
3494        }
3495        struct_ser.end()
3496    }
3497}
3498impl<'de> serde::Deserialize<'de> for UpdateProjectQuotaRequest {
3499    #[allow(deprecated)]
3500    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3501    where
3502        D: serde::Deserializer<'de>,
3503    {
3504        const FIELDS: &[&str] = &[
3505            "project_quota",
3506            "projectQuota",
3507            "update_mask",
3508            "updateMask",
3509        ];
3510        #[allow(clippy::enum_variant_names)]
3511        enum GeneratedField {
3512            ProjectQuota,
3513            UpdateMask,
3514            __SkipField__,
3515        }
3516        impl<'de> serde::Deserialize<'de> for GeneratedField {
3517            fn deserialize<D>(
3518                deserializer: D,
3519            ) -> std::result::Result<GeneratedField, D::Error>
3520            where
3521                D: serde::Deserializer<'de>,
3522            {
3523                struct GeneratedVisitor;
3524                impl serde::de::Visitor<'_> for GeneratedVisitor {
3525                    type Value = GeneratedField;
3526                    fn expecting(
3527                        &self,
3528                        formatter: &mut std::fmt::Formatter<'_>,
3529                    ) -> std::fmt::Result {
3530                        write!(formatter, "expected one of: {:?}", & FIELDS)
3531                    }
3532                    #[allow(unused_variables)]
3533                    fn visit_str<E>(
3534                        self,
3535                        value: &str,
3536                    ) -> std::result::Result<GeneratedField, E>
3537                    where
3538                        E: serde::de::Error,
3539                    {
3540                        match value {
3541                            "projectQuota" | "project_quota" => {
3542                                Ok(GeneratedField::ProjectQuota)
3543                            }
3544                            "updateMask" | "update_mask" => {
3545                                Ok(GeneratedField::UpdateMask)
3546                            }
3547                            _ => Ok(GeneratedField::__SkipField__),
3548                        }
3549                    }
3550                }
3551                deserializer.deserialize_identifier(GeneratedVisitor)
3552            }
3553        }
3554        struct GeneratedVisitor;
3555        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3556            type Value = UpdateProjectQuotaRequest;
3557            fn expecting(
3558                &self,
3559                formatter: &mut std::fmt::Formatter<'_>,
3560            ) -> std::fmt::Result {
3561                formatter
3562                    .write_str(
3563                        "struct origincloud.resourcemanager.v1beta1.UpdateProjectQuotaRequest",
3564                    )
3565            }
3566            fn visit_map<V>(
3567                self,
3568                mut map_: V,
3569            ) -> std::result::Result<UpdateProjectQuotaRequest, V::Error>
3570            where
3571                V: serde::de::MapAccess<'de>,
3572            {
3573                let mut project_quota__ = None;
3574                let mut update_mask__ = None;
3575                while let Some(k) = map_.next_key()? {
3576                    match k {
3577                        GeneratedField::ProjectQuota => {
3578                            if project_quota__.is_some() {
3579                                return Err(
3580                                    serde::de::Error::duplicate_field("projectQuota"),
3581                                );
3582                            }
3583                            project_quota__ = map_.next_value()?;
3584                        }
3585                        GeneratedField::UpdateMask => {
3586                            if update_mask__.is_some() {
3587                                return Err(serde::de::Error::duplicate_field("updateMask"));
3588                            }
3589                            update_mask__ = map_.next_value()?;
3590                        }
3591                        GeneratedField::__SkipField__ => {
3592                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3593                        }
3594                    }
3595                }
3596                Ok(UpdateProjectQuotaRequest {
3597                    project_quota: project_quota__,
3598                    update_mask: update_mask__,
3599                })
3600            }
3601        }
3602        deserializer
3603            .deserialize_struct(
3604                "origincloud.resourcemanager.v1beta1.UpdateProjectQuotaRequest",
3605                FIELDS,
3606                GeneratedVisitor,
3607            )
3608    }
3609}
3610impl serde::Serialize for UpdateProjectRequest {
3611    #[allow(deprecated)]
3612    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3613    where
3614        S: serde::Serializer,
3615    {
3616        use serde::ser::SerializeStruct;
3617        let mut len = 0;
3618        if self.project.is_some() {
3619            len += 1;
3620        }
3621        if self.update_mask.is_some() {
3622            len += 1;
3623        }
3624        let mut struct_ser = serializer
3625            .serialize_struct(
3626                "origincloud.resourcemanager.v1beta1.UpdateProjectRequest",
3627                len,
3628            )?;
3629        if let Some(v) = self.project.as_ref() {
3630            struct_ser.serialize_field("project", v)?;
3631        }
3632        if let Some(v) = self.update_mask.as_ref() {
3633            struct_ser.serialize_field("updateMask", v)?;
3634        }
3635        struct_ser.end()
3636    }
3637}
3638impl<'de> serde::Deserialize<'de> for UpdateProjectRequest {
3639    #[allow(deprecated)]
3640    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3641    where
3642        D: serde::Deserializer<'de>,
3643    {
3644        const FIELDS: &[&str] = &["project", "update_mask", "updateMask"];
3645        #[allow(clippy::enum_variant_names)]
3646        enum GeneratedField {
3647            Project,
3648            UpdateMask,
3649            __SkipField__,
3650        }
3651        impl<'de> serde::Deserialize<'de> for GeneratedField {
3652            fn deserialize<D>(
3653                deserializer: D,
3654            ) -> std::result::Result<GeneratedField, D::Error>
3655            where
3656                D: serde::Deserializer<'de>,
3657            {
3658                struct GeneratedVisitor;
3659                impl serde::de::Visitor<'_> for GeneratedVisitor {
3660                    type Value = GeneratedField;
3661                    fn expecting(
3662                        &self,
3663                        formatter: &mut std::fmt::Formatter<'_>,
3664                    ) -> std::fmt::Result {
3665                        write!(formatter, "expected one of: {:?}", & FIELDS)
3666                    }
3667                    #[allow(unused_variables)]
3668                    fn visit_str<E>(
3669                        self,
3670                        value: &str,
3671                    ) -> std::result::Result<GeneratedField, E>
3672                    where
3673                        E: serde::de::Error,
3674                    {
3675                        match value {
3676                            "project" => Ok(GeneratedField::Project),
3677                            "updateMask" | "update_mask" => {
3678                                Ok(GeneratedField::UpdateMask)
3679                            }
3680                            _ => Ok(GeneratedField::__SkipField__),
3681                        }
3682                    }
3683                }
3684                deserializer.deserialize_identifier(GeneratedVisitor)
3685            }
3686        }
3687        struct GeneratedVisitor;
3688        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3689            type Value = UpdateProjectRequest;
3690            fn expecting(
3691                &self,
3692                formatter: &mut std::fmt::Formatter<'_>,
3693            ) -> std::fmt::Result {
3694                formatter
3695                    .write_str(
3696                        "struct origincloud.resourcemanager.v1beta1.UpdateProjectRequest",
3697                    )
3698            }
3699            fn visit_map<V>(
3700                self,
3701                mut map_: V,
3702            ) -> std::result::Result<UpdateProjectRequest, V::Error>
3703            where
3704                V: serde::de::MapAccess<'de>,
3705            {
3706                let mut project__ = None;
3707                let mut update_mask__ = None;
3708                while let Some(k) = map_.next_key()? {
3709                    match k {
3710                        GeneratedField::Project => {
3711                            if project__.is_some() {
3712                                return Err(serde::de::Error::duplicate_field("project"));
3713                            }
3714                            project__ = map_.next_value()?;
3715                        }
3716                        GeneratedField::UpdateMask => {
3717                            if update_mask__.is_some() {
3718                                return Err(serde::de::Error::duplicate_field("updateMask"));
3719                            }
3720                            update_mask__ = map_.next_value()?;
3721                        }
3722                        GeneratedField::__SkipField__ => {
3723                            let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3724                        }
3725                    }
3726                }
3727                Ok(UpdateProjectRequest {
3728                    project: project__,
3729                    update_mask: update_mask__,
3730                })
3731            }
3732        }
3733        deserializer
3734            .deserialize_struct(
3735                "origincloud.resourcemanager.v1beta1.UpdateProjectRequest",
3736                FIELDS,
3737                GeneratedVisitor,
3738            )
3739    }
3740}
3741/// Calls `OrganizationService`.
3742///
3743/// Organizations: the account a company's projects, members and billing
3744/// belong to. Every project is in exactly one organization, and access to an
3745/// organization is granted with roles in the IAM API (`iam.origincloudapis.eu`).
3746#[derive(Clone, Debug)]
3747pub struct OrganizationClient {
3748    service: ::origincloud_core::Service,
3749}
3750impl OrganizationClient {
3751    /// Returns a client of `OrganizationService` that sends its calls through `client`.
3752    pub fn new(client: &::origincloud_core::Client) -> Self {
3753        Self {
3754            service: client.service("resourcemanager", false),
3755        }
3756    }
3757    /// The endpoint the client sends its calls to, which also serves the operations its methods answer with.
3758    pub fn service(&self) -> &::origincloud_core::Service {
3759        &self.service
3760    }
3761    /// Returns an organization.
3762    pub async fn get_organization(
3763        &self,
3764        request: GetOrganizationRequest,
3765    ) -> ::core::result::Result<Organization, ::origincloud_core::Error> {
3766        let p0 = ::origincloud_core::path_value(
3767            "name",
3768            &request.name,
3769            "organizations/*",
3770        )?;
3771        let query = ::origincloud_core::query(&request, &["name"])?;
3772        let call = ::origincloud_core::Request::new(
3773                ::origincloud_core::Method::GET,
3774                format!("/v1beta1/{p0}"),
3775            )
3776            .with_query(query)
3777            .idempotent();
3778        self.service.call(call).await
3779    }
3780    /// Lists the organizations the caller holds a role in, oldest first.
3781    pub async fn list_organizations(
3782        &self,
3783        request: ListOrganizationsRequest,
3784    ) -> ::core::result::Result<ListOrganizationsResponse, ::origincloud_core::Error> {
3785        let query = ::origincloud_core::query(&request, &[])?;
3786        let call = ::origincloud_core::Request::new(
3787                ::origincloud_core::Method::GET,
3788                ::std::string::String::from("/v1beta1/organizations"),
3789            )
3790            .with_query(query)
3791            .idempotent();
3792        self.service.call(call).await
3793    }
3794    /// Returns everything [`list_organizations`](Self::list_organizations) lists from `request`'s page on, fetching the next page as the stream reaches it. A page that fails ends the stream with its error.
3795    pub fn all_organizations(
3796        &self,
3797        request: ListOrganizationsRequest,
3798    ) -> ::origincloud_core::Pages<Organization> {
3799        let client = self.clone();
3800        ::origincloud_core::Pages::new(
3801            request,
3802            move |request: ListOrganizationsRequest| {
3803                let client = client.clone();
3804                async move {
3805                    let page = client.list_organizations(request).await?;
3806                    Ok((page.organizations, page.next_page_token))
3807                }
3808            },
3809            |request: &mut ListOrganizationsRequest, token: ::std::string::String| {
3810                request.page_token = token;
3811            },
3812        )
3813    }
3814    /// Creates an organization. Any signed-in user can create one, and becomes
3815    /// its owner and the administrator of its default billing account, which
3816    /// is created with it without billing details: the organization can't be
3817    /// invoiced until they are set with the billing API
3818    /// (`billing.origincloudapis.eu`). A new organization is either `organization::State::Active`
3819    /// at once or `organization::State::PendingReview`, depending on the platform's free capacity.
3820    pub async fn create_organization(
3821        &self,
3822        mut request: CreateOrganizationRequest,
3823    ) -> ::core::result::Result<Organization, ::origincloud_core::Error> {
3824        if request.request_id.is_empty() {
3825            request.request_id = ::origincloud_core::new_request_id();
3826        }
3827        let body = ::origincloud_core::json_body(
3828            request.organization.as_ref().unwrap_or(&::core::default::Default::default()),
3829        )?;
3830        let query = ::origincloud_core::query(&request, &["organization"])?;
3831        let call = ::origincloud_core::Request::new(
3832                ::origincloud_core::Method::POST,
3833                ::std::string::String::from("/v1beta1/organizations"),
3834            )
3835            .with_body(body)
3836            .with_query(query)
3837            .idempotent();
3838        self.service.call(call).await
3839    }
3840    /// Renames an organization.
3841    pub async fn update_organization(
3842        &self,
3843        request: UpdateOrganizationRequest,
3844    ) -> ::core::result::Result<Organization, ::origincloud_core::Error> {
3845        let p0 = ::origincloud_core::path_value(
3846            "organization.name",
3847            request.organization.as_ref().map_or("", |m| m.name.as_str()),
3848            "organizations/*",
3849        )?;
3850        let body = ::origincloud_core::json_body(
3851            request.organization.as_ref().unwrap_or(&::core::default::Default::default()),
3852        )?;
3853        let query = ::origincloud_core::query(
3854            &request,
3855            &["organization.name", "organization"],
3856        )?;
3857        let call = ::origincloud_core::Request::new(
3858                ::origincloud_core::Method::PATCH,
3859                format!("/v1beta1/{p0}"),
3860            )
3861            .with_body(body)
3862            .with_query(query);
3863        self.service.call(call).await
3864    }
3865    /// Deletes an organization. Refused as a `CONFLICT` while it
3866    /// still has a project, or a service account that isn't deleted, which
3867    /// the error names: delete them first. Nothing is deleted then. Its quota,
3868    /// its pending invitations and every role granted in it go with it. Its
3869    /// billing accounts stay, with their spend limits, so the last period can
3870    /// still be invoiced.
3871    pub async fn delete_organization(
3872        &self,
3873        request: DeleteOrganizationRequest,
3874    ) -> ::core::result::Result<
3875        ::origincloud_core::protobuf::Empty,
3876        ::origincloud_core::Error,
3877    > {
3878        let p0 = ::origincloud_core::path_value(
3879            "name",
3880            &request.name,
3881            "organizations/*",
3882        )?;
3883        let query = ::origincloud_core::query(&request, &["name"])?;
3884        let call = ::origincloud_core::Request::new(
3885                ::origincloud_core::Method::DELETE,
3886                format!("/v1beta1/{p0}"),
3887            )
3888            .with_query(query);
3889        self.service.call(call).await
3890    }
3891    /// Returns an organization's quota: the most of each kind of resource its
3892    /// projects may hold together, and how much of it they use. The limits are
3893    /// set by the platform; ask support to raise one.
3894    pub async fn get_organization_quota(
3895        &self,
3896        request: GetOrganizationQuotaRequest,
3897    ) -> ::core::result::Result<OrganizationQuota, ::origincloud_core::Error> {
3898        let p0 = ::origincloud_core::path_value(
3899            "name",
3900            &request.name,
3901            "organizations/*/quota",
3902        )?;
3903        let query = ::origincloud_core::query(&request, &["name"])?;
3904        let call = ::origincloud_core::Request::new(
3905                ::origincloud_core::Method::GET,
3906                format!("/v1beta1/{p0}"),
3907            )
3908            .with_query(query)
3909            .idempotent();
3910        self.service.call(call).await
3911    }
3912}
3913/// Calls `ProjectService`.
3914///
3915/// Projects: the namespace every resource is created in. A project belongs to
3916/// one organization, and every resource name of the other APIs starts with
3917/// it, `projects/{project}/...`.
3918#[derive(Clone, Debug)]
3919pub struct ProjectClient {
3920    service: ::origincloud_core::Service,
3921}
3922impl ProjectClient {
3923    /// Returns a client of `ProjectService` that sends its calls through `client`.
3924    pub fn new(client: &::origincloud_core::Client) -> Self {
3925        Self {
3926            service: client.service("resourcemanager", false),
3927        }
3928    }
3929    /// The endpoint the client sends its calls to, which also serves the operations its methods answer with.
3930    pub fn service(&self) -> &::origincloud_core::Service {
3931        &self.service
3932    }
3933    /// Returns a project.
3934    pub async fn get_project(
3935        &self,
3936        request: GetProjectRequest,
3937    ) -> ::core::result::Result<Project, ::origincloud_core::Error> {
3938        let p0 = ::origincloud_core::path_value("name", &request.name, "projects/*")?;
3939        let query = ::origincloud_core::query(&request, &["name"])?;
3940        let call = ::origincloud_core::Request::new(
3941                ::origincloud_core::Method::GET,
3942                format!("/v1beta1/{p0}"),
3943            )
3944            .with_query(query)
3945            .idempotent();
3946        self.service.call(call).await
3947    }
3948    /// Lists an organization's projects, oldest first.
3949    pub async fn list_projects(
3950        &self,
3951        request: ListProjectsRequest,
3952    ) -> ::core::result::Result<ListProjectsResponse, ::origincloud_core::Error> {
3953        let query = ::origincloud_core::query(&request, &[])?;
3954        let call = ::origincloud_core::Request::new(
3955                ::origincloud_core::Method::GET,
3956                ::std::string::String::from("/v1beta1/projects"),
3957            )
3958            .with_query(query)
3959            .idempotent();
3960        self.service.call(call).await
3961    }
3962    /// Returns everything [`list_projects`](Self::list_projects) lists from `request`'s page on, fetching the next page as the stream reaches it. A page that fails ends the stream with its error.
3963    pub fn all_projects(
3964        &self,
3965        request: ListProjectsRequest,
3966    ) -> ::origincloud_core::Pages<Project> {
3967        let client = self.clone();
3968        ::origincloud_core::Pages::new(
3969            request,
3970            move |request: ListProjectsRequest| {
3971                let client = client.clone();
3972                async move {
3973                    let page = client.list_projects(request).await?;
3974                    Ok((page.projects, page.next_page_token))
3975                }
3976            },
3977            |request: &mut ListProjectsRequest, token: ::std::string::String| {
3978                request.page_token = token;
3979            },
3980        )
3981    }
3982    /// Creates a project in an `organization::State::Active` organization, under the id the caller
3983    /// chooses. The caller becomes the project's owner, and the project is
3984    /// billed to the organization's default billing account. An id in use, or
3985    /// used by a project that was deleted, is refused as a `CONFLICT`.
3986    pub async fn create_project(
3987        &self,
3988        mut request: CreateProjectRequest,
3989    ) -> ::core::result::Result<Project, ::origincloud_core::Error> {
3990        if request.request_id.is_empty() {
3991            request.request_id = ::origincloud_core::new_request_id();
3992        }
3993        let body = ::origincloud_core::json_body(
3994            request.project.as_ref().unwrap_or(&::core::default::Default::default()),
3995        )?;
3996        let query = ::origincloud_core::query(&request, &["project"])?;
3997        let call = ::origincloud_core::Request::new(
3998                ::origincloud_core::Method::POST,
3999                ::std::string::String::from("/v1beta1/projects"),
4000            )
4001            .with_body(body)
4002            .with_query(query)
4003            .idempotent();
4004        self.service.call(call).await
4005    }
4006    /// Renames a project.
4007    pub async fn update_project(
4008        &self,
4009        request: UpdateProjectRequest,
4010    ) -> ::core::result::Result<Project, ::origincloud_core::Error> {
4011        let p0 = ::origincloud_core::path_value(
4012            "project.name",
4013            request.project.as_ref().map_or("", |m| m.name.as_str()),
4014            "projects/*",
4015        )?;
4016        let body = ::origincloud_core::json_body(
4017            request.project.as_ref().unwrap_or(&::core::default::Default::default()),
4018        )?;
4019        let query = ::origincloud_core::query(&request, &["project.name", "project"])?;
4020        let call = ::origincloud_core::Request::new(
4021                ::origincloud_core::Method::PATCH,
4022                format!("/v1beta1/{p0}"),
4023            )
4024            .with_body(body)
4025            .with_query(query);
4026        self.service.call(call).await
4027    }
4028    /// Deletes a project. Refused as a `CONFLICT` while the project
4029    /// still has a resource you can delete yourself: an instance that isn't terminated, an image, a key
4030    /// pair, a volume or snapshot that isn't deleted, a NAT gateway, a floating
4031    /// IP, a VPC, or a DNS policy other than its default one. The refusal names
4032    /// every kind left, in the order to delete them. Nothing you can delete
4033    /// yourself is deleted on your behalf. The project's default DNS policy,
4034    /// its quota and every role granted on it go with it; roles granted on the
4035    /// organization stay.
4036    pub async fn delete_project(
4037        &self,
4038        request: DeleteProjectRequest,
4039    ) -> ::core::result::Result<
4040        ::origincloud_core::protobuf::Empty,
4041        ::origincloud_core::Error,
4042    > {
4043        let p0 = ::origincloud_core::path_value("name", &request.name, "projects/*")?;
4044        let query = ::origincloud_core::query(&request, &["name"])?;
4045        let call = ::origincloud_core::Request::new(
4046                ::origincloud_core::Method::DELETE,
4047                format!("/v1beta1/{p0}"),
4048            )
4049            .with_query(query);
4050        self.service.call(call).await
4051    }
4052    /// Returns a project's quota: the budget of each kind of resource the
4053    /// project may hold, if one is set, and how much of it the project uses.
4054    pub async fn get_project_quota(
4055        &self,
4056        request: GetProjectQuotaRequest,
4057    ) -> ::core::result::Result<ProjectQuota, ::origincloud_core::Error> {
4058        let p0 = ::origincloud_core::path_value(
4059            "name",
4060            &request.name,
4061            "projects/*/quota",
4062        )?;
4063        let query = ::origincloud_core::query(&request, &["name"])?;
4064        let call = ::origincloud_core::Request::new(
4065                ::origincloud_core::Method::GET,
4066                format!("/v1beta1/{p0}"),
4067            )
4068            .with_query(query)
4069            .idempotent();
4070        self.service.call(call).await
4071    }
4072    /// Sets or removes a project's budgets. A budget named in `update_mask`
4073    /// is set to the value given, or removed when the value is left out.
4074    pub async fn update_project_quota(
4075        &self,
4076        request: UpdateProjectQuotaRequest,
4077    ) -> ::core::result::Result<ProjectQuota, ::origincloud_core::Error> {
4078        let p0 = ::origincloud_core::path_value(
4079            "projectQuota.name",
4080            request.project_quota.as_ref().map_or("", |m| m.name.as_str()),
4081            "projects/*/quota",
4082        )?;
4083        let body = ::origincloud_core::json_body(
4084            request
4085                .project_quota
4086                .as_ref()
4087                .unwrap_or(&::core::default::Default::default()),
4088        )?;
4089        let query = ::origincloud_core::query(
4090            &request,
4091            &["projectQuota.name", "projectQuota"],
4092        )?;
4093        let call = ::origincloud_core::Request::new(
4094                ::origincloud_core::Method::PATCH,
4095                format!("/v1beta1/{p0}"),
4096            )
4097            .with_body(body)
4098            .with_query(query);
4099        self.service.call(call).await
4100    }
4101}