1#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11pub struct BillingAccount {
12 #[prost(string, tag = "1")]
14 pub name: ::prost::alloc::string::String,
15 #[prost(string, tag = "2")]
18 pub urn: ::prost::alloc::string::String,
19 #[prost(string, tag = "3")]
23 pub display_name: ::prost::alloc::string::String,
24 #[prost(bool, tag = "4")]
28 pub default_account: bool,
29 #[prost(message, optional, tag = "5")]
33 pub billing_address: ::core::option::Option<BillingAddress>,
34 #[prost(string, tag = "6")]
37 pub invoice_email: ::prost::alloc::string::String,
38 #[prost(string, tag = "7")]
41 pub vat_id: ::prost::alloc::string::String,
42 #[prost(string, tag = "8")]
45 pub contact_person: ::prost::alloc::string::String,
46 #[prost(message, optional, tag = "9")]
48 pub payment_method: ::core::option::Option<PaymentMethod>,
49 #[prost(message, optional, tag = "10")]
51 pub create_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
52 #[prost(string, tag = "11")]
55 pub creator: ::prost::alloc::string::String,
56}
57#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
59pub struct BillingAddress {
60 #[prost(string, tag = "1")]
62 pub street: ::prost::alloc::string::String,
63 #[prost(string, tag = "2")]
65 pub city: ::prost::alloc::string::String,
66 #[prost(string, tag = "3")]
68 pub postal_code: ::prost::alloc::string::String,
69 #[prost(string, tag = "4")]
72 pub region_code: ::prost::alloc::string::String,
73}
74#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
78pub struct PaymentMethod {
79 #[prost(enumeration = "payment_method::State", tag = "1")]
81 pub state: i32,
82 #[prost(string, tag = "2")]
85 pub card_brand: ::prost::alloc::string::String,
86 #[prost(string, tag = "3")]
89 pub card_last4: ::prost::alloc::string::String,
90}
91pub mod payment_method {
93 #[derive(
95 Clone,
96 Copy,
97 Debug,
98 PartialEq,
99 Eq,
100 Hash,
101 PartialOrd,
102 Ord,
103 ::prost::Enumeration
104 )]
105 #[repr(i32)]
106 pub enum State {
107 Unspecified = 0,
109 Missing = 1,
113 Verified = 2,
115 NotRequired = 3,
118 }
119 impl State {
120 pub fn as_str_name(&self) -> &'static str {
125 match self {
126 Self::Unspecified => "STATE_UNSPECIFIED",
127 Self::Missing => "MISSING",
128 Self::Verified => "VERIFIED",
129 Self::NotRequired => "NOT_REQUIRED",
130 }
131 }
132 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
134 match value {
135 "STATE_UNSPECIFIED" => Some(Self::Unspecified),
136 "MISSING" => Some(Self::Missing),
137 "VERIFIED" => Some(Self::Verified),
138 "NOT_REQUIRED" => Some(Self::NotRequired),
139 _ => None,
140 }
141 }
142 }
143}
144#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
146pub struct ProjectBillingInfo {
147 #[prost(string, tag = "1")]
149 pub name: ::prost::alloc::string::String,
150 #[prost(string, tag = "3")]
153 pub billing_account: ::prost::alloc::string::String,
154}
155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
157pub struct BillingCountry {
158 #[prost(string, tag = "1")]
160 pub name: ::prost::alloc::string::String,
161 #[prost(string, tag = "2")]
164 pub region_code: ::prost::alloc::string::String,
165 #[prost(string, tag = "3")]
167 pub display_name: ::prost::alloc::string::String,
168 #[prost(bool, tag = "4")]
172 pub vat_id_required: bool,
173}
174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
176pub struct GetBillingAccountRequest {
177 #[prost(string, tag = "1")]
179 pub name: ::prost::alloc::string::String,
180}
181#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
183pub struct ListBillingAccountsRequest {
184 #[prost(string, tag = "1")]
187 pub parent: ::prost::alloc::string::String,
188 #[prost(int32, tag = "2")]
191 pub page_size: i32,
192 #[prost(string, tag = "3")]
194 pub page_token: ::prost::alloc::string::String,
195}
196#[derive(Clone, PartialEq, ::prost::Message)]
198pub struct ListBillingAccountsResponse {
199 #[prost(message, repeated, tag = "1")]
201 pub billing_accounts: ::prost::alloc::vec::Vec<BillingAccount>,
202 #[prost(string, tag = "2")]
204 pub next_page_token: ::prost::alloc::string::String,
205}
206#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
208pub struct CreateBillingAccountRequest {
209 #[prost(string, tag = "1")]
212 pub parent: ::prost::alloc::string::String,
213 #[prost(message, optional, tag = "2")]
215 pub billing_account: ::core::option::Option<BillingAccount>,
216 #[prost(string, tag = "3")]
219 pub request_id: ::prost::alloc::string::String,
220}
221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
223pub struct UpdateBillingAccountRequest {
224 #[prost(message, optional, tag = "1")]
226 pub billing_account: ::core::option::Option<BillingAccount>,
227 #[prost(message, optional, tag = "2")]
231 pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
232}
233#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
235pub struct DeleteBillingAccountRequest {
236 #[prost(string, tag = "1")]
238 pub name: ::prost::alloc::string::String,
239}
240#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
242pub struct StartPaymentMethodSetupRequest {
243 #[prost(string, tag = "1")]
245 pub name: ::prost::alloc::string::String,
246}
247#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
249pub struct StartPaymentMethodSetupResponse {
250 #[prost(string, tag = "1")]
253 pub redirect_uri: ::prost::alloc::string::String,
254}
255#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
257pub struct ConfirmPaymentMethodSetupRequest {
258 #[prost(string, tag = "1")]
260 pub name: ::prost::alloc::string::String,
261}
262#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
264pub struct GetProjectBillingInfoRequest {
265 #[prost(string, tag = "1")]
267 pub name: ::prost::alloc::string::String,
268}
269#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
271pub struct UpdateProjectBillingInfoRequest {
272 #[prost(message, optional, tag = "1")]
274 pub project_billing_info: ::core::option::Option<ProjectBillingInfo>,
275 #[prost(message, optional, tag = "2")]
277 pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
278}
279#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
281pub struct ListProjectBillingInfoRequest {
282 #[prost(string, tag = "1")]
284 pub name: ::prost::alloc::string::String,
285 #[prost(int32, tag = "2")]
288 pub page_size: i32,
289 #[prost(string, tag = "3")]
291 pub page_token: ::prost::alloc::string::String,
292}
293#[derive(Clone, PartialEq, ::prost::Message)]
295pub struct ListProjectBillingInfoResponse {
296 #[prost(message, repeated, tag = "1")]
298 pub project_billing_infos: ::prost::alloc::vec::Vec<ProjectBillingInfo>,
299 #[prost(string, tag = "2")]
301 pub next_page_token: ::prost::alloc::string::String,
302}
303#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
305pub struct GetBillingCountryRequest {
306 #[prost(string, tag = "1")]
309 pub name: ::prost::alloc::string::String,
310}
311#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
313pub struct ListBillingCountriesRequest {
314 #[prost(int32, tag = "1")]
317 pub page_size: i32,
318 #[prost(string, tag = "2")]
320 pub page_token: ::prost::alloc::string::String,
321}
322#[derive(Clone, PartialEq, ::prost::Message)]
324pub struct ListBillingCountriesResponse {
325 #[prost(message, repeated, tag = "1")]
327 pub billing_countries: ::prost::alloc::vec::Vec<BillingCountry>,
328 #[prost(string, tag = "2")]
330 pub next_page_token: ::prost::alloc::string::String,
331}
332#[derive(Clone, PartialEq, ::prost::Message)]
335pub struct CostReport {
336 #[prost(string, tag = "1")]
338 pub total: ::prost::alloc::string::String,
339 #[prost(message, repeated, tag = "2")]
342 pub services: ::prost::alloc::vec::Vec<ServiceCost>,
343}
344#[derive(Clone, PartialEq, ::prost::Message)]
346pub struct ServiceCost {
347 #[prost(string, tag = "1")]
350 pub service: ::prost::alloc::string::String,
351 #[prost(string, tag = "2")]
353 pub total: ::prost::alloc::string::String,
354 #[prost(message, repeated, tag = "3")]
357 pub products: ::prost::alloc::vec::Vec<ProductCost>,
358}
359#[derive(Clone, PartialEq, ::prost::Message)]
361pub struct ProductCost {
362 #[prost(string, tag = "1")]
364 pub product_key: ::prost::alloc::string::String,
365 #[prost(string, tag = "2")]
367 pub total: ::prost::alloc::string::String,
368 #[prost(message, repeated, tag = "3")]
370 pub buckets: ::prost::alloc::vec::Vec<CostBucket>,
371}
372#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
374pub struct CostBucket {
375 #[prost(message, optional, tag = "1")]
377 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
378 #[prost(string, tag = "2")]
380 pub amount: ::prost::alloc::string::String,
381}
382#[derive(Clone, PartialEq, ::prost::Message)]
385pub struct OrganizationCostReport {
386 #[prost(string, tag = "1")]
388 pub total: ::prost::alloc::string::String,
389 #[prost(message, repeated, tag = "2")]
391 pub services: ::prost::alloc::vec::Vec<ServiceCost>,
392 #[prost(message, repeated, tag = "3")]
395 pub projects: ::prost::alloc::vec::Vec<ProjectCost>,
396}
397#[derive(Clone, PartialEq, ::prost::Message)]
399pub struct ProjectCost {
400 #[prost(string, tag = "1")]
402 pub project: ::prost::alloc::string::String,
403 #[prost(string, tag = "2")]
405 pub total: ::prost::alloc::string::String,
406 #[prost(message, repeated, tag = "3")]
408 pub buckets: ::prost::alloc::vec::Vec<CostBucket>,
409}
410#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
413pub struct UsageRecord {
414 #[prost(string, tag = "1")]
416 pub resource_kind: ::prost::alloc::string::String,
417 #[prost(string, tag = "2")]
419 pub resource_id: ::prost::alloc::string::String,
420 #[prost(string, tag = "3")]
422 pub metric: ::prost::alloc::string::String,
423 #[prost(string, tag = "4")]
426 pub product_key: ::prost::alloc::string::String,
427 #[prost(string, tag = "5")]
429 pub quantity: ::prost::alloc::string::String,
430 #[prost(message, optional, tag = "6")]
432 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
433 #[prost(message, optional, tag = "7")]
435 pub end_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
436 #[prost(string, tag = "8")]
439 pub billing_account: ::prost::alloc::string::String,
440}
441#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
443pub struct QueryProjectCostRequest {
444 #[prost(string, tag = "1")]
446 pub project: ::prost::alloc::string::String,
447 #[prost(message, optional, tag = "2")]
449 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
450 #[prost(message, optional, tag = "3")]
452 pub end_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
453 #[prost(enumeration = "Granularity", tag = "4")]
455 pub granularity: i32,
456}
457#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
459pub struct QueryOrganizationCostRequest {
460 #[prost(string, tag = "1")]
462 pub organization: ::prost::alloc::string::String,
463 #[prost(message, optional, tag = "2")]
465 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
466 #[prost(message, optional, tag = "3")]
468 pub end_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
469 #[prost(enumeration = "Granularity", tag = "4")]
471 pub granularity: i32,
472}
473#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
475pub struct QueryBillingAccountCostRequest {
476 #[prost(string, tag = "1")]
478 pub billing_account: ::prost::alloc::string::String,
479 #[prost(message, optional, tag = "2")]
481 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
482 #[prost(message, optional, tag = "3")]
484 pub end_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
485 #[prost(enumeration = "Granularity", tag = "4")]
487 pub granularity: i32,
488}
489#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
491pub struct QueryProjectUsageRequest {
492 #[prost(string, tag = "1")]
494 pub project: ::prost::alloc::string::String,
495 #[prost(message, optional, tag = "2")]
497 pub start_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
498 #[prost(message, optional, tag = "3")]
501 pub end_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
502 #[prost(int32, tag = "4")]
505 pub page_size: i32,
506 #[prost(string, tag = "5")]
508 pub page_token: ::prost::alloc::string::String,
509}
510#[derive(Clone, PartialEq, ::prost::Message)]
512pub struct QueryProjectUsageResponse {
513 #[prost(message, repeated, tag = "1")]
515 pub usage_records: ::prost::alloc::vec::Vec<UsageRecord>,
516 #[prost(string, tag = "2")]
518 pub next_page_token: ::prost::alloc::string::String,
519}
520#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
522#[repr(i32)]
523pub enum Granularity {
524 Unspecified = 0,
526 Hourly = 1,
528 Daily = 2,
530}
531impl Granularity {
532 pub fn as_str_name(&self) -> &'static str {
537 match self {
538 Self::Unspecified => "GRANULARITY_UNSPECIFIED",
539 Self::Hourly => "HOURLY",
540 Self::Daily => "DAILY",
541 }
542 }
543 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
545 match value {
546 "GRANULARITY_UNSPECIFIED" => Some(Self::Unspecified),
547 "HOURLY" => Some(Self::Hourly),
548 "DAILY" => Some(Self::Daily),
549 _ => None,
550 }
551 }
552}
553#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
556pub struct LegalDocument {
557 #[prost(string, tag = "1")]
562 pub name: ::prost::alloc::string::String,
563 #[prost(string, tag = "2")]
566 pub display_name: ::prost::alloc::string::String,
567 #[prost(bool, tag = "3")]
571 pub acceptance_required: bool,
572 #[prost(string, tag = "4")]
575 pub current_version: ::prost::alloc::string::String,
576 #[prost(string, tag = "5")]
579 pub latest_version: ::prost::alloc::string::String,
580}
581#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
584pub struct LegalDocumentVersion {
585 #[prost(string, tag = "1")]
590 pub name: ::prost::alloc::string::String,
591 #[prost(string, tag = "2")]
593 pub display_name: ::prost::alloc::string::String,
594 #[prost(message, optional, tag = "3")]
597 pub effective_date: ::core::option::Option<::origincloud_core::types::Date>,
598 #[prost(enumeration = "legal_document_version::ChangeClass", tag = "4")]
600 pub change_class: i32,
601 #[prost(string, tag = "5")]
604 pub change_summary: ::prost::alloc::string::String,
605 #[prost(string, tag = "6")]
608 pub sha256: ::prost::alloc::string::String,
609 #[prost(string, tag = "7")]
612 pub markdown: ::prost::alloc::string::String,
613 #[prost(string, tag = "8")]
617 pub html: ::prost::alloc::string::String,
618 #[prost(string, tag = "9")]
621 pub uri: ::prost::alloc::string::String,
622 #[prost(string, tag = "10")]
624 pub pdf_uri: ::prost::alloc::string::String,
625}
626pub mod legal_document_version {
628 #[derive(
630 Clone,
631 Copy,
632 Debug,
633 PartialEq,
634 Eq,
635 Hash,
636 PartialOrd,
637 Ord,
638 ::prost::Enumeration
639 )]
640 #[repr(i32)]
641 pub enum ChangeClass {
642 Unspecified = 0,
644 Material = 1,
648 Notice = 2,
651 Editorial = 3,
653 }
654 impl ChangeClass {
655 pub fn as_str_name(&self) -> &'static str {
660 match self {
661 Self::Unspecified => "CHANGE_CLASS_UNSPECIFIED",
662 Self::Material => "MATERIAL",
663 Self::Notice => "NOTICE",
664 Self::Editorial => "EDITORIAL",
665 }
666 }
667 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
669 match value {
670 "CHANGE_CLASS_UNSPECIFIED" => Some(Self::Unspecified),
671 "MATERIAL" => Some(Self::Material),
672 "NOTICE" => Some(Self::Notice),
673 "EDITORIAL" => Some(Self::Editorial),
674 _ => None,
675 }
676 }
677 }
678}
679#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
681pub struct ListLegalDocumentsRequest {
682 #[prost(int32, tag = "1")]
685 pub page_size: i32,
686 #[prost(string, tag = "2")]
688 pub page_token: ::prost::alloc::string::String,
689}
690#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct ListLegalDocumentsResponse {
693 #[prost(message, repeated, tag = "1")]
695 pub legal_documents: ::prost::alloc::vec::Vec<LegalDocument>,
696 #[prost(string, tag = "2")]
698 pub next_page_token: ::prost::alloc::string::String,
699}
700#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
702pub struct GetLegalDocumentRequest {
703 #[prost(string, tag = "1")]
705 pub name: ::prost::alloc::string::String,
706}
707#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
709pub struct ListLegalDocumentVersionsRequest {
710 #[prost(string, tag = "1")]
712 pub parent: ::prost::alloc::string::String,
713 #[prost(int32, tag = "2")]
716 pub page_size: i32,
717 #[prost(string, tag = "3")]
719 pub page_token: ::prost::alloc::string::String,
720}
721#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct ListLegalDocumentVersionsResponse {
724 #[prost(message, repeated, tag = "1")]
726 pub legal_document_versions: ::prost::alloc::vec::Vec<LegalDocumentVersion>,
727 #[prost(string, tag = "2")]
729 pub next_page_token: ::prost::alloc::string::String,
730}
731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
733pub struct GetLegalDocumentVersionRequest {
734 #[prost(string, tag = "1")]
737 pub name: ::prost::alloc::string::String,
738}
739#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
741pub struct DownloadLegalDocumentVersionRequest {
742 #[prost(string, tag = "1")]
745 pub name: ::prost::alloc::string::String,
746}
747#[derive(Clone, PartialEq, ::prost::Message)]
750pub struct PriceList {
751 #[prost(string, tag = "1")]
753 pub currency: ::prost::alloc::string::String,
754 #[prost(bool, tag = "2")]
756 pub amounts_exclude_vat: bool,
757 #[prost(message, optional, tag = "3")]
760 pub last_changed: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
761 #[prost(message, repeated, tag = "4")]
768 pub families: ::prost::alloc::vec::Vec<PriceFamily>,
769}
770#[derive(Clone, PartialEq, ::prost::Message)]
772pub struct PriceFamily {
773 #[prost(string, tag = "1")]
775 pub family: ::prost::alloc::string::String,
776 #[prost(message, repeated, tag = "2")]
779 pub prices: ::prost::alloc::vec::Vec<Price>,
780}
781#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct Price {
784 #[prost(string, tag = "1")]
787 pub product_key: ::prost::alloc::string::String,
788 #[prost(btree_map = "string, string", tag = "2")]
791 pub dimensions: ::prost::alloc::collections::BTreeMap<
792 ::prost::alloc::string::String,
793 ::prost::alloc::string::String,
794 >,
795 #[prost(string, tag = "3")]
798 pub unit_type: ::prost::alloc::string::String,
799 #[prost(uint32, tag = "4")]
802 pub unit_count: u32,
803 #[prost(string, tag = "5")]
805 pub amount: ::prost::alloc::string::String,
806 #[prost(message, optional, tag = "6")]
808 pub valid_from: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
809 #[prost(message, optional, tag = "7")]
811 pub valid_until: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
812}
813#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
815pub struct GetPriceListRequest {}
816#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
820pub struct SpendLimit {
821 #[prost(string, tag = "1")]
824 pub name: ::prost::alloc::string::String,
825 #[prost(string, optional, tag = "2")]
828 pub limit: ::core::option::Option<::prost::alloc::string::String>,
829 #[prost(int32, repeated, packed = "false", tag = "3")]
833 pub alert_thresholds_percent: ::prost::alloc::vec::Vec<i32>,
834 #[prost(string, repeated, tag = "4")]
837 pub notification_emails: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
838 #[prost(message, optional, tag = "5")]
840 pub update_time: ::core::option::Option<::origincloud_core::protobuf::Timestamp>,
841}
842#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
844pub struct GetSpendLimitRequest {
845 #[prost(string, tag = "1")]
847 pub name: ::prost::alloc::string::String,
848}
849#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
851pub struct UpdateSpendLimitRequest {
852 #[prost(message, optional, tag = "1")]
854 pub spend_limit: ::core::option::Option<SpendLimit>,
855 #[prost(message, optional, tag = "2")]
858 pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
859}
860impl serde::Serialize for BillingAccount {
861 #[allow(deprecated)]
862 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
863 where
864 S: serde::Serializer,
865 {
866 use serde::ser::SerializeStruct;
867 let mut len = 0;
868 if !self.name.is_empty() {
869 len += 1;
870 }
871 if !self.urn.is_empty() {
872 len += 1;
873 }
874 if !self.display_name.is_empty() {
875 len += 1;
876 }
877 if self.default_account {
878 len += 1;
879 }
880 if self.billing_address.is_some() {
881 len += 1;
882 }
883 if !self.invoice_email.is_empty() {
884 len += 1;
885 }
886 if !self.vat_id.is_empty() {
887 len += 1;
888 }
889 if !self.contact_person.is_empty() {
890 len += 1;
891 }
892 if self.payment_method.is_some() {
893 len += 1;
894 }
895 if self.create_time.is_some() {
896 len += 1;
897 }
898 if !self.creator.is_empty() {
899 len += 1;
900 }
901 let mut struct_ser = serializer
902 .serialize_struct("origincloud.billing.v1beta1.BillingAccount", len)?;
903 if !self.name.is_empty() {
904 struct_ser.serialize_field("name", &self.name)?;
905 }
906 if !self.urn.is_empty() {
907 struct_ser.serialize_field("urn", &self.urn)?;
908 }
909 if !self.display_name.is_empty() {
910 struct_ser.serialize_field("displayName", &self.display_name)?;
911 }
912 if self.default_account {
913 struct_ser.serialize_field("defaultAccount", &self.default_account)?;
914 }
915 if let Some(v) = self.billing_address.as_ref() {
916 struct_ser.serialize_field("billingAddress", v)?;
917 }
918 if !self.invoice_email.is_empty() {
919 struct_ser.serialize_field("invoiceEmail", &self.invoice_email)?;
920 }
921 if !self.vat_id.is_empty() {
922 struct_ser.serialize_field("vatId", &self.vat_id)?;
923 }
924 if !self.contact_person.is_empty() {
925 struct_ser.serialize_field("contactPerson", &self.contact_person)?;
926 }
927 if let Some(v) = self.payment_method.as_ref() {
928 struct_ser.serialize_field("paymentMethod", v)?;
929 }
930 if let Some(v) = self.create_time.as_ref() {
931 struct_ser.serialize_field("createTime", v)?;
932 }
933 if !self.creator.is_empty() {
934 struct_ser.serialize_field("creator", &self.creator)?;
935 }
936 struct_ser.end()
937 }
938}
939impl<'de> serde::Deserialize<'de> for BillingAccount {
940 #[allow(deprecated)]
941 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
942 where
943 D: serde::Deserializer<'de>,
944 {
945 const FIELDS: &[&str] = &[
946 "name",
947 "urn",
948 "display_name",
949 "displayName",
950 "default_account",
951 "defaultAccount",
952 "billing_address",
953 "billingAddress",
954 "invoice_email",
955 "invoiceEmail",
956 "vat_id",
957 "vatId",
958 "contact_person",
959 "contactPerson",
960 "payment_method",
961 "paymentMethod",
962 "create_time",
963 "createTime",
964 "creator",
965 ];
966 #[allow(clippy::enum_variant_names)]
967 enum GeneratedField {
968 Name,
969 Urn,
970 DisplayName,
971 DefaultAccount,
972 BillingAddress,
973 InvoiceEmail,
974 VatId,
975 ContactPerson,
976 PaymentMethod,
977 CreateTime,
978 Creator,
979 __SkipField__,
980 }
981 impl<'de> serde::Deserialize<'de> for GeneratedField {
982 fn deserialize<D>(
983 deserializer: D,
984 ) -> std::result::Result<GeneratedField, D::Error>
985 where
986 D: serde::Deserializer<'de>,
987 {
988 struct GeneratedVisitor;
989 impl serde::de::Visitor<'_> for GeneratedVisitor {
990 type Value = GeneratedField;
991 fn expecting(
992 &self,
993 formatter: &mut std::fmt::Formatter<'_>,
994 ) -> std::fmt::Result {
995 write!(formatter, "expected one of: {:?}", & FIELDS)
996 }
997 #[allow(unused_variables)]
998 fn visit_str<E>(
999 self,
1000 value: &str,
1001 ) -> std::result::Result<GeneratedField, E>
1002 where
1003 E: serde::de::Error,
1004 {
1005 match value {
1006 "name" => Ok(GeneratedField::Name),
1007 "urn" => Ok(GeneratedField::Urn),
1008 "displayName" | "display_name" => {
1009 Ok(GeneratedField::DisplayName)
1010 }
1011 "defaultAccount" | "default_account" => {
1012 Ok(GeneratedField::DefaultAccount)
1013 }
1014 "billingAddress" | "billing_address" => {
1015 Ok(GeneratedField::BillingAddress)
1016 }
1017 "invoiceEmail" | "invoice_email" => {
1018 Ok(GeneratedField::InvoiceEmail)
1019 }
1020 "vatId" | "vat_id" => Ok(GeneratedField::VatId),
1021 "contactPerson" | "contact_person" => {
1022 Ok(GeneratedField::ContactPerson)
1023 }
1024 "paymentMethod" | "payment_method" => {
1025 Ok(GeneratedField::PaymentMethod)
1026 }
1027 "createTime" | "create_time" => {
1028 Ok(GeneratedField::CreateTime)
1029 }
1030 "creator" => Ok(GeneratedField::Creator),
1031 _ => Ok(GeneratedField::__SkipField__),
1032 }
1033 }
1034 }
1035 deserializer.deserialize_identifier(GeneratedVisitor)
1036 }
1037 }
1038 struct GeneratedVisitor;
1039 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1040 type Value = BillingAccount;
1041 fn expecting(
1042 &self,
1043 formatter: &mut std::fmt::Formatter<'_>,
1044 ) -> std::fmt::Result {
1045 formatter.write_str("struct origincloud.billing.v1beta1.BillingAccount")
1046 }
1047 fn visit_map<V>(
1048 self,
1049 mut map_: V,
1050 ) -> std::result::Result<BillingAccount, V::Error>
1051 where
1052 V: serde::de::MapAccess<'de>,
1053 {
1054 let mut name__ = None;
1055 let mut urn__ = None;
1056 let mut display_name__ = None;
1057 let mut default_account__ = None;
1058 let mut billing_address__ = None;
1059 let mut invoice_email__ = None;
1060 let mut vat_id__ = None;
1061 let mut contact_person__ = None;
1062 let mut payment_method__ = None;
1063 let mut create_time__ = None;
1064 let mut creator__ = None;
1065 while let Some(k) = map_.next_key()? {
1066 match k {
1067 GeneratedField::Name => {
1068 if name__.is_some() {
1069 return Err(serde::de::Error::duplicate_field("name"));
1070 }
1071 name__ = Some(map_.next_value()?);
1072 }
1073 GeneratedField::Urn => {
1074 if urn__.is_some() {
1075 return Err(serde::de::Error::duplicate_field("urn"));
1076 }
1077 urn__ = Some(map_.next_value()?);
1078 }
1079 GeneratedField::DisplayName => {
1080 if display_name__.is_some() {
1081 return Err(
1082 serde::de::Error::duplicate_field("displayName"),
1083 );
1084 }
1085 display_name__ = Some(map_.next_value()?);
1086 }
1087 GeneratedField::DefaultAccount => {
1088 if default_account__.is_some() {
1089 return Err(
1090 serde::de::Error::duplicate_field("defaultAccount"),
1091 );
1092 }
1093 default_account__ = Some(map_.next_value()?);
1094 }
1095 GeneratedField::BillingAddress => {
1096 if billing_address__.is_some() {
1097 return Err(
1098 serde::de::Error::duplicate_field("billingAddress"),
1099 );
1100 }
1101 billing_address__ = map_.next_value()?;
1102 }
1103 GeneratedField::InvoiceEmail => {
1104 if invoice_email__.is_some() {
1105 return Err(
1106 serde::de::Error::duplicate_field("invoiceEmail"),
1107 );
1108 }
1109 invoice_email__ = Some(map_.next_value()?);
1110 }
1111 GeneratedField::VatId => {
1112 if vat_id__.is_some() {
1113 return Err(serde::de::Error::duplicate_field("vatId"));
1114 }
1115 vat_id__ = Some(map_.next_value()?);
1116 }
1117 GeneratedField::ContactPerson => {
1118 if contact_person__.is_some() {
1119 return Err(
1120 serde::de::Error::duplicate_field("contactPerson"),
1121 );
1122 }
1123 contact_person__ = Some(map_.next_value()?);
1124 }
1125 GeneratedField::PaymentMethod => {
1126 if payment_method__.is_some() {
1127 return Err(
1128 serde::de::Error::duplicate_field("paymentMethod"),
1129 );
1130 }
1131 payment_method__ = map_.next_value()?;
1132 }
1133 GeneratedField::CreateTime => {
1134 if create_time__.is_some() {
1135 return Err(serde::de::Error::duplicate_field("createTime"));
1136 }
1137 create_time__ = map_.next_value()?;
1138 }
1139 GeneratedField::Creator => {
1140 if creator__.is_some() {
1141 return Err(serde::de::Error::duplicate_field("creator"));
1142 }
1143 creator__ = Some(map_.next_value()?);
1144 }
1145 GeneratedField::__SkipField__ => {
1146 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1147 }
1148 }
1149 }
1150 Ok(BillingAccount {
1151 name: name__.unwrap_or_default(),
1152 urn: urn__.unwrap_or_default(),
1153 display_name: display_name__.unwrap_or_default(),
1154 default_account: default_account__.unwrap_or_default(),
1155 billing_address: billing_address__,
1156 invoice_email: invoice_email__.unwrap_or_default(),
1157 vat_id: vat_id__.unwrap_or_default(),
1158 contact_person: contact_person__.unwrap_or_default(),
1159 payment_method: payment_method__,
1160 create_time: create_time__,
1161 creator: creator__.unwrap_or_default(),
1162 })
1163 }
1164 }
1165 deserializer
1166 .deserialize_struct(
1167 "origincloud.billing.v1beta1.BillingAccount",
1168 FIELDS,
1169 GeneratedVisitor,
1170 )
1171 }
1172}
1173impl serde::Serialize for BillingAddress {
1174 #[allow(deprecated)]
1175 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1176 where
1177 S: serde::Serializer,
1178 {
1179 use serde::ser::SerializeStruct;
1180 let mut len = 0;
1181 if !self.street.is_empty() {
1182 len += 1;
1183 }
1184 if !self.city.is_empty() {
1185 len += 1;
1186 }
1187 if !self.postal_code.is_empty() {
1188 len += 1;
1189 }
1190 if !self.region_code.is_empty() {
1191 len += 1;
1192 }
1193 let mut struct_ser = serializer
1194 .serialize_struct("origincloud.billing.v1beta1.BillingAddress", len)?;
1195 if !self.street.is_empty() {
1196 struct_ser.serialize_field("street", &self.street)?;
1197 }
1198 if !self.city.is_empty() {
1199 struct_ser.serialize_field("city", &self.city)?;
1200 }
1201 if !self.postal_code.is_empty() {
1202 struct_ser.serialize_field("postalCode", &self.postal_code)?;
1203 }
1204 if !self.region_code.is_empty() {
1205 struct_ser.serialize_field("regionCode", &self.region_code)?;
1206 }
1207 struct_ser.end()
1208 }
1209}
1210impl<'de> serde::Deserialize<'de> for BillingAddress {
1211 #[allow(deprecated)]
1212 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1213 where
1214 D: serde::Deserializer<'de>,
1215 {
1216 const FIELDS: &[&str] = &[
1217 "street",
1218 "city",
1219 "postal_code",
1220 "postalCode",
1221 "region_code",
1222 "regionCode",
1223 ];
1224 #[allow(clippy::enum_variant_names)]
1225 enum GeneratedField {
1226 Street,
1227 City,
1228 PostalCode,
1229 RegionCode,
1230 __SkipField__,
1231 }
1232 impl<'de> serde::Deserialize<'de> for GeneratedField {
1233 fn deserialize<D>(
1234 deserializer: D,
1235 ) -> std::result::Result<GeneratedField, D::Error>
1236 where
1237 D: serde::Deserializer<'de>,
1238 {
1239 struct GeneratedVisitor;
1240 impl serde::de::Visitor<'_> for GeneratedVisitor {
1241 type Value = GeneratedField;
1242 fn expecting(
1243 &self,
1244 formatter: &mut std::fmt::Formatter<'_>,
1245 ) -> std::fmt::Result {
1246 write!(formatter, "expected one of: {:?}", & FIELDS)
1247 }
1248 #[allow(unused_variables)]
1249 fn visit_str<E>(
1250 self,
1251 value: &str,
1252 ) -> std::result::Result<GeneratedField, E>
1253 where
1254 E: serde::de::Error,
1255 {
1256 match value {
1257 "street" => Ok(GeneratedField::Street),
1258 "city" => Ok(GeneratedField::City),
1259 "postalCode" | "postal_code" => {
1260 Ok(GeneratedField::PostalCode)
1261 }
1262 "regionCode" | "region_code" => {
1263 Ok(GeneratedField::RegionCode)
1264 }
1265 _ => Ok(GeneratedField::__SkipField__),
1266 }
1267 }
1268 }
1269 deserializer.deserialize_identifier(GeneratedVisitor)
1270 }
1271 }
1272 struct GeneratedVisitor;
1273 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1274 type Value = BillingAddress;
1275 fn expecting(
1276 &self,
1277 formatter: &mut std::fmt::Formatter<'_>,
1278 ) -> std::fmt::Result {
1279 formatter.write_str("struct origincloud.billing.v1beta1.BillingAddress")
1280 }
1281 fn visit_map<V>(
1282 self,
1283 mut map_: V,
1284 ) -> std::result::Result<BillingAddress, V::Error>
1285 where
1286 V: serde::de::MapAccess<'de>,
1287 {
1288 let mut street__ = None;
1289 let mut city__ = None;
1290 let mut postal_code__ = None;
1291 let mut region_code__ = None;
1292 while let Some(k) = map_.next_key()? {
1293 match k {
1294 GeneratedField::Street => {
1295 if street__.is_some() {
1296 return Err(serde::de::Error::duplicate_field("street"));
1297 }
1298 street__ = Some(map_.next_value()?);
1299 }
1300 GeneratedField::City => {
1301 if city__.is_some() {
1302 return Err(serde::de::Error::duplicate_field("city"));
1303 }
1304 city__ = Some(map_.next_value()?);
1305 }
1306 GeneratedField::PostalCode => {
1307 if postal_code__.is_some() {
1308 return Err(serde::de::Error::duplicate_field("postalCode"));
1309 }
1310 postal_code__ = Some(map_.next_value()?);
1311 }
1312 GeneratedField::RegionCode => {
1313 if region_code__.is_some() {
1314 return Err(serde::de::Error::duplicate_field("regionCode"));
1315 }
1316 region_code__ = Some(map_.next_value()?);
1317 }
1318 GeneratedField::__SkipField__ => {
1319 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1320 }
1321 }
1322 }
1323 Ok(BillingAddress {
1324 street: street__.unwrap_or_default(),
1325 city: city__.unwrap_or_default(),
1326 postal_code: postal_code__.unwrap_or_default(),
1327 region_code: region_code__.unwrap_or_default(),
1328 })
1329 }
1330 }
1331 deserializer
1332 .deserialize_struct(
1333 "origincloud.billing.v1beta1.BillingAddress",
1334 FIELDS,
1335 GeneratedVisitor,
1336 )
1337 }
1338}
1339impl serde::Serialize for BillingCountry {
1340 #[allow(deprecated)]
1341 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1342 where
1343 S: serde::Serializer,
1344 {
1345 use serde::ser::SerializeStruct;
1346 let mut len = 0;
1347 if !self.name.is_empty() {
1348 len += 1;
1349 }
1350 if !self.region_code.is_empty() {
1351 len += 1;
1352 }
1353 if !self.display_name.is_empty() {
1354 len += 1;
1355 }
1356 if self.vat_id_required {
1357 len += 1;
1358 }
1359 let mut struct_ser = serializer
1360 .serialize_struct("origincloud.billing.v1beta1.BillingCountry", len)?;
1361 if !self.name.is_empty() {
1362 struct_ser.serialize_field("name", &self.name)?;
1363 }
1364 if !self.region_code.is_empty() {
1365 struct_ser.serialize_field("regionCode", &self.region_code)?;
1366 }
1367 if !self.display_name.is_empty() {
1368 struct_ser.serialize_field("displayName", &self.display_name)?;
1369 }
1370 if self.vat_id_required {
1371 struct_ser.serialize_field("vatIdRequired", &self.vat_id_required)?;
1372 }
1373 struct_ser.end()
1374 }
1375}
1376impl<'de> serde::Deserialize<'de> for BillingCountry {
1377 #[allow(deprecated)]
1378 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1379 where
1380 D: serde::Deserializer<'de>,
1381 {
1382 const FIELDS: &[&str] = &[
1383 "name",
1384 "region_code",
1385 "regionCode",
1386 "display_name",
1387 "displayName",
1388 "vat_id_required",
1389 "vatIdRequired",
1390 ];
1391 #[allow(clippy::enum_variant_names)]
1392 enum GeneratedField {
1393 Name,
1394 RegionCode,
1395 DisplayName,
1396 VatIdRequired,
1397 __SkipField__,
1398 }
1399 impl<'de> serde::Deserialize<'de> for GeneratedField {
1400 fn deserialize<D>(
1401 deserializer: D,
1402 ) -> std::result::Result<GeneratedField, D::Error>
1403 where
1404 D: serde::Deserializer<'de>,
1405 {
1406 struct GeneratedVisitor;
1407 impl serde::de::Visitor<'_> for GeneratedVisitor {
1408 type Value = GeneratedField;
1409 fn expecting(
1410 &self,
1411 formatter: &mut std::fmt::Formatter<'_>,
1412 ) -> std::fmt::Result {
1413 write!(formatter, "expected one of: {:?}", & FIELDS)
1414 }
1415 #[allow(unused_variables)]
1416 fn visit_str<E>(
1417 self,
1418 value: &str,
1419 ) -> std::result::Result<GeneratedField, E>
1420 where
1421 E: serde::de::Error,
1422 {
1423 match value {
1424 "name" => Ok(GeneratedField::Name),
1425 "regionCode" | "region_code" => {
1426 Ok(GeneratedField::RegionCode)
1427 }
1428 "displayName" | "display_name" => {
1429 Ok(GeneratedField::DisplayName)
1430 }
1431 "vatIdRequired" | "vat_id_required" => {
1432 Ok(GeneratedField::VatIdRequired)
1433 }
1434 _ => Ok(GeneratedField::__SkipField__),
1435 }
1436 }
1437 }
1438 deserializer.deserialize_identifier(GeneratedVisitor)
1439 }
1440 }
1441 struct GeneratedVisitor;
1442 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1443 type Value = BillingCountry;
1444 fn expecting(
1445 &self,
1446 formatter: &mut std::fmt::Formatter<'_>,
1447 ) -> std::fmt::Result {
1448 formatter.write_str("struct origincloud.billing.v1beta1.BillingCountry")
1449 }
1450 fn visit_map<V>(
1451 self,
1452 mut map_: V,
1453 ) -> std::result::Result<BillingCountry, V::Error>
1454 where
1455 V: serde::de::MapAccess<'de>,
1456 {
1457 let mut name__ = None;
1458 let mut region_code__ = None;
1459 let mut display_name__ = None;
1460 let mut vat_id_required__ = None;
1461 while let Some(k) = map_.next_key()? {
1462 match k {
1463 GeneratedField::Name => {
1464 if name__.is_some() {
1465 return Err(serde::de::Error::duplicate_field("name"));
1466 }
1467 name__ = Some(map_.next_value()?);
1468 }
1469 GeneratedField::RegionCode => {
1470 if region_code__.is_some() {
1471 return Err(serde::de::Error::duplicate_field("regionCode"));
1472 }
1473 region_code__ = Some(map_.next_value()?);
1474 }
1475 GeneratedField::DisplayName => {
1476 if display_name__.is_some() {
1477 return Err(
1478 serde::de::Error::duplicate_field("displayName"),
1479 );
1480 }
1481 display_name__ = Some(map_.next_value()?);
1482 }
1483 GeneratedField::VatIdRequired => {
1484 if vat_id_required__.is_some() {
1485 return Err(
1486 serde::de::Error::duplicate_field("vatIdRequired"),
1487 );
1488 }
1489 vat_id_required__ = Some(map_.next_value()?);
1490 }
1491 GeneratedField::__SkipField__ => {
1492 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1493 }
1494 }
1495 }
1496 Ok(BillingCountry {
1497 name: name__.unwrap_or_default(),
1498 region_code: region_code__.unwrap_or_default(),
1499 display_name: display_name__.unwrap_or_default(),
1500 vat_id_required: vat_id_required__.unwrap_or_default(),
1501 })
1502 }
1503 }
1504 deserializer
1505 .deserialize_struct(
1506 "origincloud.billing.v1beta1.BillingCountry",
1507 FIELDS,
1508 GeneratedVisitor,
1509 )
1510 }
1511}
1512impl serde::Serialize for ConfirmPaymentMethodSetupRequest {
1513 #[allow(deprecated)]
1514 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1515 where
1516 S: serde::Serializer,
1517 {
1518 use serde::ser::SerializeStruct;
1519 let mut len = 0;
1520 if !self.name.is_empty() {
1521 len += 1;
1522 }
1523 let mut struct_ser = serializer
1524 .serialize_struct(
1525 "origincloud.billing.v1beta1.ConfirmPaymentMethodSetupRequest",
1526 len,
1527 )?;
1528 if !self.name.is_empty() {
1529 struct_ser.serialize_field("name", &self.name)?;
1530 }
1531 struct_ser.end()
1532 }
1533}
1534impl<'de> serde::Deserialize<'de> for ConfirmPaymentMethodSetupRequest {
1535 #[allow(deprecated)]
1536 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1537 where
1538 D: serde::Deserializer<'de>,
1539 {
1540 const FIELDS: &[&str] = &["name"];
1541 #[allow(clippy::enum_variant_names)]
1542 enum GeneratedField {
1543 Name,
1544 __SkipField__,
1545 }
1546 impl<'de> serde::Deserialize<'de> for GeneratedField {
1547 fn deserialize<D>(
1548 deserializer: D,
1549 ) -> std::result::Result<GeneratedField, D::Error>
1550 where
1551 D: serde::Deserializer<'de>,
1552 {
1553 struct GeneratedVisitor;
1554 impl serde::de::Visitor<'_> for GeneratedVisitor {
1555 type Value = GeneratedField;
1556 fn expecting(
1557 &self,
1558 formatter: &mut std::fmt::Formatter<'_>,
1559 ) -> std::fmt::Result {
1560 write!(formatter, "expected one of: {:?}", & FIELDS)
1561 }
1562 #[allow(unused_variables)]
1563 fn visit_str<E>(
1564 self,
1565 value: &str,
1566 ) -> std::result::Result<GeneratedField, E>
1567 where
1568 E: serde::de::Error,
1569 {
1570 match value {
1571 "name" => Ok(GeneratedField::Name),
1572 _ => Ok(GeneratedField::__SkipField__),
1573 }
1574 }
1575 }
1576 deserializer.deserialize_identifier(GeneratedVisitor)
1577 }
1578 }
1579 struct GeneratedVisitor;
1580 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1581 type Value = ConfirmPaymentMethodSetupRequest;
1582 fn expecting(
1583 &self,
1584 formatter: &mut std::fmt::Formatter<'_>,
1585 ) -> std::fmt::Result {
1586 formatter
1587 .write_str(
1588 "struct origincloud.billing.v1beta1.ConfirmPaymentMethodSetupRequest",
1589 )
1590 }
1591 fn visit_map<V>(
1592 self,
1593 mut map_: V,
1594 ) -> std::result::Result<ConfirmPaymentMethodSetupRequest, V::Error>
1595 where
1596 V: serde::de::MapAccess<'de>,
1597 {
1598 let mut name__ = None;
1599 while let Some(k) = map_.next_key()? {
1600 match k {
1601 GeneratedField::Name => {
1602 if name__.is_some() {
1603 return Err(serde::de::Error::duplicate_field("name"));
1604 }
1605 name__ = Some(map_.next_value()?);
1606 }
1607 GeneratedField::__SkipField__ => {
1608 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1609 }
1610 }
1611 }
1612 Ok(ConfirmPaymentMethodSetupRequest {
1613 name: name__.unwrap_or_default(),
1614 })
1615 }
1616 }
1617 deserializer
1618 .deserialize_struct(
1619 "origincloud.billing.v1beta1.ConfirmPaymentMethodSetupRequest",
1620 FIELDS,
1621 GeneratedVisitor,
1622 )
1623 }
1624}
1625impl serde::Serialize for CostBucket {
1626 #[allow(deprecated)]
1627 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1628 where
1629 S: serde::Serializer,
1630 {
1631 use serde::ser::SerializeStruct;
1632 let mut len = 0;
1633 if self.start_time.is_some() {
1634 len += 1;
1635 }
1636 if !self.amount.is_empty() {
1637 len += 1;
1638 }
1639 let mut struct_ser = serializer
1640 .serialize_struct("origincloud.billing.v1beta1.CostBucket", len)?;
1641 if let Some(v) = self.start_time.as_ref() {
1642 struct_ser.serialize_field("startTime", v)?;
1643 }
1644 if !self.amount.is_empty() {
1645 struct_ser.serialize_field("amount", &self.amount)?;
1646 }
1647 struct_ser.end()
1648 }
1649}
1650impl<'de> serde::Deserialize<'de> for CostBucket {
1651 #[allow(deprecated)]
1652 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1653 where
1654 D: serde::Deserializer<'de>,
1655 {
1656 const FIELDS: &[&str] = &["start_time", "startTime", "amount"];
1657 #[allow(clippy::enum_variant_names)]
1658 enum GeneratedField {
1659 StartTime,
1660 Amount,
1661 __SkipField__,
1662 }
1663 impl<'de> serde::Deserialize<'de> for GeneratedField {
1664 fn deserialize<D>(
1665 deserializer: D,
1666 ) -> std::result::Result<GeneratedField, D::Error>
1667 where
1668 D: serde::Deserializer<'de>,
1669 {
1670 struct GeneratedVisitor;
1671 impl serde::de::Visitor<'_> for GeneratedVisitor {
1672 type Value = GeneratedField;
1673 fn expecting(
1674 &self,
1675 formatter: &mut std::fmt::Formatter<'_>,
1676 ) -> std::fmt::Result {
1677 write!(formatter, "expected one of: {:?}", & FIELDS)
1678 }
1679 #[allow(unused_variables)]
1680 fn visit_str<E>(
1681 self,
1682 value: &str,
1683 ) -> std::result::Result<GeneratedField, E>
1684 where
1685 E: serde::de::Error,
1686 {
1687 match value {
1688 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
1689 "amount" => Ok(GeneratedField::Amount),
1690 _ => Ok(GeneratedField::__SkipField__),
1691 }
1692 }
1693 }
1694 deserializer.deserialize_identifier(GeneratedVisitor)
1695 }
1696 }
1697 struct GeneratedVisitor;
1698 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1699 type Value = CostBucket;
1700 fn expecting(
1701 &self,
1702 formatter: &mut std::fmt::Formatter<'_>,
1703 ) -> std::fmt::Result {
1704 formatter.write_str("struct origincloud.billing.v1beta1.CostBucket")
1705 }
1706 fn visit_map<V>(
1707 self,
1708 mut map_: V,
1709 ) -> std::result::Result<CostBucket, V::Error>
1710 where
1711 V: serde::de::MapAccess<'de>,
1712 {
1713 let mut start_time__ = None;
1714 let mut amount__ = None;
1715 while let Some(k) = map_.next_key()? {
1716 match k {
1717 GeneratedField::StartTime => {
1718 if start_time__.is_some() {
1719 return Err(serde::de::Error::duplicate_field("startTime"));
1720 }
1721 start_time__ = map_.next_value()?;
1722 }
1723 GeneratedField::Amount => {
1724 if amount__.is_some() {
1725 return Err(serde::de::Error::duplicate_field("amount"));
1726 }
1727 amount__ = Some(map_.next_value()?);
1728 }
1729 GeneratedField::__SkipField__ => {
1730 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1731 }
1732 }
1733 }
1734 Ok(CostBucket {
1735 start_time: start_time__,
1736 amount: amount__.unwrap_or_default(),
1737 })
1738 }
1739 }
1740 deserializer
1741 .deserialize_struct(
1742 "origincloud.billing.v1beta1.CostBucket",
1743 FIELDS,
1744 GeneratedVisitor,
1745 )
1746 }
1747}
1748impl serde::Serialize for CostReport {
1749 #[allow(deprecated)]
1750 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1751 where
1752 S: serde::Serializer,
1753 {
1754 use serde::ser::SerializeStruct;
1755 let mut len = 0;
1756 if !self.total.is_empty() {
1757 len += 1;
1758 }
1759 if !self.services.is_empty() {
1760 len += 1;
1761 }
1762 let mut struct_ser = serializer
1763 .serialize_struct("origincloud.billing.v1beta1.CostReport", len)?;
1764 if !self.total.is_empty() {
1765 struct_ser.serialize_field("total", &self.total)?;
1766 }
1767 if !self.services.is_empty() {
1768 struct_ser.serialize_field("services", &self.services)?;
1769 }
1770 struct_ser.end()
1771 }
1772}
1773impl<'de> serde::Deserialize<'de> for CostReport {
1774 #[allow(deprecated)]
1775 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1776 where
1777 D: serde::Deserializer<'de>,
1778 {
1779 const FIELDS: &[&str] = &["total", "services"];
1780 #[allow(clippy::enum_variant_names)]
1781 enum GeneratedField {
1782 Total,
1783 Services,
1784 __SkipField__,
1785 }
1786 impl<'de> serde::Deserialize<'de> for GeneratedField {
1787 fn deserialize<D>(
1788 deserializer: D,
1789 ) -> std::result::Result<GeneratedField, D::Error>
1790 where
1791 D: serde::Deserializer<'de>,
1792 {
1793 struct GeneratedVisitor;
1794 impl serde::de::Visitor<'_> for GeneratedVisitor {
1795 type Value = GeneratedField;
1796 fn expecting(
1797 &self,
1798 formatter: &mut std::fmt::Formatter<'_>,
1799 ) -> std::fmt::Result {
1800 write!(formatter, "expected one of: {:?}", & FIELDS)
1801 }
1802 #[allow(unused_variables)]
1803 fn visit_str<E>(
1804 self,
1805 value: &str,
1806 ) -> std::result::Result<GeneratedField, E>
1807 where
1808 E: serde::de::Error,
1809 {
1810 match value {
1811 "total" => Ok(GeneratedField::Total),
1812 "services" => Ok(GeneratedField::Services),
1813 _ => Ok(GeneratedField::__SkipField__),
1814 }
1815 }
1816 }
1817 deserializer.deserialize_identifier(GeneratedVisitor)
1818 }
1819 }
1820 struct GeneratedVisitor;
1821 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1822 type Value = CostReport;
1823 fn expecting(
1824 &self,
1825 formatter: &mut std::fmt::Formatter<'_>,
1826 ) -> std::fmt::Result {
1827 formatter.write_str("struct origincloud.billing.v1beta1.CostReport")
1828 }
1829 fn visit_map<V>(
1830 self,
1831 mut map_: V,
1832 ) -> std::result::Result<CostReport, V::Error>
1833 where
1834 V: serde::de::MapAccess<'de>,
1835 {
1836 let mut total__ = None;
1837 let mut services__ = None;
1838 while let Some(k) = map_.next_key()? {
1839 match k {
1840 GeneratedField::Total => {
1841 if total__.is_some() {
1842 return Err(serde::de::Error::duplicate_field("total"));
1843 }
1844 total__ = Some(map_.next_value()?);
1845 }
1846 GeneratedField::Services => {
1847 if services__.is_some() {
1848 return Err(serde::de::Error::duplicate_field("services"));
1849 }
1850 services__ = Some(map_.next_value()?);
1851 }
1852 GeneratedField::__SkipField__ => {
1853 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1854 }
1855 }
1856 }
1857 Ok(CostReport {
1858 total: total__.unwrap_or_default(),
1859 services: services__.unwrap_or_default(),
1860 })
1861 }
1862 }
1863 deserializer
1864 .deserialize_struct(
1865 "origincloud.billing.v1beta1.CostReport",
1866 FIELDS,
1867 GeneratedVisitor,
1868 )
1869 }
1870}
1871impl serde::Serialize for CreateBillingAccountRequest {
1872 #[allow(deprecated)]
1873 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1874 where
1875 S: serde::Serializer,
1876 {
1877 use serde::ser::SerializeStruct;
1878 let mut len = 0;
1879 if !self.parent.is_empty() {
1880 len += 1;
1881 }
1882 if self.billing_account.is_some() {
1883 len += 1;
1884 }
1885 if !self.request_id.is_empty() {
1886 len += 1;
1887 }
1888 let mut struct_ser = serializer
1889 .serialize_struct(
1890 "origincloud.billing.v1beta1.CreateBillingAccountRequest",
1891 len,
1892 )?;
1893 if !self.parent.is_empty() {
1894 struct_ser.serialize_field("parent", &self.parent)?;
1895 }
1896 if let Some(v) = self.billing_account.as_ref() {
1897 struct_ser.serialize_field("billingAccount", v)?;
1898 }
1899 if !self.request_id.is_empty() {
1900 struct_ser.serialize_field("requestId", &self.request_id)?;
1901 }
1902 struct_ser.end()
1903 }
1904}
1905impl<'de> serde::Deserialize<'de> for CreateBillingAccountRequest {
1906 #[allow(deprecated)]
1907 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1908 where
1909 D: serde::Deserializer<'de>,
1910 {
1911 const FIELDS: &[&str] = &[
1912 "parent",
1913 "billing_account",
1914 "billingAccount",
1915 "request_id",
1916 "requestId",
1917 ];
1918 #[allow(clippy::enum_variant_names)]
1919 enum GeneratedField {
1920 Parent,
1921 BillingAccount,
1922 RequestId,
1923 __SkipField__,
1924 }
1925 impl<'de> serde::Deserialize<'de> for GeneratedField {
1926 fn deserialize<D>(
1927 deserializer: D,
1928 ) -> std::result::Result<GeneratedField, D::Error>
1929 where
1930 D: serde::Deserializer<'de>,
1931 {
1932 struct GeneratedVisitor;
1933 impl serde::de::Visitor<'_> for GeneratedVisitor {
1934 type Value = GeneratedField;
1935 fn expecting(
1936 &self,
1937 formatter: &mut std::fmt::Formatter<'_>,
1938 ) -> std::fmt::Result {
1939 write!(formatter, "expected one of: {:?}", & FIELDS)
1940 }
1941 #[allow(unused_variables)]
1942 fn visit_str<E>(
1943 self,
1944 value: &str,
1945 ) -> std::result::Result<GeneratedField, E>
1946 where
1947 E: serde::de::Error,
1948 {
1949 match value {
1950 "parent" => Ok(GeneratedField::Parent),
1951 "billingAccount" | "billing_account" => {
1952 Ok(GeneratedField::BillingAccount)
1953 }
1954 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
1955 _ => Ok(GeneratedField::__SkipField__),
1956 }
1957 }
1958 }
1959 deserializer.deserialize_identifier(GeneratedVisitor)
1960 }
1961 }
1962 struct GeneratedVisitor;
1963 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1964 type Value = CreateBillingAccountRequest;
1965 fn expecting(
1966 &self,
1967 formatter: &mut std::fmt::Formatter<'_>,
1968 ) -> std::fmt::Result {
1969 formatter
1970 .write_str(
1971 "struct origincloud.billing.v1beta1.CreateBillingAccountRequest",
1972 )
1973 }
1974 fn visit_map<V>(
1975 self,
1976 mut map_: V,
1977 ) -> std::result::Result<CreateBillingAccountRequest, V::Error>
1978 where
1979 V: serde::de::MapAccess<'de>,
1980 {
1981 let mut parent__ = None;
1982 let mut billing_account__ = None;
1983 let mut request_id__ = None;
1984 while let Some(k) = map_.next_key()? {
1985 match k {
1986 GeneratedField::Parent => {
1987 if parent__.is_some() {
1988 return Err(serde::de::Error::duplicate_field("parent"));
1989 }
1990 parent__ = Some(map_.next_value()?);
1991 }
1992 GeneratedField::BillingAccount => {
1993 if billing_account__.is_some() {
1994 return Err(
1995 serde::de::Error::duplicate_field("billingAccount"),
1996 );
1997 }
1998 billing_account__ = map_.next_value()?;
1999 }
2000 GeneratedField::RequestId => {
2001 if request_id__.is_some() {
2002 return Err(serde::de::Error::duplicate_field("requestId"));
2003 }
2004 request_id__ = Some(map_.next_value()?);
2005 }
2006 GeneratedField::__SkipField__ => {
2007 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2008 }
2009 }
2010 }
2011 Ok(CreateBillingAccountRequest {
2012 parent: parent__.unwrap_or_default(),
2013 billing_account: billing_account__,
2014 request_id: request_id__.unwrap_or_default(),
2015 })
2016 }
2017 }
2018 deserializer
2019 .deserialize_struct(
2020 "origincloud.billing.v1beta1.CreateBillingAccountRequest",
2021 FIELDS,
2022 GeneratedVisitor,
2023 )
2024 }
2025}
2026impl serde::Serialize for DeleteBillingAccountRequest {
2027 #[allow(deprecated)]
2028 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2029 where
2030 S: serde::Serializer,
2031 {
2032 use serde::ser::SerializeStruct;
2033 let mut len = 0;
2034 if !self.name.is_empty() {
2035 len += 1;
2036 }
2037 let mut struct_ser = serializer
2038 .serialize_struct(
2039 "origincloud.billing.v1beta1.DeleteBillingAccountRequest",
2040 len,
2041 )?;
2042 if !self.name.is_empty() {
2043 struct_ser.serialize_field("name", &self.name)?;
2044 }
2045 struct_ser.end()
2046 }
2047}
2048impl<'de> serde::Deserialize<'de> for DeleteBillingAccountRequest {
2049 #[allow(deprecated)]
2050 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2051 where
2052 D: serde::Deserializer<'de>,
2053 {
2054 const FIELDS: &[&str] = &["name"];
2055 #[allow(clippy::enum_variant_names)]
2056 enum GeneratedField {
2057 Name,
2058 __SkipField__,
2059 }
2060 impl<'de> serde::Deserialize<'de> for GeneratedField {
2061 fn deserialize<D>(
2062 deserializer: D,
2063 ) -> std::result::Result<GeneratedField, D::Error>
2064 where
2065 D: serde::Deserializer<'de>,
2066 {
2067 struct GeneratedVisitor;
2068 impl serde::de::Visitor<'_> for GeneratedVisitor {
2069 type Value = GeneratedField;
2070 fn expecting(
2071 &self,
2072 formatter: &mut std::fmt::Formatter<'_>,
2073 ) -> std::fmt::Result {
2074 write!(formatter, "expected one of: {:?}", & FIELDS)
2075 }
2076 #[allow(unused_variables)]
2077 fn visit_str<E>(
2078 self,
2079 value: &str,
2080 ) -> std::result::Result<GeneratedField, E>
2081 where
2082 E: serde::de::Error,
2083 {
2084 match value {
2085 "name" => Ok(GeneratedField::Name),
2086 _ => Ok(GeneratedField::__SkipField__),
2087 }
2088 }
2089 }
2090 deserializer.deserialize_identifier(GeneratedVisitor)
2091 }
2092 }
2093 struct GeneratedVisitor;
2094 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2095 type Value = DeleteBillingAccountRequest;
2096 fn expecting(
2097 &self,
2098 formatter: &mut std::fmt::Formatter<'_>,
2099 ) -> std::fmt::Result {
2100 formatter
2101 .write_str(
2102 "struct origincloud.billing.v1beta1.DeleteBillingAccountRequest",
2103 )
2104 }
2105 fn visit_map<V>(
2106 self,
2107 mut map_: V,
2108 ) -> std::result::Result<DeleteBillingAccountRequest, V::Error>
2109 where
2110 V: serde::de::MapAccess<'de>,
2111 {
2112 let mut name__ = None;
2113 while let Some(k) = map_.next_key()? {
2114 match k {
2115 GeneratedField::Name => {
2116 if name__.is_some() {
2117 return Err(serde::de::Error::duplicate_field("name"));
2118 }
2119 name__ = Some(map_.next_value()?);
2120 }
2121 GeneratedField::__SkipField__ => {
2122 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2123 }
2124 }
2125 }
2126 Ok(DeleteBillingAccountRequest {
2127 name: name__.unwrap_or_default(),
2128 })
2129 }
2130 }
2131 deserializer
2132 .deserialize_struct(
2133 "origincloud.billing.v1beta1.DeleteBillingAccountRequest",
2134 FIELDS,
2135 GeneratedVisitor,
2136 )
2137 }
2138}
2139impl serde::Serialize for DownloadLegalDocumentVersionRequest {
2140 #[allow(deprecated)]
2141 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2142 where
2143 S: serde::Serializer,
2144 {
2145 use serde::ser::SerializeStruct;
2146 let mut len = 0;
2147 if !self.name.is_empty() {
2148 len += 1;
2149 }
2150 let mut struct_ser = serializer
2151 .serialize_struct(
2152 "origincloud.billing.v1beta1.DownloadLegalDocumentVersionRequest",
2153 len,
2154 )?;
2155 if !self.name.is_empty() {
2156 struct_ser.serialize_field("name", &self.name)?;
2157 }
2158 struct_ser.end()
2159 }
2160}
2161impl<'de> serde::Deserialize<'de> for DownloadLegalDocumentVersionRequest {
2162 #[allow(deprecated)]
2163 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2164 where
2165 D: serde::Deserializer<'de>,
2166 {
2167 const FIELDS: &[&str] = &["name"];
2168 #[allow(clippy::enum_variant_names)]
2169 enum GeneratedField {
2170 Name,
2171 __SkipField__,
2172 }
2173 impl<'de> serde::Deserialize<'de> for GeneratedField {
2174 fn deserialize<D>(
2175 deserializer: D,
2176 ) -> std::result::Result<GeneratedField, D::Error>
2177 where
2178 D: serde::Deserializer<'de>,
2179 {
2180 struct GeneratedVisitor;
2181 impl serde::de::Visitor<'_> for GeneratedVisitor {
2182 type Value = GeneratedField;
2183 fn expecting(
2184 &self,
2185 formatter: &mut std::fmt::Formatter<'_>,
2186 ) -> std::fmt::Result {
2187 write!(formatter, "expected one of: {:?}", & FIELDS)
2188 }
2189 #[allow(unused_variables)]
2190 fn visit_str<E>(
2191 self,
2192 value: &str,
2193 ) -> std::result::Result<GeneratedField, E>
2194 where
2195 E: serde::de::Error,
2196 {
2197 match value {
2198 "name" => Ok(GeneratedField::Name),
2199 _ => Ok(GeneratedField::__SkipField__),
2200 }
2201 }
2202 }
2203 deserializer.deserialize_identifier(GeneratedVisitor)
2204 }
2205 }
2206 struct GeneratedVisitor;
2207 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2208 type Value = DownloadLegalDocumentVersionRequest;
2209 fn expecting(
2210 &self,
2211 formatter: &mut std::fmt::Formatter<'_>,
2212 ) -> std::fmt::Result {
2213 formatter
2214 .write_str(
2215 "struct origincloud.billing.v1beta1.DownloadLegalDocumentVersionRequest",
2216 )
2217 }
2218 fn visit_map<V>(
2219 self,
2220 mut map_: V,
2221 ) -> std::result::Result<DownloadLegalDocumentVersionRequest, V::Error>
2222 where
2223 V: serde::de::MapAccess<'de>,
2224 {
2225 let mut name__ = None;
2226 while let Some(k) = map_.next_key()? {
2227 match k {
2228 GeneratedField::Name => {
2229 if name__.is_some() {
2230 return Err(serde::de::Error::duplicate_field("name"));
2231 }
2232 name__ = Some(map_.next_value()?);
2233 }
2234 GeneratedField::__SkipField__ => {
2235 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2236 }
2237 }
2238 }
2239 Ok(DownloadLegalDocumentVersionRequest {
2240 name: name__.unwrap_or_default(),
2241 })
2242 }
2243 }
2244 deserializer
2245 .deserialize_struct(
2246 "origincloud.billing.v1beta1.DownloadLegalDocumentVersionRequest",
2247 FIELDS,
2248 GeneratedVisitor,
2249 )
2250 }
2251}
2252impl serde::Serialize for GetBillingAccountRequest {
2253 #[allow(deprecated)]
2254 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2255 where
2256 S: serde::Serializer,
2257 {
2258 use serde::ser::SerializeStruct;
2259 let mut len = 0;
2260 if !self.name.is_empty() {
2261 len += 1;
2262 }
2263 let mut struct_ser = serializer
2264 .serialize_struct(
2265 "origincloud.billing.v1beta1.GetBillingAccountRequest",
2266 len,
2267 )?;
2268 if !self.name.is_empty() {
2269 struct_ser.serialize_field("name", &self.name)?;
2270 }
2271 struct_ser.end()
2272 }
2273}
2274impl<'de> serde::Deserialize<'de> for GetBillingAccountRequest {
2275 #[allow(deprecated)]
2276 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2277 where
2278 D: serde::Deserializer<'de>,
2279 {
2280 const FIELDS: &[&str] = &["name"];
2281 #[allow(clippy::enum_variant_names)]
2282 enum GeneratedField {
2283 Name,
2284 __SkipField__,
2285 }
2286 impl<'de> serde::Deserialize<'de> for GeneratedField {
2287 fn deserialize<D>(
2288 deserializer: D,
2289 ) -> std::result::Result<GeneratedField, D::Error>
2290 where
2291 D: serde::Deserializer<'de>,
2292 {
2293 struct GeneratedVisitor;
2294 impl serde::de::Visitor<'_> for GeneratedVisitor {
2295 type Value = GeneratedField;
2296 fn expecting(
2297 &self,
2298 formatter: &mut std::fmt::Formatter<'_>,
2299 ) -> std::fmt::Result {
2300 write!(formatter, "expected one of: {:?}", & FIELDS)
2301 }
2302 #[allow(unused_variables)]
2303 fn visit_str<E>(
2304 self,
2305 value: &str,
2306 ) -> std::result::Result<GeneratedField, E>
2307 where
2308 E: serde::de::Error,
2309 {
2310 match value {
2311 "name" => Ok(GeneratedField::Name),
2312 _ => Ok(GeneratedField::__SkipField__),
2313 }
2314 }
2315 }
2316 deserializer.deserialize_identifier(GeneratedVisitor)
2317 }
2318 }
2319 struct GeneratedVisitor;
2320 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2321 type Value = GetBillingAccountRequest;
2322 fn expecting(
2323 &self,
2324 formatter: &mut std::fmt::Formatter<'_>,
2325 ) -> std::fmt::Result {
2326 formatter
2327 .write_str(
2328 "struct origincloud.billing.v1beta1.GetBillingAccountRequest",
2329 )
2330 }
2331 fn visit_map<V>(
2332 self,
2333 mut map_: V,
2334 ) -> std::result::Result<GetBillingAccountRequest, V::Error>
2335 where
2336 V: serde::de::MapAccess<'de>,
2337 {
2338 let mut name__ = None;
2339 while let Some(k) = map_.next_key()? {
2340 match k {
2341 GeneratedField::Name => {
2342 if name__.is_some() {
2343 return Err(serde::de::Error::duplicate_field("name"));
2344 }
2345 name__ = Some(map_.next_value()?);
2346 }
2347 GeneratedField::__SkipField__ => {
2348 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2349 }
2350 }
2351 }
2352 Ok(GetBillingAccountRequest {
2353 name: name__.unwrap_or_default(),
2354 })
2355 }
2356 }
2357 deserializer
2358 .deserialize_struct(
2359 "origincloud.billing.v1beta1.GetBillingAccountRequest",
2360 FIELDS,
2361 GeneratedVisitor,
2362 )
2363 }
2364}
2365impl serde::Serialize for GetBillingCountryRequest {
2366 #[allow(deprecated)]
2367 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2368 where
2369 S: serde::Serializer,
2370 {
2371 use serde::ser::SerializeStruct;
2372 let mut len = 0;
2373 if !self.name.is_empty() {
2374 len += 1;
2375 }
2376 let mut struct_ser = serializer
2377 .serialize_struct(
2378 "origincloud.billing.v1beta1.GetBillingCountryRequest",
2379 len,
2380 )?;
2381 if !self.name.is_empty() {
2382 struct_ser.serialize_field("name", &self.name)?;
2383 }
2384 struct_ser.end()
2385 }
2386}
2387impl<'de> serde::Deserialize<'de> for GetBillingCountryRequest {
2388 #[allow(deprecated)]
2389 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2390 where
2391 D: serde::Deserializer<'de>,
2392 {
2393 const FIELDS: &[&str] = &["name"];
2394 #[allow(clippy::enum_variant_names)]
2395 enum GeneratedField {
2396 Name,
2397 __SkipField__,
2398 }
2399 impl<'de> serde::Deserialize<'de> for GeneratedField {
2400 fn deserialize<D>(
2401 deserializer: D,
2402 ) -> std::result::Result<GeneratedField, D::Error>
2403 where
2404 D: serde::Deserializer<'de>,
2405 {
2406 struct GeneratedVisitor;
2407 impl serde::de::Visitor<'_> for GeneratedVisitor {
2408 type Value = GeneratedField;
2409 fn expecting(
2410 &self,
2411 formatter: &mut std::fmt::Formatter<'_>,
2412 ) -> std::fmt::Result {
2413 write!(formatter, "expected one of: {:?}", & FIELDS)
2414 }
2415 #[allow(unused_variables)]
2416 fn visit_str<E>(
2417 self,
2418 value: &str,
2419 ) -> std::result::Result<GeneratedField, E>
2420 where
2421 E: serde::de::Error,
2422 {
2423 match value {
2424 "name" => Ok(GeneratedField::Name),
2425 _ => Ok(GeneratedField::__SkipField__),
2426 }
2427 }
2428 }
2429 deserializer.deserialize_identifier(GeneratedVisitor)
2430 }
2431 }
2432 struct GeneratedVisitor;
2433 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2434 type Value = GetBillingCountryRequest;
2435 fn expecting(
2436 &self,
2437 formatter: &mut std::fmt::Formatter<'_>,
2438 ) -> std::fmt::Result {
2439 formatter
2440 .write_str(
2441 "struct origincloud.billing.v1beta1.GetBillingCountryRequest",
2442 )
2443 }
2444 fn visit_map<V>(
2445 self,
2446 mut map_: V,
2447 ) -> std::result::Result<GetBillingCountryRequest, V::Error>
2448 where
2449 V: serde::de::MapAccess<'de>,
2450 {
2451 let mut name__ = None;
2452 while let Some(k) = map_.next_key()? {
2453 match k {
2454 GeneratedField::Name => {
2455 if name__.is_some() {
2456 return Err(serde::de::Error::duplicate_field("name"));
2457 }
2458 name__ = Some(map_.next_value()?);
2459 }
2460 GeneratedField::__SkipField__ => {
2461 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2462 }
2463 }
2464 }
2465 Ok(GetBillingCountryRequest {
2466 name: name__.unwrap_or_default(),
2467 })
2468 }
2469 }
2470 deserializer
2471 .deserialize_struct(
2472 "origincloud.billing.v1beta1.GetBillingCountryRequest",
2473 FIELDS,
2474 GeneratedVisitor,
2475 )
2476 }
2477}
2478impl serde::Serialize for GetLegalDocumentRequest {
2479 #[allow(deprecated)]
2480 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2481 where
2482 S: serde::Serializer,
2483 {
2484 use serde::ser::SerializeStruct;
2485 let mut len = 0;
2486 if !self.name.is_empty() {
2487 len += 1;
2488 }
2489 let mut struct_ser = serializer
2490 .serialize_struct(
2491 "origincloud.billing.v1beta1.GetLegalDocumentRequest",
2492 len,
2493 )?;
2494 if !self.name.is_empty() {
2495 struct_ser.serialize_field("name", &self.name)?;
2496 }
2497 struct_ser.end()
2498 }
2499}
2500impl<'de> serde::Deserialize<'de> for GetLegalDocumentRequest {
2501 #[allow(deprecated)]
2502 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2503 where
2504 D: serde::Deserializer<'de>,
2505 {
2506 const FIELDS: &[&str] = &["name"];
2507 #[allow(clippy::enum_variant_names)]
2508 enum GeneratedField {
2509 Name,
2510 __SkipField__,
2511 }
2512 impl<'de> serde::Deserialize<'de> for GeneratedField {
2513 fn deserialize<D>(
2514 deserializer: D,
2515 ) -> std::result::Result<GeneratedField, D::Error>
2516 where
2517 D: serde::Deserializer<'de>,
2518 {
2519 struct GeneratedVisitor;
2520 impl serde::de::Visitor<'_> for GeneratedVisitor {
2521 type Value = GeneratedField;
2522 fn expecting(
2523 &self,
2524 formatter: &mut std::fmt::Formatter<'_>,
2525 ) -> std::fmt::Result {
2526 write!(formatter, "expected one of: {:?}", & FIELDS)
2527 }
2528 #[allow(unused_variables)]
2529 fn visit_str<E>(
2530 self,
2531 value: &str,
2532 ) -> std::result::Result<GeneratedField, E>
2533 where
2534 E: serde::de::Error,
2535 {
2536 match value {
2537 "name" => Ok(GeneratedField::Name),
2538 _ => Ok(GeneratedField::__SkipField__),
2539 }
2540 }
2541 }
2542 deserializer.deserialize_identifier(GeneratedVisitor)
2543 }
2544 }
2545 struct GeneratedVisitor;
2546 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2547 type Value = GetLegalDocumentRequest;
2548 fn expecting(
2549 &self,
2550 formatter: &mut std::fmt::Formatter<'_>,
2551 ) -> std::fmt::Result {
2552 formatter
2553 .write_str(
2554 "struct origincloud.billing.v1beta1.GetLegalDocumentRequest",
2555 )
2556 }
2557 fn visit_map<V>(
2558 self,
2559 mut map_: V,
2560 ) -> std::result::Result<GetLegalDocumentRequest, V::Error>
2561 where
2562 V: serde::de::MapAccess<'de>,
2563 {
2564 let mut name__ = None;
2565 while let Some(k) = map_.next_key()? {
2566 match k {
2567 GeneratedField::Name => {
2568 if name__.is_some() {
2569 return Err(serde::de::Error::duplicate_field("name"));
2570 }
2571 name__ = Some(map_.next_value()?);
2572 }
2573 GeneratedField::__SkipField__ => {
2574 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2575 }
2576 }
2577 }
2578 Ok(GetLegalDocumentRequest {
2579 name: name__.unwrap_or_default(),
2580 })
2581 }
2582 }
2583 deserializer
2584 .deserialize_struct(
2585 "origincloud.billing.v1beta1.GetLegalDocumentRequest",
2586 FIELDS,
2587 GeneratedVisitor,
2588 )
2589 }
2590}
2591impl serde::Serialize for GetLegalDocumentVersionRequest {
2592 #[allow(deprecated)]
2593 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2594 where
2595 S: serde::Serializer,
2596 {
2597 use serde::ser::SerializeStruct;
2598 let mut len = 0;
2599 if !self.name.is_empty() {
2600 len += 1;
2601 }
2602 let mut struct_ser = serializer
2603 .serialize_struct(
2604 "origincloud.billing.v1beta1.GetLegalDocumentVersionRequest",
2605 len,
2606 )?;
2607 if !self.name.is_empty() {
2608 struct_ser.serialize_field("name", &self.name)?;
2609 }
2610 struct_ser.end()
2611 }
2612}
2613impl<'de> serde::Deserialize<'de> for GetLegalDocumentVersionRequest {
2614 #[allow(deprecated)]
2615 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2616 where
2617 D: serde::Deserializer<'de>,
2618 {
2619 const FIELDS: &[&str] = &["name"];
2620 #[allow(clippy::enum_variant_names)]
2621 enum GeneratedField {
2622 Name,
2623 __SkipField__,
2624 }
2625 impl<'de> serde::Deserialize<'de> for GeneratedField {
2626 fn deserialize<D>(
2627 deserializer: D,
2628 ) -> std::result::Result<GeneratedField, D::Error>
2629 where
2630 D: serde::Deserializer<'de>,
2631 {
2632 struct GeneratedVisitor;
2633 impl serde::de::Visitor<'_> for GeneratedVisitor {
2634 type Value = GeneratedField;
2635 fn expecting(
2636 &self,
2637 formatter: &mut std::fmt::Formatter<'_>,
2638 ) -> std::fmt::Result {
2639 write!(formatter, "expected one of: {:?}", & FIELDS)
2640 }
2641 #[allow(unused_variables)]
2642 fn visit_str<E>(
2643 self,
2644 value: &str,
2645 ) -> std::result::Result<GeneratedField, E>
2646 where
2647 E: serde::de::Error,
2648 {
2649 match value {
2650 "name" => Ok(GeneratedField::Name),
2651 _ => Ok(GeneratedField::__SkipField__),
2652 }
2653 }
2654 }
2655 deserializer.deserialize_identifier(GeneratedVisitor)
2656 }
2657 }
2658 struct GeneratedVisitor;
2659 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2660 type Value = GetLegalDocumentVersionRequest;
2661 fn expecting(
2662 &self,
2663 formatter: &mut std::fmt::Formatter<'_>,
2664 ) -> std::fmt::Result {
2665 formatter
2666 .write_str(
2667 "struct origincloud.billing.v1beta1.GetLegalDocumentVersionRequest",
2668 )
2669 }
2670 fn visit_map<V>(
2671 self,
2672 mut map_: V,
2673 ) -> std::result::Result<GetLegalDocumentVersionRequest, V::Error>
2674 where
2675 V: serde::de::MapAccess<'de>,
2676 {
2677 let mut name__ = None;
2678 while let Some(k) = map_.next_key()? {
2679 match k {
2680 GeneratedField::Name => {
2681 if name__.is_some() {
2682 return Err(serde::de::Error::duplicate_field("name"));
2683 }
2684 name__ = Some(map_.next_value()?);
2685 }
2686 GeneratedField::__SkipField__ => {
2687 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2688 }
2689 }
2690 }
2691 Ok(GetLegalDocumentVersionRequest {
2692 name: name__.unwrap_or_default(),
2693 })
2694 }
2695 }
2696 deserializer
2697 .deserialize_struct(
2698 "origincloud.billing.v1beta1.GetLegalDocumentVersionRequest",
2699 FIELDS,
2700 GeneratedVisitor,
2701 )
2702 }
2703}
2704impl serde::Serialize for GetPriceListRequest {
2705 #[allow(deprecated)]
2706 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2707 where
2708 S: serde::Serializer,
2709 {
2710 use serde::ser::SerializeStruct;
2711 let len = 0;
2712 let struct_ser = serializer
2713 .serialize_struct("origincloud.billing.v1beta1.GetPriceListRequest", len)?;
2714 struct_ser.end()
2715 }
2716}
2717impl<'de> serde::Deserialize<'de> for GetPriceListRequest {
2718 #[allow(deprecated)]
2719 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2720 where
2721 D: serde::Deserializer<'de>,
2722 {
2723 const FIELDS: &[&str] = &[];
2724 #[allow(clippy::enum_variant_names)]
2725 enum GeneratedField {
2726 __SkipField__,
2727 }
2728 impl<'de> serde::Deserialize<'de> for GeneratedField {
2729 fn deserialize<D>(
2730 deserializer: D,
2731 ) -> std::result::Result<GeneratedField, D::Error>
2732 where
2733 D: serde::Deserializer<'de>,
2734 {
2735 struct GeneratedVisitor;
2736 impl serde::de::Visitor<'_> for GeneratedVisitor {
2737 type Value = GeneratedField;
2738 fn expecting(
2739 &self,
2740 formatter: &mut std::fmt::Formatter<'_>,
2741 ) -> std::fmt::Result {
2742 write!(formatter, "expected one of: {:?}", & FIELDS)
2743 }
2744 #[allow(unused_variables)]
2745 fn visit_str<E>(
2746 self,
2747 value: &str,
2748 ) -> std::result::Result<GeneratedField, E>
2749 where
2750 E: serde::de::Error,
2751 {
2752 Ok(GeneratedField::__SkipField__)
2753 }
2754 }
2755 deserializer.deserialize_identifier(GeneratedVisitor)
2756 }
2757 }
2758 struct GeneratedVisitor;
2759 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2760 type Value = GetPriceListRequest;
2761 fn expecting(
2762 &self,
2763 formatter: &mut std::fmt::Formatter<'_>,
2764 ) -> std::fmt::Result {
2765 formatter
2766 .write_str("struct origincloud.billing.v1beta1.GetPriceListRequest")
2767 }
2768 fn visit_map<V>(
2769 self,
2770 mut map_: V,
2771 ) -> std::result::Result<GetPriceListRequest, V::Error>
2772 where
2773 V: serde::de::MapAccess<'de>,
2774 {
2775 while map_.next_key::<GeneratedField>()?.is_some() {
2776 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2777 }
2778 Ok(GetPriceListRequest {})
2779 }
2780 }
2781 deserializer
2782 .deserialize_struct(
2783 "origincloud.billing.v1beta1.GetPriceListRequest",
2784 FIELDS,
2785 GeneratedVisitor,
2786 )
2787 }
2788}
2789impl serde::Serialize for GetProjectBillingInfoRequest {
2790 #[allow(deprecated)]
2791 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2792 where
2793 S: serde::Serializer,
2794 {
2795 use serde::ser::SerializeStruct;
2796 let mut len = 0;
2797 if !self.name.is_empty() {
2798 len += 1;
2799 }
2800 let mut struct_ser = serializer
2801 .serialize_struct(
2802 "origincloud.billing.v1beta1.GetProjectBillingInfoRequest",
2803 len,
2804 )?;
2805 if !self.name.is_empty() {
2806 struct_ser.serialize_field("name", &self.name)?;
2807 }
2808 struct_ser.end()
2809 }
2810}
2811impl<'de> serde::Deserialize<'de> for GetProjectBillingInfoRequest {
2812 #[allow(deprecated)]
2813 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2814 where
2815 D: serde::Deserializer<'de>,
2816 {
2817 const FIELDS: &[&str] = &["name"];
2818 #[allow(clippy::enum_variant_names)]
2819 enum GeneratedField {
2820 Name,
2821 __SkipField__,
2822 }
2823 impl<'de> serde::Deserialize<'de> for GeneratedField {
2824 fn deserialize<D>(
2825 deserializer: D,
2826 ) -> std::result::Result<GeneratedField, D::Error>
2827 where
2828 D: serde::Deserializer<'de>,
2829 {
2830 struct GeneratedVisitor;
2831 impl serde::de::Visitor<'_> for GeneratedVisitor {
2832 type Value = GeneratedField;
2833 fn expecting(
2834 &self,
2835 formatter: &mut std::fmt::Formatter<'_>,
2836 ) -> std::fmt::Result {
2837 write!(formatter, "expected one of: {:?}", & FIELDS)
2838 }
2839 #[allow(unused_variables)]
2840 fn visit_str<E>(
2841 self,
2842 value: &str,
2843 ) -> std::result::Result<GeneratedField, E>
2844 where
2845 E: serde::de::Error,
2846 {
2847 match value {
2848 "name" => Ok(GeneratedField::Name),
2849 _ => Ok(GeneratedField::__SkipField__),
2850 }
2851 }
2852 }
2853 deserializer.deserialize_identifier(GeneratedVisitor)
2854 }
2855 }
2856 struct GeneratedVisitor;
2857 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2858 type Value = GetProjectBillingInfoRequest;
2859 fn expecting(
2860 &self,
2861 formatter: &mut std::fmt::Formatter<'_>,
2862 ) -> std::fmt::Result {
2863 formatter
2864 .write_str(
2865 "struct origincloud.billing.v1beta1.GetProjectBillingInfoRequest",
2866 )
2867 }
2868 fn visit_map<V>(
2869 self,
2870 mut map_: V,
2871 ) -> std::result::Result<GetProjectBillingInfoRequest, V::Error>
2872 where
2873 V: serde::de::MapAccess<'de>,
2874 {
2875 let mut name__ = None;
2876 while let Some(k) = map_.next_key()? {
2877 match k {
2878 GeneratedField::Name => {
2879 if name__.is_some() {
2880 return Err(serde::de::Error::duplicate_field("name"));
2881 }
2882 name__ = Some(map_.next_value()?);
2883 }
2884 GeneratedField::__SkipField__ => {
2885 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2886 }
2887 }
2888 }
2889 Ok(GetProjectBillingInfoRequest {
2890 name: name__.unwrap_or_default(),
2891 })
2892 }
2893 }
2894 deserializer
2895 .deserialize_struct(
2896 "origincloud.billing.v1beta1.GetProjectBillingInfoRequest",
2897 FIELDS,
2898 GeneratedVisitor,
2899 )
2900 }
2901}
2902impl serde::Serialize for GetSpendLimitRequest {
2903 #[allow(deprecated)]
2904 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2905 where
2906 S: serde::Serializer,
2907 {
2908 use serde::ser::SerializeStruct;
2909 let mut len = 0;
2910 if !self.name.is_empty() {
2911 len += 1;
2912 }
2913 let mut struct_ser = serializer
2914 .serialize_struct("origincloud.billing.v1beta1.GetSpendLimitRequest", len)?;
2915 if !self.name.is_empty() {
2916 struct_ser.serialize_field("name", &self.name)?;
2917 }
2918 struct_ser.end()
2919 }
2920}
2921impl<'de> serde::Deserialize<'de> for GetSpendLimitRequest {
2922 #[allow(deprecated)]
2923 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2924 where
2925 D: serde::Deserializer<'de>,
2926 {
2927 const FIELDS: &[&str] = &["name"];
2928 #[allow(clippy::enum_variant_names)]
2929 enum GeneratedField {
2930 Name,
2931 __SkipField__,
2932 }
2933 impl<'de> serde::Deserialize<'de> for GeneratedField {
2934 fn deserialize<D>(
2935 deserializer: D,
2936 ) -> std::result::Result<GeneratedField, D::Error>
2937 where
2938 D: serde::Deserializer<'de>,
2939 {
2940 struct GeneratedVisitor;
2941 impl serde::de::Visitor<'_> for GeneratedVisitor {
2942 type Value = GeneratedField;
2943 fn expecting(
2944 &self,
2945 formatter: &mut std::fmt::Formatter<'_>,
2946 ) -> std::fmt::Result {
2947 write!(formatter, "expected one of: {:?}", & FIELDS)
2948 }
2949 #[allow(unused_variables)]
2950 fn visit_str<E>(
2951 self,
2952 value: &str,
2953 ) -> std::result::Result<GeneratedField, E>
2954 where
2955 E: serde::de::Error,
2956 {
2957 match value {
2958 "name" => Ok(GeneratedField::Name),
2959 _ => Ok(GeneratedField::__SkipField__),
2960 }
2961 }
2962 }
2963 deserializer.deserialize_identifier(GeneratedVisitor)
2964 }
2965 }
2966 struct GeneratedVisitor;
2967 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2968 type Value = GetSpendLimitRequest;
2969 fn expecting(
2970 &self,
2971 formatter: &mut std::fmt::Formatter<'_>,
2972 ) -> std::fmt::Result {
2973 formatter
2974 .write_str("struct origincloud.billing.v1beta1.GetSpendLimitRequest")
2975 }
2976 fn visit_map<V>(
2977 self,
2978 mut map_: V,
2979 ) -> std::result::Result<GetSpendLimitRequest, V::Error>
2980 where
2981 V: serde::de::MapAccess<'de>,
2982 {
2983 let mut name__ = None;
2984 while let Some(k) = map_.next_key()? {
2985 match k {
2986 GeneratedField::Name => {
2987 if name__.is_some() {
2988 return Err(serde::de::Error::duplicate_field("name"));
2989 }
2990 name__ = Some(map_.next_value()?);
2991 }
2992 GeneratedField::__SkipField__ => {
2993 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2994 }
2995 }
2996 }
2997 Ok(GetSpendLimitRequest {
2998 name: name__.unwrap_or_default(),
2999 })
3000 }
3001 }
3002 deserializer
3003 .deserialize_struct(
3004 "origincloud.billing.v1beta1.GetSpendLimitRequest",
3005 FIELDS,
3006 GeneratedVisitor,
3007 )
3008 }
3009}
3010impl serde::Serialize for Granularity {
3011 #[allow(deprecated)]
3012 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3013 where
3014 S: serde::Serializer,
3015 {
3016 let variant = match self {
3017 Self::Unspecified => "GRANULARITY_UNSPECIFIED",
3018 Self::Hourly => "HOURLY",
3019 Self::Daily => "DAILY",
3020 };
3021 serializer.serialize_str(variant)
3022 }
3023}
3024impl<'de> serde::Deserialize<'de> for Granularity {
3025 #[allow(deprecated)]
3026 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3027 where
3028 D: serde::Deserializer<'de>,
3029 {
3030 const FIELDS: &[&str] = &["GRANULARITY_UNSPECIFIED", "HOURLY", "DAILY"];
3031 struct GeneratedVisitor;
3032 impl serde::de::Visitor<'_> for GeneratedVisitor {
3033 type Value = Granularity;
3034 fn expecting(
3035 &self,
3036 formatter: &mut std::fmt::Formatter<'_>,
3037 ) -> std::fmt::Result {
3038 write!(formatter, "expected one of: {:?}", & FIELDS)
3039 }
3040 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
3041 where
3042 E: serde::de::Error,
3043 {
3044 i32::try_from(v)
3045 .ok()
3046 .and_then(|x| {
3047 x.try_into().ok().or_else(|| Some(Granularity::default()))
3048 })
3049 .ok_or_else(|| {
3050 serde::de::Error::invalid_value(
3051 serde::de::Unexpected::Signed(v),
3052 &self,
3053 )
3054 })
3055 }
3056 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
3057 where
3058 E: serde::de::Error,
3059 {
3060 i32::try_from(v)
3061 .ok()
3062 .and_then(|x| {
3063 x.try_into().ok().or_else(|| Some(Granularity::default()))
3064 })
3065 .ok_or_else(|| {
3066 serde::de::Error::invalid_value(
3067 serde::de::Unexpected::Unsigned(v),
3068 &self,
3069 )
3070 })
3071 }
3072 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
3073 where
3074 E: serde::de::Error,
3075 {
3076 match value {
3077 "GRANULARITY_UNSPECIFIED" => Ok(Granularity::Unspecified),
3078 "HOURLY" => Ok(Granularity::Hourly),
3079 "DAILY" => Ok(Granularity::Daily),
3080 _ => Ok(Granularity::default()),
3081 }
3082 }
3083 }
3084 deserializer.deserialize_any(GeneratedVisitor)
3085 }
3086}
3087impl serde::Serialize for LegalDocument {
3088 #[allow(deprecated)]
3089 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3090 where
3091 S: serde::Serializer,
3092 {
3093 use serde::ser::SerializeStruct;
3094 let mut len = 0;
3095 if !self.name.is_empty() {
3096 len += 1;
3097 }
3098 if !self.display_name.is_empty() {
3099 len += 1;
3100 }
3101 if self.acceptance_required {
3102 len += 1;
3103 }
3104 if !self.current_version.is_empty() {
3105 len += 1;
3106 }
3107 if !self.latest_version.is_empty() {
3108 len += 1;
3109 }
3110 let mut struct_ser = serializer
3111 .serialize_struct("origincloud.billing.v1beta1.LegalDocument", len)?;
3112 if !self.name.is_empty() {
3113 struct_ser.serialize_field("name", &self.name)?;
3114 }
3115 if !self.display_name.is_empty() {
3116 struct_ser.serialize_field("displayName", &self.display_name)?;
3117 }
3118 if self.acceptance_required {
3119 struct_ser.serialize_field("acceptanceRequired", &self.acceptance_required)?;
3120 }
3121 if !self.current_version.is_empty() {
3122 struct_ser.serialize_field("currentVersion", &self.current_version)?;
3123 }
3124 if !self.latest_version.is_empty() {
3125 struct_ser.serialize_field("latestVersion", &self.latest_version)?;
3126 }
3127 struct_ser.end()
3128 }
3129}
3130impl<'de> serde::Deserialize<'de> for LegalDocument {
3131 #[allow(deprecated)]
3132 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3133 where
3134 D: serde::Deserializer<'de>,
3135 {
3136 const FIELDS: &[&str] = &[
3137 "name",
3138 "display_name",
3139 "displayName",
3140 "acceptance_required",
3141 "acceptanceRequired",
3142 "current_version",
3143 "currentVersion",
3144 "latest_version",
3145 "latestVersion",
3146 ];
3147 #[allow(clippy::enum_variant_names)]
3148 enum GeneratedField {
3149 Name,
3150 DisplayName,
3151 AcceptanceRequired,
3152 CurrentVersion,
3153 LatestVersion,
3154 __SkipField__,
3155 }
3156 impl<'de> serde::Deserialize<'de> for GeneratedField {
3157 fn deserialize<D>(
3158 deserializer: D,
3159 ) -> std::result::Result<GeneratedField, D::Error>
3160 where
3161 D: serde::Deserializer<'de>,
3162 {
3163 struct GeneratedVisitor;
3164 impl serde::de::Visitor<'_> for GeneratedVisitor {
3165 type Value = GeneratedField;
3166 fn expecting(
3167 &self,
3168 formatter: &mut std::fmt::Formatter<'_>,
3169 ) -> std::fmt::Result {
3170 write!(formatter, "expected one of: {:?}", & FIELDS)
3171 }
3172 #[allow(unused_variables)]
3173 fn visit_str<E>(
3174 self,
3175 value: &str,
3176 ) -> std::result::Result<GeneratedField, E>
3177 where
3178 E: serde::de::Error,
3179 {
3180 match value {
3181 "name" => Ok(GeneratedField::Name),
3182 "displayName" | "display_name" => {
3183 Ok(GeneratedField::DisplayName)
3184 }
3185 "acceptanceRequired" | "acceptance_required" => {
3186 Ok(GeneratedField::AcceptanceRequired)
3187 }
3188 "currentVersion" | "current_version" => {
3189 Ok(GeneratedField::CurrentVersion)
3190 }
3191 "latestVersion" | "latest_version" => {
3192 Ok(GeneratedField::LatestVersion)
3193 }
3194 _ => Ok(GeneratedField::__SkipField__),
3195 }
3196 }
3197 }
3198 deserializer.deserialize_identifier(GeneratedVisitor)
3199 }
3200 }
3201 struct GeneratedVisitor;
3202 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3203 type Value = LegalDocument;
3204 fn expecting(
3205 &self,
3206 formatter: &mut std::fmt::Formatter<'_>,
3207 ) -> std::fmt::Result {
3208 formatter.write_str("struct origincloud.billing.v1beta1.LegalDocument")
3209 }
3210 fn visit_map<V>(
3211 self,
3212 mut map_: V,
3213 ) -> std::result::Result<LegalDocument, V::Error>
3214 where
3215 V: serde::de::MapAccess<'de>,
3216 {
3217 let mut name__ = None;
3218 let mut display_name__ = None;
3219 let mut acceptance_required__ = None;
3220 let mut current_version__ = None;
3221 let mut latest_version__ = None;
3222 while let Some(k) = map_.next_key()? {
3223 match k {
3224 GeneratedField::Name => {
3225 if name__.is_some() {
3226 return Err(serde::de::Error::duplicate_field("name"));
3227 }
3228 name__ = Some(map_.next_value()?);
3229 }
3230 GeneratedField::DisplayName => {
3231 if display_name__.is_some() {
3232 return Err(
3233 serde::de::Error::duplicate_field("displayName"),
3234 );
3235 }
3236 display_name__ = Some(map_.next_value()?);
3237 }
3238 GeneratedField::AcceptanceRequired => {
3239 if acceptance_required__.is_some() {
3240 return Err(
3241 serde::de::Error::duplicate_field("acceptanceRequired"),
3242 );
3243 }
3244 acceptance_required__ = Some(map_.next_value()?);
3245 }
3246 GeneratedField::CurrentVersion => {
3247 if current_version__.is_some() {
3248 return Err(
3249 serde::de::Error::duplicate_field("currentVersion"),
3250 );
3251 }
3252 current_version__ = Some(map_.next_value()?);
3253 }
3254 GeneratedField::LatestVersion => {
3255 if latest_version__.is_some() {
3256 return Err(
3257 serde::de::Error::duplicate_field("latestVersion"),
3258 );
3259 }
3260 latest_version__ = Some(map_.next_value()?);
3261 }
3262 GeneratedField::__SkipField__ => {
3263 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3264 }
3265 }
3266 }
3267 Ok(LegalDocument {
3268 name: name__.unwrap_or_default(),
3269 display_name: display_name__.unwrap_or_default(),
3270 acceptance_required: acceptance_required__.unwrap_or_default(),
3271 current_version: current_version__.unwrap_or_default(),
3272 latest_version: latest_version__.unwrap_or_default(),
3273 })
3274 }
3275 }
3276 deserializer
3277 .deserialize_struct(
3278 "origincloud.billing.v1beta1.LegalDocument",
3279 FIELDS,
3280 GeneratedVisitor,
3281 )
3282 }
3283}
3284impl serde::Serialize for LegalDocumentVersion {
3285 #[allow(deprecated)]
3286 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3287 where
3288 S: serde::Serializer,
3289 {
3290 use serde::ser::SerializeStruct;
3291 let mut len = 0;
3292 if !self.name.is_empty() {
3293 len += 1;
3294 }
3295 if !self.display_name.is_empty() {
3296 len += 1;
3297 }
3298 if self.effective_date.is_some() {
3299 len += 1;
3300 }
3301 if self.change_class != 0 {
3302 len += 1;
3303 }
3304 if !self.change_summary.is_empty() {
3305 len += 1;
3306 }
3307 if !self.sha256.is_empty() {
3308 len += 1;
3309 }
3310 if !self.markdown.is_empty() {
3311 len += 1;
3312 }
3313 if !self.html.is_empty() {
3314 len += 1;
3315 }
3316 if !self.uri.is_empty() {
3317 len += 1;
3318 }
3319 if !self.pdf_uri.is_empty() {
3320 len += 1;
3321 }
3322 let mut struct_ser = serializer
3323 .serialize_struct("origincloud.billing.v1beta1.LegalDocumentVersion", len)?;
3324 if !self.name.is_empty() {
3325 struct_ser.serialize_field("name", &self.name)?;
3326 }
3327 if !self.display_name.is_empty() {
3328 struct_ser.serialize_field("displayName", &self.display_name)?;
3329 }
3330 if let Some(v) = self.effective_date.as_ref() {
3331 struct_ser.serialize_field("effectiveDate", v)?;
3332 }
3333 if self.change_class != 0 {
3334 let v = legal_document_version::ChangeClass::try_from(self.change_class)
3335 .map_err(|_| serde::ser::Error::custom(
3336 format!("Invalid variant {}", self.change_class),
3337 ))?;
3338 struct_ser.serialize_field("changeClass", &v)?;
3339 }
3340 if !self.change_summary.is_empty() {
3341 struct_ser.serialize_field("changeSummary", &self.change_summary)?;
3342 }
3343 if !self.sha256.is_empty() {
3344 struct_ser.serialize_field("sha256", &self.sha256)?;
3345 }
3346 if !self.markdown.is_empty() {
3347 struct_ser.serialize_field("markdown", &self.markdown)?;
3348 }
3349 if !self.html.is_empty() {
3350 struct_ser.serialize_field("html", &self.html)?;
3351 }
3352 if !self.uri.is_empty() {
3353 struct_ser.serialize_field("uri", &self.uri)?;
3354 }
3355 if !self.pdf_uri.is_empty() {
3356 struct_ser.serialize_field("pdfUri", &self.pdf_uri)?;
3357 }
3358 struct_ser.end()
3359 }
3360}
3361impl<'de> serde::Deserialize<'de> for LegalDocumentVersion {
3362 #[allow(deprecated)]
3363 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3364 where
3365 D: serde::Deserializer<'de>,
3366 {
3367 const FIELDS: &[&str] = &[
3368 "name",
3369 "display_name",
3370 "displayName",
3371 "effective_date",
3372 "effectiveDate",
3373 "change_class",
3374 "changeClass",
3375 "change_summary",
3376 "changeSummary",
3377 "sha256",
3378 "markdown",
3379 "html",
3380 "uri",
3381 "pdf_uri",
3382 "pdfUri",
3383 ];
3384 #[allow(clippy::enum_variant_names)]
3385 enum GeneratedField {
3386 Name,
3387 DisplayName,
3388 EffectiveDate,
3389 ChangeClass,
3390 ChangeSummary,
3391 Sha256,
3392 Markdown,
3393 Html,
3394 Uri,
3395 PdfUri,
3396 __SkipField__,
3397 }
3398 impl<'de> serde::Deserialize<'de> for GeneratedField {
3399 fn deserialize<D>(
3400 deserializer: D,
3401 ) -> std::result::Result<GeneratedField, D::Error>
3402 where
3403 D: serde::Deserializer<'de>,
3404 {
3405 struct GeneratedVisitor;
3406 impl serde::de::Visitor<'_> for GeneratedVisitor {
3407 type Value = GeneratedField;
3408 fn expecting(
3409 &self,
3410 formatter: &mut std::fmt::Formatter<'_>,
3411 ) -> std::fmt::Result {
3412 write!(formatter, "expected one of: {:?}", & FIELDS)
3413 }
3414 #[allow(unused_variables)]
3415 fn visit_str<E>(
3416 self,
3417 value: &str,
3418 ) -> std::result::Result<GeneratedField, E>
3419 where
3420 E: serde::de::Error,
3421 {
3422 match value {
3423 "name" => Ok(GeneratedField::Name),
3424 "displayName" | "display_name" => {
3425 Ok(GeneratedField::DisplayName)
3426 }
3427 "effectiveDate" | "effective_date" => {
3428 Ok(GeneratedField::EffectiveDate)
3429 }
3430 "changeClass" | "change_class" => {
3431 Ok(GeneratedField::ChangeClass)
3432 }
3433 "changeSummary" | "change_summary" => {
3434 Ok(GeneratedField::ChangeSummary)
3435 }
3436 "sha256" => Ok(GeneratedField::Sha256),
3437 "markdown" => Ok(GeneratedField::Markdown),
3438 "html" => Ok(GeneratedField::Html),
3439 "uri" => Ok(GeneratedField::Uri),
3440 "pdfUri" | "pdf_uri" => Ok(GeneratedField::PdfUri),
3441 _ => Ok(GeneratedField::__SkipField__),
3442 }
3443 }
3444 }
3445 deserializer.deserialize_identifier(GeneratedVisitor)
3446 }
3447 }
3448 struct GeneratedVisitor;
3449 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3450 type Value = LegalDocumentVersion;
3451 fn expecting(
3452 &self,
3453 formatter: &mut std::fmt::Formatter<'_>,
3454 ) -> std::fmt::Result {
3455 formatter
3456 .write_str("struct origincloud.billing.v1beta1.LegalDocumentVersion")
3457 }
3458 fn visit_map<V>(
3459 self,
3460 mut map_: V,
3461 ) -> std::result::Result<LegalDocumentVersion, V::Error>
3462 where
3463 V: serde::de::MapAccess<'de>,
3464 {
3465 let mut name__ = None;
3466 let mut display_name__ = None;
3467 let mut effective_date__ = None;
3468 let mut change_class__ = None;
3469 let mut change_summary__ = None;
3470 let mut sha256__ = None;
3471 let mut markdown__ = None;
3472 let mut html__ = None;
3473 let mut uri__ = None;
3474 let mut pdf_uri__ = None;
3475 while let Some(k) = map_.next_key()? {
3476 match k {
3477 GeneratedField::Name => {
3478 if name__.is_some() {
3479 return Err(serde::de::Error::duplicate_field("name"));
3480 }
3481 name__ = Some(map_.next_value()?);
3482 }
3483 GeneratedField::DisplayName => {
3484 if display_name__.is_some() {
3485 return Err(
3486 serde::de::Error::duplicate_field("displayName"),
3487 );
3488 }
3489 display_name__ = Some(map_.next_value()?);
3490 }
3491 GeneratedField::EffectiveDate => {
3492 if effective_date__.is_some() {
3493 return Err(
3494 serde::de::Error::duplicate_field("effectiveDate"),
3495 );
3496 }
3497 effective_date__ = map_.next_value()?;
3498 }
3499 GeneratedField::ChangeClass => {
3500 if change_class__.is_some() {
3501 return Err(
3502 serde::de::Error::duplicate_field("changeClass"),
3503 );
3504 }
3505 change_class__ = Some(
3506 map_.next_value::<legal_document_version::ChangeClass>()?
3507 as i32,
3508 );
3509 }
3510 GeneratedField::ChangeSummary => {
3511 if change_summary__.is_some() {
3512 return Err(
3513 serde::de::Error::duplicate_field("changeSummary"),
3514 );
3515 }
3516 change_summary__ = Some(map_.next_value()?);
3517 }
3518 GeneratedField::Sha256 => {
3519 if sha256__.is_some() {
3520 return Err(serde::de::Error::duplicate_field("sha256"));
3521 }
3522 sha256__ = Some(map_.next_value()?);
3523 }
3524 GeneratedField::Markdown => {
3525 if markdown__.is_some() {
3526 return Err(serde::de::Error::duplicate_field("markdown"));
3527 }
3528 markdown__ = Some(map_.next_value()?);
3529 }
3530 GeneratedField::Html => {
3531 if html__.is_some() {
3532 return Err(serde::de::Error::duplicate_field("html"));
3533 }
3534 html__ = Some(map_.next_value()?);
3535 }
3536 GeneratedField::Uri => {
3537 if uri__.is_some() {
3538 return Err(serde::de::Error::duplicate_field("uri"));
3539 }
3540 uri__ = Some(map_.next_value()?);
3541 }
3542 GeneratedField::PdfUri => {
3543 if pdf_uri__.is_some() {
3544 return Err(serde::de::Error::duplicate_field("pdfUri"));
3545 }
3546 pdf_uri__ = Some(map_.next_value()?);
3547 }
3548 GeneratedField::__SkipField__ => {
3549 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3550 }
3551 }
3552 }
3553 Ok(LegalDocumentVersion {
3554 name: name__.unwrap_or_default(),
3555 display_name: display_name__.unwrap_or_default(),
3556 effective_date: effective_date__,
3557 change_class: change_class__.unwrap_or_default(),
3558 change_summary: change_summary__.unwrap_or_default(),
3559 sha256: sha256__.unwrap_or_default(),
3560 markdown: markdown__.unwrap_or_default(),
3561 html: html__.unwrap_or_default(),
3562 uri: uri__.unwrap_or_default(),
3563 pdf_uri: pdf_uri__.unwrap_or_default(),
3564 })
3565 }
3566 }
3567 deserializer
3568 .deserialize_struct(
3569 "origincloud.billing.v1beta1.LegalDocumentVersion",
3570 FIELDS,
3571 GeneratedVisitor,
3572 )
3573 }
3574}
3575impl serde::Serialize for legal_document_version::ChangeClass {
3576 #[allow(deprecated)]
3577 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3578 where
3579 S: serde::Serializer,
3580 {
3581 let variant = match self {
3582 Self::Unspecified => "CHANGE_CLASS_UNSPECIFIED",
3583 Self::Material => "MATERIAL",
3584 Self::Notice => "NOTICE",
3585 Self::Editorial => "EDITORIAL",
3586 };
3587 serializer.serialize_str(variant)
3588 }
3589}
3590impl<'de> serde::Deserialize<'de> for legal_document_version::ChangeClass {
3591 #[allow(deprecated)]
3592 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3593 where
3594 D: serde::Deserializer<'de>,
3595 {
3596 const FIELDS: &[&str] = &[
3597 "CHANGE_CLASS_UNSPECIFIED",
3598 "MATERIAL",
3599 "NOTICE",
3600 "EDITORIAL",
3601 ];
3602 struct GeneratedVisitor;
3603 impl serde::de::Visitor<'_> for GeneratedVisitor {
3604 type Value = legal_document_version::ChangeClass;
3605 fn expecting(
3606 &self,
3607 formatter: &mut std::fmt::Formatter<'_>,
3608 ) -> std::fmt::Result {
3609 write!(formatter, "expected one of: {:?}", & FIELDS)
3610 }
3611 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
3612 where
3613 E: serde::de::Error,
3614 {
3615 i32::try_from(v)
3616 .ok()
3617 .and_then(|x| {
3618 x
3619 .try_into()
3620 .ok()
3621 .or_else(|| Some(
3622 legal_document_version::ChangeClass::default(),
3623 ))
3624 })
3625 .ok_or_else(|| {
3626 serde::de::Error::invalid_value(
3627 serde::de::Unexpected::Signed(v),
3628 &self,
3629 )
3630 })
3631 }
3632 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
3633 where
3634 E: serde::de::Error,
3635 {
3636 i32::try_from(v)
3637 .ok()
3638 .and_then(|x| {
3639 x
3640 .try_into()
3641 .ok()
3642 .or_else(|| Some(
3643 legal_document_version::ChangeClass::default(),
3644 ))
3645 })
3646 .ok_or_else(|| {
3647 serde::de::Error::invalid_value(
3648 serde::de::Unexpected::Unsigned(v),
3649 &self,
3650 )
3651 })
3652 }
3653 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
3654 where
3655 E: serde::de::Error,
3656 {
3657 match value {
3658 "CHANGE_CLASS_UNSPECIFIED" => {
3659 Ok(legal_document_version::ChangeClass::Unspecified)
3660 }
3661 "MATERIAL" => Ok(legal_document_version::ChangeClass::Material),
3662 "NOTICE" => Ok(legal_document_version::ChangeClass::Notice),
3663 "EDITORIAL" => Ok(legal_document_version::ChangeClass::Editorial),
3664 _ => Ok(legal_document_version::ChangeClass::default()),
3665 }
3666 }
3667 }
3668 deserializer.deserialize_any(GeneratedVisitor)
3669 }
3670}
3671impl serde::Serialize for ListBillingAccountsRequest {
3672 #[allow(deprecated)]
3673 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3674 where
3675 S: serde::Serializer,
3676 {
3677 use serde::ser::SerializeStruct;
3678 let mut len = 0;
3679 if !self.parent.is_empty() {
3680 len += 1;
3681 }
3682 if self.page_size != 0 {
3683 len += 1;
3684 }
3685 if !self.page_token.is_empty() {
3686 len += 1;
3687 }
3688 let mut struct_ser = serializer
3689 .serialize_struct(
3690 "origincloud.billing.v1beta1.ListBillingAccountsRequest",
3691 len,
3692 )?;
3693 if !self.parent.is_empty() {
3694 struct_ser.serialize_field("parent", &self.parent)?;
3695 }
3696 if self.page_size != 0 {
3697 struct_ser.serialize_field("pageSize", &self.page_size)?;
3698 }
3699 if !self.page_token.is_empty() {
3700 struct_ser.serialize_field("pageToken", &self.page_token)?;
3701 }
3702 struct_ser.end()
3703 }
3704}
3705impl<'de> serde::Deserialize<'de> for ListBillingAccountsRequest {
3706 #[allow(deprecated)]
3707 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3708 where
3709 D: serde::Deserializer<'de>,
3710 {
3711 const FIELDS: &[&str] = &[
3712 "parent",
3713 "page_size",
3714 "pageSize",
3715 "page_token",
3716 "pageToken",
3717 ];
3718 #[allow(clippy::enum_variant_names)]
3719 enum GeneratedField {
3720 Parent,
3721 PageSize,
3722 PageToken,
3723 __SkipField__,
3724 }
3725 impl<'de> serde::Deserialize<'de> for GeneratedField {
3726 fn deserialize<D>(
3727 deserializer: D,
3728 ) -> std::result::Result<GeneratedField, D::Error>
3729 where
3730 D: serde::Deserializer<'de>,
3731 {
3732 struct GeneratedVisitor;
3733 impl serde::de::Visitor<'_> for GeneratedVisitor {
3734 type Value = GeneratedField;
3735 fn expecting(
3736 &self,
3737 formatter: &mut std::fmt::Formatter<'_>,
3738 ) -> std::fmt::Result {
3739 write!(formatter, "expected one of: {:?}", & FIELDS)
3740 }
3741 #[allow(unused_variables)]
3742 fn visit_str<E>(
3743 self,
3744 value: &str,
3745 ) -> std::result::Result<GeneratedField, E>
3746 where
3747 E: serde::de::Error,
3748 {
3749 match value {
3750 "parent" => Ok(GeneratedField::Parent),
3751 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
3752 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
3753 _ => Ok(GeneratedField::__SkipField__),
3754 }
3755 }
3756 }
3757 deserializer.deserialize_identifier(GeneratedVisitor)
3758 }
3759 }
3760 struct GeneratedVisitor;
3761 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3762 type Value = ListBillingAccountsRequest;
3763 fn expecting(
3764 &self,
3765 formatter: &mut std::fmt::Formatter<'_>,
3766 ) -> std::fmt::Result {
3767 formatter
3768 .write_str(
3769 "struct origincloud.billing.v1beta1.ListBillingAccountsRequest",
3770 )
3771 }
3772 fn visit_map<V>(
3773 self,
3774 mut map_: V,
3775 ) -> std::result::Result<ListBillingAccountsRequest, V::Error>
3776 where
3777 V: serde::de::MapAccess<'de>,
3778 {
3779 let mut parent__ = None;
3780 let mut page_size__ = None;
3781 let mut page_token__ = None;
3782 while let Some(k) = map_.next_key()? {
3783 match k {
3784 GeneratedField::Parent => {
3785 if parent__.is_some() {
3786 return Err(serde::de::Error::duplicate_field("parent"));
3787 }
3788 parent__ = Some(map_.next_value()?);
3789 }
3790 GeneratedField::PageSize => {
3791 if page_size__.is_some() {
3792 return Err(serde::de::Error::duplicate_field("pageSize"));
3793 }
3794 page_size__ = Some(
3795 map_
3796 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3797 .0,
3798 );
3799 }
3800 GeneratedField::PageToken => {
3801 if page_token__.is_some() {
3802 return Err(serde::de::Error::duplicate_field("pageToken"));
3803 }
3804 page_token__ = Some(map_.next_value()?);
3805 }
3806 GeneratedField::__SkipField__ => {
3807 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3808 }
3809 }
3810 }
3811 Ok(ListBillingAccountsRequest {
3812 parent: parent__.unwrap_or_default(),
3813 page_size: page_size__.unwrap_or_default(),
3814 page_token: page_token__.unwrap_or_default(),
3815 })
3816 }
3817 }
3818 deserializer
3819 .deserialize_struct(
3820 "origincloud.billing.v1beta1.ListBillingAccountsRequest",
3821 FIELDS,
3822 GeneratedVisitor,
3823 )
3824 }
3825}
3826impl serde::Serialize for ListBillingAccountsResponse {
3827 #[allow(deprecated)]
3828 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3829 where
3830 S: serde::Serializer,
3831 {
3832 use serde::ser::SerializeStruct;
3833 let mut len = 0;
3834 if !self.billing_accounts.is_empty() {
3835 len += 1;
3836 }
3837 if !self.next_page_token.is_empty() {
3838 len += 1;
3839 }
3840 let mut struct_ser = serializer
3841 .serialize_struct(
3842 "origincloud.billing.v1beta1.ListBillingAccountsResponse",
3843 len,
3844 )?;
3845 if !self.billing_accounts.is_empty() {
3846 struct_ser.serialize_field("billingAccounts", &self.billing_accounts)?;
3847 }
3848 if !self.next_page_token.is_empty() {
3849 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
3850 }
3851 struct_ser.end()
3852 }
3853}
3854impl<'de> serde::Deserialize<'de> for ListBillingAccountsResponse {
3855 #[allow(deprecated)]
3856 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3857 where
3858 D: serde::Deserializer<'de>,
3859 {
3860 const FIELDS: &[&str] = &[
3861 "billing_accounts",
3862 "billingAccounts",
3863 "next_page_token",
3864 "nextPageToken",
3865 ];
3866 #[allow(clippy::enum_variant_names)]
3867 enum GeneratedField {
3868 BillingAccounts,
3869 NextPageToken,
3870 __SkipField__,
3871 }
3872 impl<'de> serde::Deserialize<'de> for GeneratedField {
3873 fn deserialize<D>(
3874 deserializer: D,
3875 ) -> std::result::Result<GeneratedField, D::Error>
3876 where
3877 D: serde::Deserializer<'de>,
3878 {
3879 struct GeneratedVisitor;
3880 impl serde::de::Visitor<'_> for GeneratedVisitor {
3881 type Value = GeneratedField;
3882 fn expecting(
3883 &self,
3884 formatter: &mut std::fmt::Formatter<'_>,
3885 ) -> std::fmt::Result {
3886 write!(formatter, "expected one of: {:?}", & FIELDS)
3887 }
3888 #[allow(unused_variables)]
3889 fn visit_str<E>(
3890 self,
3891 value: &str,
3892 ) -> std::result::Result<GeneratedField, E>
3893 where
3894 E: serde::de::Error,
3895 {
3896 match value {
3897 "billingAccounts" | "billing_accounts" => {
3898 Ok(GeneratedField::BillingAccounts)
3899 }
3900 "nextPageToken" | "next_page_token" => {
3901 Ok(GeneratedField::NextPageToken)
3902 }
3903 _ => Ok(GeneratedField::__SkipField__),
3904 }
3905 }
3906 }
3907 deserializer.deserialize_identifier(GeneratedVisitor)
3908 }
3909 }
3910 struct GeneratedVisitor;
3911 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3912 type Value = ListBillingAccountsResponse;
3913 fn expecting(
3914 &self,
3915 formatter: &mut std::fmt::Formatter<'_>,
3916 ) -> std::fmt::Result {
3917 formatter
3918 .write_str(
3919 "struct origincloud.billing.v1beta1.ListBillingAccountsResponse",
3920 )
3921 }
3922 fn visit_map<V>(
3923 self,
3924 mut map_: V,
3925 ) -> std::result::Result<ListBillingAccountsResponse, V::Error>
3926 where
3927 V: serde::de::MapAccess<'de>,
3928 {
3929 let mut billing_accounts__ = None;
3930 let mut next_page_token__ = None;
3931 while let Some(k) = map_.next_key()? {
3932 match k {
3933 GeneratedField::BillingAccounts => {
3934 if billing_accounts__.is_some() {
3935 return Err(
3936 serde::de::Error::duplicate_field("billingAccounts"),
3937 );
3938 }
3939 billing_accounts__ = Some(map_.next_value()?);
3940 }
3941 GeneratedField::NextPageToken => {
3942 if next_page_token__.is_some() {
3943 return Err(
3944 serde::de::Error::duplicate_field("nextPageToken"),
3945 );
3946 }
3947 next_page_token__ = Some(map_.next_value()?);
3948 }
3949 GeneratedField::__SkipField__ => {
3950 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3951 }
3952 }
3953 }
3954 Ok(ListBillingAccountsResponse {
3955 billing_accounts: billing_accounts__.unwrap_or_default(),
3956 next_page_token: next_page_token__.unwrap_or_default(),
3957 })
3958 }
3959 }
3960 deserializer
3961 .deserialize_struct(
3962 "origincloud.billing.v1beta1.ListBillingAccountsResponse",
3963 FIELDS,
3964 GeneratedVisitor,
3965 )
3966 }
3967}
3968impl serde::Serialize for ListBillingCountriesRequest {
3969 #[allow(deprecated)]
3970 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3971 where
3972 S: serde::Serializer,
3973 {
3974 use serde::ser::SerializeStruct;
3975 let mut len = 0;
3976 if self.page_size != 0 {
3977 len += 1;
3978 }
3979 if !self.page_token.is_empty() {
3980 len += 1;
3981 }
3982 let mut struct_ser = serializer
3983 .serialize_struct(
3984 "origincloud.billing.v1beta1.ListBillingCountriesRequest",
3985 len,
3986 )?;
3987 if self.page_size != 0 {
3988 struct_ser.serialize_field("pageSize", &self.page_size)?;
3989 }
3990 if !self.page_token.is_empty() {
3991 struct_ser.serialize_field("pageToken", &self.page_token)?;
3992 }
3993 struct_ser.end()
3994 }
3995}
3996impl<'de> serde::Deserialize<'de> for ListBillingCountriesRequest {
3997 #[allow(deprecated)]
3998 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3999 where
4000 D: serde::Deserializer<'de>,
4001 {
4002 const FIELDS: &[&str] = &["page_size", "pageSize", "page_token", "pageToken"];
4003 #[allow(clippy::enum_variant_names)]
4004 enum GeneratedField {
4005 PageSize,
4006 PageToken,
4007 __SkipField__,
4008 }
4009 impl<'de> serde::Deserialize<'de> for GeneratedField {
4010 fn deserialize<D>(
4011 deserializer: D,
4012 ) -> std::result::Result<GeneratedField, D::Error>
4013 where
4014 D: serde::Deserializer<'de>,
4015 {
4016 struct GeneratedVisitor;
4017 impl serde::de::Visitor<'_> for GeneratedVisitor {
4018 type Value = GeneratedField;
4019 fn expecting(
4020 &self,
4021 formatter: &mut std::fmt::Formatter<'_>,
4022 ) -> std::fmt::Result {
4023 write!(formatter, "expected one of: {:?}", & FIELDS)
4024 }
4025 #[allow(unused_variables)]
4026 fn visit_str<E>(
4027 self,
4028 value: &str,
4029 ) -> std::result::Result<GeneratedField, E>
4030 where
4031 E: serde::de::Error,
4032 {
4033 match value {
4034 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
4035 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
4036 _ => Ok(GeneratedField::__SkipField__),
4037 }
4038 }
4039 }
4040 deserializer.deserialize_identifier(GeneratedVisitor)
4041 }
4042 }
4043 struct GeneratedVisitor;
4044 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4045 type Value = ListBillingCountriesRequest;
4046 fn expecting(
4047 &self,
4048 formatter: &mut std::fmt::Formatter<'_>,
4049 ) -> std::fmt::Result {
4050 formatter
4051 .write_str(
4052 "struct origincloud.billing.v1beta1.ListBillingCountriesRequest",
4053 )
4054 }
4055 fn visit_map<V>(
4056 self,
4057 mut map_: V,
4058 ) -> std::result::Result<ListBillingCountriesRequest, V::Error>
4059 where
4060 V: serde::de::MapAccess<'de>,
4061 {
4062 let mut page_size__ = None;
4063 let mut page_token__ = None;
4064 while let Some(k) = map_.next_key()? {
4065 match k {
4066 GeneratedField::PageSize => {
4067 if page_size__.is_some() {
4068 return Err(serde::de::Error::duplicate_field("pageSize"));
4069 }
4070 page_size__ = Some(
4071 map_
4072 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4073 .0,
4074 );
4075 }
4076 GeneratedField::PageToken => {
4077 if page_token__.is_some() {
4078 return Err(serde::de::Error::duplicate_field("pageToken"));
4079 }
4080 page_token__ = Some(map_.next_value()?);
4081 }
4082 GeneratedField::__SkipField__ => {
4083 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4084 }
4085 }
4086 }
4087 Ok(ListBillingCountriesRequest {
4088 page_size: page_size__.unwrap_or_default(),
4089 page_token: page_token__.unwrap_or_default(),
4090 })
4091 }
4092 }
4093 deserializer
4094 .deserialize_struct(
4095 "origincloud.billing.v1beta1.ListBillingCountriesRequest",
4096 FIELDS,
4097 GeneratedVisitor,
4098 )
4099 }
4100}
4101impl serde::Serialize for ListBillingCountriesResponse {
4102 #[allow(deprecated)]
4103 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4104 where
4105 S: serde::Serializer,
4106 {
4107 use serde::ser::SerializeStruct;
4108 let mut len = 0;
4109 if !self.billing_countries.is_empty() {
4110 len += 1;
4111 }
4112 if !self.next_page_token.is_empty() {
4113 len += 1;
4114 }
4115 let mut struct_ser = serializer
4116 .serialize_struct(
4117 "origincloud.billing.v1beta1.ListBillingCountriesResponse",
4118 len,
4119 )?;
4120 if !self.billing_countries.is_empty() {
4121 struct_ser.serialize_field("billingCountries", &self.billing_countries)?;
4122 }
4123 if !self.next_page_token.is_empty() {
4124 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
4125 }
4126 struct_ser.end()
4127 }
4128}
4129impl<'de> serde::Deserialize<'de> for ListBillingCountriesResponse {
4130 #[allow(deprecated)]
4131 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4132 where
4133 D: serde::Deserializer<'de>,
4134 {
4135 const FIELDS: &[&str] = &[
4136 "billing_countries",
4137 "billingCountries",
4138 "next_page_token",
4139 "nextPageToken",
4140 ];
4141 #[allow(clippy::enum_variant_names)]
4142 enum GeneratedField {
4143 BillingCountries,
4144 NextPageToken,
4145 __SkipField__,
4146 }
4147 impl<'de> serde::Deserialize<'de> for GeneratedField {
4148 fn deserialize<D>(
4149 deserializer: D,
4150 ) -> std::result::Result<GeneratedField, D::Error>
4151 where
4152 D: serde::Deserializer<'de>,
4153 {
4154 struct GeneratedVisitor;
4155 impl serde::de::Visitor<'_> for GeneratedVisitor {
4156 type Value = GeneratedField;
4157 fn expecting(
4158 &self,
4159 formatter: &mut std::fmt::Formatter<'_>,
4160 ) -> std::fmt::Result {
4161 write!(formatter, "expected one of: {:?}", & FIELDS)
4162 }
4163 #[allow(unused_variables)]
4164 fn visit_str<E>(
4165 self,
4166 value: &str,
4167 ) -> std::result::Result<GeneratedField, E>
4168 where
4169 E: serde::de::Error,
4170 {
4171 match value {
4172 "billingCountries" | "billing_countries" => {
4173 Ok(GeneratedField::BillingCountries)
4174 }
4175 "nextPageToken" | "next_page_token" => {
4176 Ok(GeneratedField::NextPageToken)
4177 }
4178 _ => Ok(GeneratedField::__SkipField__),
4179 }
4180 }
4181 }
4182 deserializer.deserialize_identifier(GeneratedVisitor)
4183 }
4184 }
4185 struct GeneratedVisitor;
4186 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4187 type Value = ListBillingCountriesResponse;
4188 fn expecting(
4189 &self,
4190 formatter: &mut std::fmt::Formatter<'_>,
4191 ) -> std::fmt::Result {
4192 formatter
4193 .write_str(
4194 "struct origincloud.billing.v1beta1.ListBillingCountriesResponse",
4195 )
4196 }
4197 fn visit_map<V>(
4198 self,
4199 mut map_: V,
4200 ) -> std::result::Result<ListBillingCountriesResponse, V::Error>
4201 where
4202 V: serde::de::MapAccess<'de>,
4203 {
4204 let mut billing_countries__ = None;
4205 let mut next_page_token__ = None;
4206 while let Some(k) = map_.next_key()? {
4207 match k {
4208 GeneratedField::BillingCountries => {
4209 if billing_countries__.is_some() {
4210 return Err(
4211 serde::de::Error::duplicate_field("billingCountries"),
4212 );
4213 }
4214 billing_countries__ = Some(map_.next_value()?);
4215 }
4216 GeneratedField::NextPageToken => {
4217 if next_page_token__.is_some() {
4218 return Err(
4219 serde::de::Error::duplicate_field("nextPageToken"),
4220 );
4221 }
4222 next_page_token__ = Some(map_.next_value()?);
4223 }
4224 GeneratedField::__SkipField__ => {
4225 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4226 }
4227 }
4228 }
4229 Ok(ListBillingCountriesResponse {
4230 billing_countries: billing_countries__.unwrap_or_default(),
4231 next_page_token: next_page_token__.unwrap_or_default(),
4232 })
4233 }
4234 }
4235 deserializer
4236 .deserialize_struct(
4237 "origincloud.billing.v1beta1.ListBillingCountriesResponse",
4238 FIELDS,
4239 GeneratedVisitor,
4240 )
4241 }
4242}
4243impl serde::Serialize for ListLegalDocumentVersionsRequest {
4244 #[allow(deprecated)]
4245 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4246 where
4247 S: serde::Serializer,
4248 {
4249 use serde::ser::SerializeStruct;
4250 let mut len = 0;
4251 if !self.parent.is_empty() {
4252 len += 1;
4253 }
4254 if self.page_size != 0 {
4255 len += 1;
4256 }
4257 if !self.page_token.is_empty() {
4258 len += 1;
4259 }
4260 let mut struct_ser = serializer
4261 .serialize_struct(
4262 "origincloud.billing.v1beta1.ListLegalDocumentVersionsRequest",
4263 len,
4264 )?;
4265 if !self.parent.is_empty() {
4266 struct_ser.serialize_field("parent", &self.parent)?;
4267 }
4268 if self.page_size != 0 {
4269 struct_ser.serialize_field("pageSize", &self.page_size)?;
4270 }
4271 if !self.page_token.is_empty() {
4272 struct_ser.serialize_field("pageToken", &self.page_token)?;
4273 }
4274 struct_ser.end()
4275 }
4276}
4277impl<'de> serde::Deserialize<'de> for ListLegalDocumentVersionsRequest {
4278 #[allow(deprecated)]
4279 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4280 where
4281 D: serde::Deserializer<'de>,
4282 {
4283 const FIELDS: &[&str] = &[
4284 "parent",
4285 "page_size",
4286 "pageSize",
4287 "page_token",
4288 "pageToken",
4289 ];
4290 #[allow(clippy::enum_variant_names)]
4291 enum GeneratedField {
4292 Parent,
4293 PageSize,
4294 PageToken,
4295 __SkipField__,
4296 }
4297 impl<'de> serde::Deserialize<'de> for GeneratedField {
4298 fn deserialize<D>(
4299 deserializer: D,
4300 ) -> std::result::Result<GeneratedField, D::Error>
4301 where
4302 D: serde::Deserializer<'de>,
4303 {
4304 struct GeneratedVisitor;
4305 impl serde::de::Visitor<'_> for GeneratedVisitor {
4306 type Value = GeneratedField;
4307 fn expecting(
4308 &self,
4309 formatter: &mut std::fmt::Formatter<'_>,
4310 ) -> std::fmt::Result {
4311 write!(formatter, "expected one of: {:?}", & FIELDS)
4312 }
4313 #[allow(unused_variables)]
4314 fn visit_str<E>(
4315 self,
4316 value: &str,
4317 ) -> std::result::Result<GeneratedField, E>
4318 where
4319 E: serde::de::Error,
4320 {
4321 match value {
4322 "parent" => Ok(GeneratedField::Parent),
4323 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
4324 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
4325 _ => Ok(GeneratedField::__SkipField__),
4326 }
4327 }
4328 }
4329 deserializer.deserialize_identifier(GeneratedVisitor)
4330 }
4331 }
4332 struct GeneratedVisitor;
4333 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4334 type Value = ListLegalDocumentVersionsRequest;
4335 fn expecting(
4336 &self,
4337 formatter: &mut std::fmt::Formatter<'_>,
4338 ) -> std::fmt::Result {
4339 formatter
4340 .write_str(
4341 "struct origincloud.billing.v1beta1.ListLegalDocumentVersionsRequest",
4342 )
4343 }
4344 fn visit_map<V>(
4345 self,
4346 mut map_: V,
4347 ) -> std::result::Result<ListLegalDocumentVersionsRequest, V::Error>
4348 where
4349 V: serde::de::MapAccess<'de>,
4350 {
4351 let mut parent__ = None;
4352 let mut page_size__ = None;
4353 let mut page_token__ = None;
4354 while let Some(k) = map_.next_key()? {
4355 match k {
4356 GeneratedField::Parent => {
4357 if parent__.is_some() {
4358 return Err(serde::de::Error::duplicate_field("parent"));
4359 }
4360 parent__ = Some(map_.next_value()?);
4361 }
4362 GeneratedField::PageSize => {
4363 if page_size__.is_some() {
4364 return Err(serde::de::Error::duplicate_field("pageSize"));
4365 }
4366 page_size__ = Some(
4367 map_
4368 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4369 .0,
4370 );
4371 }
4372 GeneratedField::PageToken => {
4373 if page_token__.is_some() {
4374 return Err(serde::de::Error::duplicate_field("pageToken"));
4375 }
4376 page_token__ = Some(map_.next_value()?);
4377 }
4378 GeneratedField::__SkipField__ => {
4379 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4380 }
4381 }
4382 }
4383 Ok(ListLegalDocumentVersionsRequest {
4384 parent: parent__.unwrap_or_default(),
4385 page_size: page_size__.unwrap_or_default(),
4386 page_token: page_token__.unwrap_or_default(),
4387 })
4388 }
4389 }
4390 deserializer
4391 .deserialize_struct(
4392 "origincloud.billing.v1beta1.ListLegalDocumentVersionsRequest",
4393 FIELDS,
4394 GeneratedVisitor,
4395 )
4396 }
4397}
4398impl serde::Serialize for ListLegalDocumentVersionsResponse {
4399 #[allow(deprecated)]
4400 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4401 where
4402 S: serde::Serializer,
4403 {
4404 use serde::ser::SerializeStruct;
4405 let mut len = 0;
4406 if !self.legal_document_versions.is_empty() {
4407 len += 1;
4408 }
4409 if !self.next_page_token.is_empty() {
4410 len += 1;
4411 }
4412 let mut struct_ser = serializer
4413 .serialize_struct(
4414 "origincloud.billing.v1beta1.ListLegalDocumentVersionsResponse",
4415 len,
4416 )?;
4417 if !self.legal_document_versions.is_empty() {
4418 struct_ser
4419 .serialize_field(
4420 "legalDocumentVersions",
4421 &self.legal_document_versions,
4422 )?;
4423 }
4424 if !self.next_page_token.is_empty() {
4425 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
4426 }
4427 struct_ser.end()
4428 }
4429}
4430impl<'de> serde::Deserialize<'de> for ListLegalDocumentVersionsResponse {
4431 #[allow(deprecated)]
4432 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4433 where
4434 D: serde::Deserializer<'de>,
4435 {
4436 const FIELDS: &[&str] = &[
4437 "legal_document_versions",
4438 "legalDocumentVersions",
4439 "next_page_token",
4440 "nextPageToken",
4441 ];
4442 #[allow(clippy::enum_variant_names)]
4443 enum GeneratedField {
4444 LegalDocumentVersions,
4445 NextPageToken,
4446 __SkipField__,
4447 }
4448 impl<'de> serde::Deserialize<'de> for GeneratedField {
4449 fn deserialize<D>(
4450 deserializer: D,
4451 ) -> std::result::Result<GeneratedField, D::Error>
4452 where
4453 D: serde::Deserializer<'de>,
4454 {
4455 struct GeneratedVisitor;
4456 impl serde::de::Visitor<'_> for GeneratedVisitor {
4457 type Value = GeneratedField;
4458 fn expecting(
4459 &self,
4460 formatter: &mut std::fmt::Formatter<'_>,
4461 ) -> std::fmt::Result {
4462 write!(formatter, "expected one of: {:?}", & FIELDS)
4463 }
4464 #[allow(unused_variables)]
4465 fn visit_str<E>(
4466 self,
4467 value: &str,
4468 ) -> std::result::Result<GeneratedField, E>
4469 where
4470 E: serde::de::Error,
4471 {
4472 match value {
4473 "legalDocumentVersions" | "legal_document_versions" => {
4474 Ok(GeneratedField::LegalDocumentVersions)
4475 }
4476 "nextPageToken" | "next_page_token" => {
4477 Ok(GeneratedField::NextPageToken)
4478 }
4479 _ => Ok(GeneratedField::__SkipField__),
4480 }
4481 }
4482 }
4483 deserializer.deserialize_identifier(GeneratedVisitor)
4484 }
4485 }
4486 struct GeneratedVisitor;
4487 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4488 type Value = ListLegalDocumentVersionsResponse;
4489 fn expecting(
4490 &self,
4491 formatter: &mut std::fmt::Formatter<'_>,
4492 ) -> std::fmt::Result {
4493 formatter
4494 .write_str(
4495 "struct origincloud.billing.v1beta1.ListLegalDocumentVersionsResponse",
4496 )
4497 }
4498 fn visit_map<V>(
4499 self,
4500 mut map_: V,
4501 ) -> std::result::Result<ListLegalDocumentVersionsResponse, V::Error>
4502 where
4503 V: serde::de::MapAccess<'de>,
4504 {
4505 let mut legal_document_versions__ = None;
4506 let mut next_page_token__ = None;
4507 while let Some(k) = map_.next_key()? {
4508 match k {
4509 GeneratedField::LegalDocumentVersions => {
4510 if legal_document_versions__.is_some() {
4511 return Err(
4512 serde::de::Error::duplicate_field("legalDocumentVersions"),
4513 );
4514 }
4515 legal_document_versions__ = Some(map_.next_value()?);
4516 }
4517 GeneratedField::NextPageToken => {
4518 if next_page_token__.is_some() {
4519 return Err(
4520 serde::de::Error::duplicate_field("nextPageToken"),
4521 );
4522 }
4523 next_page_token__ = Some(map_.next_value()?);
4524 }
4525 GeneratedField::__SkipField__ => {
4526 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4527 }
4528 }
4529 }
4530 Ok(ListLegalDocumentVersionsResponse {
4531 legal_document_versions: legal_document_versions__
4532 .unwrap_or_default(),
4533 next_page_token: next_page_token__.unwrap_or_default(),
4534 })
4535 }
4536 }
4537 deserializer
4538 .deserialize_struct(
4539 "origincloud.billing.v1beta1.ListLegalDocumentVersionsResponse",
4540 FIELDS,
4541 GeneratedVisitor,
4542 )
4543 }
4544}
4545impl serde::Serialize for ListLegalDocumentsRequest {
4546 #[allow(deprecated)]
4547 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4548 where
4549 S: serde::Serializer,
4550 {
4551 use serde::ser::SerializeStruct;
4552 let mut len = 0;
4553 if self.page_size != 0 {
4554 len += 1;
4555 }
4556 if !self.page_token.is_empty() {
4557 len += 1;
4558 }
4559 let mut struct_ser = serializer
4560 .serialize_struct(
4561 "origincloud.billing.v1beta1.ListLegalDocumentsRequest",
4562 len,
4563 )?;
4564 if self.page_size != 0 {
4565 struct_ser.serialize_field("pageSize", &self.page_size)?;
4566 }
4567 if !self.page_token.is_empty() {
4568 struct_ser.serialize_field("pageToken", &self.page_token)?;
4569 }
4570 struct_ser.end()
4571 }
4572}
4573impl<'de> serde::Deserialize<'de> for ListLegalDocumentsRequest {
4574 #[allow(deprecated)]
4575 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4576 where
4577 D: serde::Deserializer<'de>,
4578 {
4579 const FIELDS: &[&str] = &["page_size", "pageSize", "page_token", "pageToken"];
4580 #[allow(clippy::enum_variant_names)]
4581 enum GeneratedField {
4582 PageSize,
4583 PageToken,
4584 __SkipField__,
4585 }
4586 impl<'de> serde::Deserialize<'de> for GeneratedField {
4587 fn deserialize<D>(
4588 deserializer: D,
4589 ) -> std::result::Result<GeneratedField, D::Error>
4590 where
4591 D: serde::Deserializer<'de>,
4592 {
4593 struct GeneratedVisitor;
4594 impl serde::de::Visitor<'_> for GeneratedVisitor {
4595 type Value = GeneratedField;
4596 fn expecting(
4597 &self,
4598 formatter: &mut std::fmt::Formatter<'_>,
4599 ) -> std::fmt::Result {
4600 write!(formatter, "expected one of: {:?}", & FIELDS)
4601 }
4602 #[allow(unused_variables)]
4603 fn visit_str<E>(
4604 self,
4605 value: &str,
4606 ) -> std::result::Result<GeneratedField, E>
4607 where
4608 E: serde::de::Error,
4609 {
4610 match value {
4611 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
4612 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
4613 _ => Ok(GeneratedField::__SkipField__),
4614 }
4615 }
4616 }
4617 deserializer.deserialize_identifier(GeneratedVisitor)
4618 }
4619 }
4620 struct GeneratedVisitor;
4621 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4622 type Value = ListLegalDocumentsRequest;
4623 fn expecting(
4624 &self,
4625 formatter: &mut std::fmt::Formatter<'_>,
4626 ) -> std::fmt::Result {
4627 formatter
4628 .write_str(
4629 "struct origincloud.billing.v1beta1.ListLegalDocumentsRequest",
4630 )
4631 }
4632 fn visit_map<V>(
4633 self,
4634 mut map_: V,
4635 ) -> std::result::Result<ListLegalDocumentsRequest, V::Error>
4636 where
4637 V: serde::de::MapAccess<'de>,
4638 {
4639 let mut page_size__ = None;
4640 let mut page_token__ = None;
4641 while let Some(k) = map_.next_key()? {
4642 match k {
4643 GeneratedField::PageSize => {
4644 if page_size__.is_some() {
4645 return Err(serde::de::Error::duplicate_field("pageSize"));
4646 }
4647 page_size__ = Some(
4648 map_
4649 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4650 .0,
4651 );
4652 }
4653 GeneratedField::PageToken => {
4654 if page_token__.is_some() {
4655 return Err(serde::de::Error::duplicate_field("pageToken"));
4656 }
4657 page_token__ = Some(map_.next_value()?);
4658 }
4659 GeneratedField::__SkipField__ => {
4660 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4661 }
4662 }
4663 }
4664 Ok(ListLegalDocumentsRequest {
4665 page_size: page_size__.unwrap_or_default(),
4666 page_token: page_token__.unwrap_or_default(),
4667 })
4668 }
4669 }
4670 deserializer
4671 .deserialize_struct(
4672 "origincloud.billing.v1beta1.ListLegalDocumentsRequest",
4673 FIELDS,
4674 GeneratedVisitor,
4675 )
4676 }
4677}
4678impl serde::Serialize for ListLegalDocumentsResponse {
4679 #[allow(deprecated)]
4680 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4681 where
4682 S: serde::Serializer,
4683 {
4684 use serde::ser::SerializeStruct;
4685 let mut len = 0;
4686 if !self.legal_documents.is_empty() {
4687 len += 1;
4688 }
4689 if !self.next_page_token.is_empty() {
4690 len += 1;
4691 }
4692 let mut struct_ser = serializer
4693 .serialize_struct(
4694 "origincloud.billing.v1beta1.ListLegalDocumentsResponse",
4695 len,
4696 )?;
4697 if !self.legal_documents.is_empty() {
4698 struct_ser.serialize_field("legalDocuments", &self.legal_documents)?;
4699 }
4700 if !self.next_page_token.is_empty() {
4701 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
4702 }
4703 struct_ser.end()
4704 }
4705}
4706impl<'de> serde::Deserialize<'de> for ListLegalDocumentsResponse {
4707 #[allow(deprecated)]
4708 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4709 where
4710 D: serde::Deserializer<'de>,
4711 {
4712 const FIELDS: &[&str] = &[
4713 "legal_documents",
4714 "legalDocuments",
4715 "next_page_token",
4716 "nextPageToken",
4717 ];
4718 #[allow(clippy::enum_variant_names)]
4719 enum GeneratedField {
4720 LegalDocuments,
4721 NextPageToken,
4722 __SkipField__,
4723 }
4724 impl<'de> serde::Deserialize<'de> for GeneratedField {
4725 fn deserialize<D>(
4726 deserializer: D,
4727 ) -> std::result::Result<GeneratedField, D::Error>
4728 where
4729 D: serde::Deserializer<'de>,
4730 {
4731 struct GeneratedVisitor;
4732 impl serde::de::Visitor<'_> for GeneratedVisitor {
4733 type Value = GeneratedField;
4734 fn expecting(
4735 &self,
4736 formatter: &mut std::fmt::Formatter<'_>,
4737 ) -> std::fmt::Result {
4738 write!(formatter, "expected one of: {:?}", & FIELDS)
4739 }
4740 #[allow(unused_variables)]
4741 fn visit_str<E>(
4742 self,
4743 value: &str,
4744 ) -> std::result::Result<GeneratedField, E>
4745 where
4746 E: serde::de::Error,
4747 {
4748 match value {
4749 "legalDocuments" | "legal_documents" => {
4750 Ok(GeneratedField::LegalDocuments)
4751 }
4752 "nextPageToken" | "next_page_token" => {
4753 Ok(GeneratedField::NextPageToken)
4754 }
4755 _ => Ok(GeneratedField::__SkipField__),
4756 }
4757 }
4758 }
4759 deserializer.deserialize_identifier(GeneratedVisitor)
4760 }
4761 }
4762 struct GeneratedVisitor;
4763 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4764 type Value = ListLegalDocumentsResponse;
4765 fn expecting(
4766 &self,
4767 formatter: &mut std::fmt::Formatter<'_>,
4768 ) -> std::fmt::Result {
4769 formatter
4770 .write_str(
4771 "struct origincloud.billing.v1beta1.ListLegalDocumentsResponse",
4772 )
4773 }
4774 fn visit_map<V>(
4775 self,
4776 mut map_: V,
4777 ) -> std::result::Result<ListLegalDocumentsResponse, V::Error>
4778 where
4779 V: serde::de::MapAccess<'de>,
4780 {
4781 let mut legal_documents__ = None;
4782 let mut next_page_token__ = None;
4783 while let Some(k) = map_.next_key()? {
4784 match k {
4785 GeneratedField::LegalDocuments => {
4786 if legal_documents__.is_some() {
4787 return Err(
4788 serde::de::Error::duplicate_field("legalDocuments"),
4789 );
4790 }
4791 legal_documents__ = Some(map_.next_value()?);
4792 }
4793 GeneratedField::NextPageToken => {
4794 if next_page_token__.is_some() {
4795 return Err(
4796 serde::de::Error::duplicate_field("nextPageToken"),
4797 );
4798 }
4799 next_page_token__ = Some(map_.next_value()?);
4800 }
4801 GeneratedField::__SkipField__ => {
4802 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4803 }
4804 }
4805 }
4806 Ok(ListLegalDocumentsResponse {
4807 legal_documents: legal_documents__.unwrap_or_default(),
4808 next_page_token: next_page_token__.unwrap_or_default(),
4809 })
4810 }
4811 }
4812 deserializer
4813 .deserialize_struct(
4814 "origincloud.billing.v1beta1.ListLegalDocumentsResponse",
4815 FIELDS,
4816 GeneratedVisitor,
4817 )
4818 }
4819}
4820impl serde::Serialize for ListProjectBillingInfoRequest {
4821 #[allow(deprecated)]
4822 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4823 where
4824 S: serde::Serializer,
4825 {
4826 use serde::ser::SerializeStruct;
4827 let mut len = 0;
4828 if !self.name.is_empty() {
4829 len += 1;
4830 }
4831 if self.page_size != 0 {
4832 len += 1;
4833 }
4834 if !self.page_token.is_empty() {
4835 len += 1;
4836 }
4837 let mut struct_ser = serializer
4838 .serialize_struct(
4839 "origincloud.billing.v1beta1.ListProjectBillingInfoRequest",
4840 len,
4841 )?;
4842 if !self.name.is_empty() {
4843 struct_ser.serialize_field("name", &self.name)?;
4844 }
4845 if self.page_size != 0 {
4846 struct_ser.serialize_field("pageSize", &self.page_size)?;
4847 }
4848 if !self.page_token.is_empty() {
4849 struct_ser.serialize_field("pageToken", &self.page_token)?;
4850 }
4851 struct_ser.end()
4852 }
4853}
4854impl<'de> serde::Deserialize<'de> for ListProjectBillingInfoRequest {
4855 #[allow(deprecated)]
4856 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4857 where
4858 D: serde::Deserializer<'de>,
4859 {
4860 const FIELDS: &[&str] = &[
4861 "name",
4862 "page_size",
4863 "pageSize",
4864 "page_token",
4865 "pageToken",
4866 ];
4867 #[allow(clippy::enum_variant_names)]
4868 enum GeneratedField {
4869 Name,
4870 PageSize,
4871 PageToken,
4872 __SkipField__,
4873 }
4874 impl<'de> serde::Deserialize<'de> for GeneratedField {
4875 fn deserialize<D>(
4876 deserializer: D,
4877 ) -> std::result::Result<GeneratedField, D::Error>
4878 where
4879 D: serde::Deserializer<'de>,
4880 {
4881 struct GeneratedVisitor;
4882 impl serde::de::Visitor<'_> for GeneratedVisitor {
4883 type Value = GeneratedField;
4884 fn expecting(
4885 &self,
4886 formatter: &mut std::fmt::Formatter<'_>,
4887 ) -> std::fmt::Result {
4888 write!(formatter, "expected one of: {:?}", & FIELDS)
4889 }
4890 #[allow(unused_variables)]
4891 fn visit_str<E>(
4892 self,
4893 value: &str,
4894 ) -> std::result::Result<GeneratedField, E>
4895 where
4896 E: serde::de::Error,
4897 {
4898 match value {
4899 "name" => Ok(GeneratedField::Name),
4900 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
4901 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
4902 _ => Ok(GeneratedField::__SkipField__),
4903 }
4904 }
4905 }
4906 deserializer.deserialize_identifier(GeneratedVisitor)
4907 }
4908 }
4909 struct GeneratedVisitor;
4910 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
4911 type Value = ListProjectBillingInfoRequest;
4912 fn expecting(
4913 &self,
4914 formatter: &mut std::fmt::Formatter<'_>,
4915 ) -> std::fmt::Result {
4916 formatter
4917 .write_str(
4918 "struct origincloud.billing.v1beta1.ListProjectBillingInfoRequest",
4919 )
4920 }
4921 fn visit_map<V>(
4922 self,
4923 mut map_: V,
4924 ) -> std::result::Result<ListProjectBillingInfoRequest, V::Error>
4925 where
4926 V: serde::de::MapAccess<'de>,
4927 {
4928 let mut name__ = None;
4929 let mut page_size__ = None;
4930 let mut page_token__ = None;
4931 while let Some(k) = map_.next_key()? {
4932 match k {
4933 GeneratedField::Name => {
4934 if name__.is_some() {
4935 return Err(serde::de::Error::duplicate_field("name"));
4936 }
4937 name__ = Some(map_.next_value()?);
4938 }
4939 GeneratedField::PageSize => {
4940 if page_size__.is_some() {
4941 return Err(serde::de::Error::duplicate_field("pageSize"));
4942 }
4943 page_size__ = Some(
4944 map_
4945 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4946 .0,
4947 );
4948 }
4949 GeneratedField::PageToken => {
4950 if page_token__.is_some() {
4951 return Err(serde::de::Error::duplicate_field("pageToken"));
4952 }
4953 page_token__ = Some(map_.next_value()?);
4954 }
4955 GeneratedField::__SkipField__ => {
4956 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4957 }
4958 }
4959 }
4960 Ok(ListProjectBillingInfoRequest {
4961 name: name__.unwrap_or_default(),
4962 page_size: page_size__.unwrap_or_default(),
4963 page_token: page_token__.unwrap_or_default(),
4964 })
4965 }
4966 }
4967 deserializer
4968 .deserialize_struct(
4969 "origincloud.billing.v1beta1.ListProjectBillingInfoRequest",
4970 FIELDS,
4971 GeneratedVisitor,
4972 )
4973 }
4974}
4975impl serde::Serialize for ListProjectBillingInfoResponse {
4976 #[allow(deprecated)]
4977 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4978 where
4979 S: serde::Serializer,
4980 {
4981 use serde::ser::SerializeStruct;
4982 let mut len = 0;
4983 if !self.project_billing_infos.is_empty() {
4984 len += 1;
4985 }
4986 if !self.next_page_token.is_empty() {
4987 len += 1;
4988 }
4989 let mut struct_ser = serializer
4990 .serialize_struct(
4991 "origincloud.billing.v1beta1.ListProjectBillingInfoResponse",
4992 len,
4993 )?;
4994 if !self.project_billing_infos.is_empty() {
4995 struct_ser
4996 .serialize_field("projectBillingInfos", &self.project_billing_infos)?;
4997 }
4998 if !self.next_page_token.is_empty() {
4999 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
5000 }
5001 struct_ser.end()
5002 }
5003}
5004impl<'de> serde::Deserialize<'de> for ListProjectBillingInfoResponse {
5005 #[allow(deprecated)]
5006 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5007 where
5008 D: serde::Deserializer<'de>,
5009 {
5010 const FIELDS: &[&str] = &[
5011 "project_billing_infos",
5012 "projectBillingInfos",
5013 "next_page_token",
5014 "nextPageToken",
5015 ];
5016 #[allow(clippy::enum_variant_names)]
5017 enum GeneratedField {
5018 ProjectBillingInfos,
5019 NextPageToken,
5020 __SkipField__,
5021 }
5022 impl<'de> serde::Deserialize<'de> for GeneratedField {
5023 fn deserialize<D>(
5024 deserializer: D,
5025 ) -> std::result::Result<GeneratedField, D::Error>
5026 where
5027 D: serde::Deserializer<'de>,
5028 {
5029 struct GeneratedVisitor;
5030 impl serde::de::Visitor<'_> for GeneratedVisitor {
5031 type Value = GeneratedField;
5032 fn expecting(
5033 &self,
5034 formatter: &mut std::fmt::Formatter<'_>,
5035 ) -> std::fmt::Result {
5036 write!(formatter, "expected one of: {:?}", & FIELDS)
5037 }
5038 #[allow(unused_variables)]
5039 fn visit_str<E>(
5040 self,
5041 value: &str,
5042 ) -> std::result::Result<GeneratedField, E>
5043 where
5044 E: serde::de::Error,
5045 {
5046 match value {
5047 "projectBillingInfos" | "project_billing_infos" => {
5048 Ok(GeneratedField::ProjectBillingInfos)
5049 }
5050 "nextPageToken" | "next_page_token" => {
5051 Ok(GeneratedField::NextPageToken)
5052 }
5053 _ => Ok(GeneratedField::__SkipField__),
5054 }
5055 }
5056 }
5057 deserializer.deserialize_identifier(GeneratedVisitor)
5058 }
5059 }
5060 struct GeneratedVisitor;
5061 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5062 type Value = ListProjectBillingInfoResponse;
5063 fn expecting(
5064 &self,
5065 formatter: &mut std::fmt::Formatter<'_>,
5066 ) -> std::fmt::Result {
5067 formatter
5068 .write_str(
5069 "struct origincloud.billing.v1beta1.ListProjectBillingInfoResponse",
5070 )
5071 }
5072 fn visit_map<V>(
5073 self,
5074 mut map_: V,
5075 ) -> std::result::Result<ListProjectBillingInfoResponse, V::Error>
5076 where
5077 V: serde::de::MapAccess<'de>,
5078 {
5079 let mut project_billing_infos__ = None;
5080 let mut next_page_token__ = None;
5081 while let Some(k) = map_.next_key()? {
5082 match k {
5083 GeneratedField::ProjectBillingInfos => {
5084 if project_billing_infos__.is_some() {
5085 return Err(
5086 serde::de::Error::duplicate_field("projectBillingInfos"),
5087 );
5088 }
5089 project_billing_infos__ = Some(map_.next_value()?);
5090 }
5091 GeneratedField::NextPageToken => {
5092 if next_page_token__.is_some() {
5093 return Err(
5094 serde::de::Error::duplicate_field("nextPageToken"),
5095 );
5096 }
5097 next_page_token__ = Some(map_.next_value()?);
5098 }
5099 GeneratedField::__SkipField__ => {
5100 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5101 }
5102 }
5103 }
5104 Ok(ListProjectBillingInfoResponse {
5105 project_billing_infos: project_billing_infos__.unwrap_or_default(),
5106 next_page_token: next_page_token__.unwrap_or_default(),
5107 })
5108 }
5109 }
5110 deserializer
5111 .deserialize_struct(
5112 "origincloud.billing.v1beta1.ListProjectBillingInfoResponse",
5113 FIELDS,
5114 GeneratedVisitor,
5115 )
5116 }
5117}
5118impl serde::Serialize for OrganizationCostReport {
5119 #[allow(deprecated)]
5120 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5121 where
5122 S: serde::Serializer,
5123 {
5124 use serde::ser::SerializeStruct;
5125 let mut len = 0;
5126 if !self.total.is_empty() {
5127 len += 1;
5128 }
5129 if !self.services.is_empty() {
5130 len += 1;
5131 }
5132 if !self.projects.is_empty() {
5133 len += 1;
5134 }
5135 let mut struct_ser = serializer
5136 .serialize_struct(
5137 "origincloud.billing.v1beta1.OrganizationCostReport",
5138 len,
5139 )?;
5140 if !self.total.is_empty() {
5141 struct_ser.serialize_field("total", &self.total)?;
5142 }
5143 if !self.services.is_empty() {
5144 struct_ser.serialize_field("services", &self.services)?;
5145 }
5146 if !self.projects.is_empty() {
5147 struct_ser.serialize_field("projects", &self.projects)?;
5148 }
5149 struct_ser.end()
5150 }
5151}
5152impl<'de> serde::Deserialize<'de> for OrganizationCostReport {
5153 #[allow(deprecated)]
5154 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5155 where
5156 D: serde::Deserializer<'de>,
5157 {
5158 const FIELDS: &[&str] = &["total", "services", "projects"];
5159 #[allow(clippy::enum_variant_names)]
5160 enum GeneratedField {
5161 Total,
5162 Services,
5163 Projects,
5164 __SkipField__,
5165 }
5166 impl<'de> serde::Deserialize<'de> for GeneratedField {
5167 fn deserialize<D>(
5168 deserializer: D,
5169 ) -> std::result::Result<GeneratedField, D::Error>
5170 where
5171 D: serde::Deserializer<'de>,
5172 {
5173 struct GeneratedVisitor;
5174 impl serde::de::Visitor<'_> for GeneratedVisitor {
5175 type Value = GeneratedField;
5176 fn expecting(
5177 &self,
5178 formatter: &mut std::fmt::Formatter<'_>,
5179 ) -> std::fmt::Result {
5180 write!(formatter, "expected one of: {:?}", & FIELDS)
5181 }
5182 #[allow(unused_variables)]
5183 fn visit_str<E>(
5184 self,
5185 value: &str,
5186 ) -> std::result::Result<GeneratedField, E>
5187 where
5188 E: serde::de::Error,
5189 {
5190 match value {
5191 "total" => Ok(GeneratedField::Total),
5192 "services" => Ok(GeneratedField::Services),
5193 "projects" => Ok(GeneratedField::Projects),
5194 _ => Ok(GeneratedField::__SkipField__),
5195 }
5196 }
5197 }
5198 deserializer.deserialize_identifier(GeneratedVisitor)
5199 }
5200 }
5201 struct GeneratedVisitor;
5202 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5203 type Value = OrganizationCostReport;
5204 fn expecting(
5205 &self,
5206 formatter: &mut std::fmt::Formatter<'_>,
5207 ) -> std::fmt::Result {
5208 formatter
5209 .write_str(
5210 "struct origincloud.billing.v1beta1.OrganizationCostReport",
5211 )
5212 }
5213 fn visit_map<V>(
5214 self,
5215 mut map_: V,
5216 ) -> std::result::Result<OrganizationCostReport, V::Error>
5217 where
5218 V: serde::de::MapAccess<'de>,
5219 {
5220 let mut total__ = None;
5221 let mut services__ = None;
5222 let mut projects__ = None;
5223 while let Some(k) = map_.next_key()? {
5224 match k {
5225 GeneratedField::Total => {
5226 if total__.is_some() {
5227 return Err(serde::de::Error::duplicate_field("total"));
5228 }
5229 total__ = Some(map_.next_value()?);
5230 }
5231 GeneratedField::Services => {
5232 if services__.is_some() {
5233 return Err(serde::de::Error::duplicate_field("services"));
5234 }
5235 services__ = Some(map_.next_value()?);
5236 }
5237 GeneratedField::Projects => {
5238 if projects__.is_some() {
5239 return Err(serde::de::Error::duplicate_field("projects"));
5240 }
5241 projects__ = Some(map_.next_value()?);
5242 }
5243 GeneratedField::__SkipField__ => {
5244 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5245 }
5246 }
5247 }
5248 Ok(OrganizationCostReport {
5249 total: total__.unwrap_or_default(),
5250 services: services__.unwrap_or_default(),
5251 projects: projects__.unwrap_or_default(),
5252 })
5253 }
5254 }
5255 deserializer
5256 .deserialize_struct(
5257 "origincloud.billing.v1beta1.OrganizationCostReport",
5258 FIELDS,
5259 GeneratedVisitor,
5260 )
5261 }
5262}
5263impl serde::Serialize for PaymentMethod {
5264 #[allow(deprecated)]
5265 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5266 where
5267 S: serde::Serializer,
5268 {
5269 use serde::ser::SerializeStruct;
5270 let mut len = 0;
5271 if self.state != 0 {
5272 len += 1;
5273 }
5274 if !self.card_brand.is_empty() {
5275 len += 1;
5276 }
5277 if !self.card_last4.is_empty() {
5278 len += 1;
5279 }
5280 let mut struct_ser = serializer
5281 .serialize_struct("origincloud.billing.v1beta1.PaymentMethod", len)?;
5282 if self.state != 0 {
5283 let v = payment_method::State::try_from(self.state)
5284 .map_err(|_| serde::ser::Error::custom(
5285 format!("Invalid variant {}", self.state),
5286 ))?;
5287 struct_ser.serialize_field("state", &v)?;
5288 }
5289 if !self.card_brand.is_empty() {
5290 struct_ser.serialize_field("cardBrand", &self.card_brand)?;
5291 }
5292 if !self.card_last4.is_empty() {
5293 struct_ser.serialize_field("cardLast4", &self.card_last4)?;
5294 }
5295 struct_ser.end()
5296 }
5297}
5298impl<'de> serde::Deserialize<'de> for PaymentMethod {
5299 #[allow(deprecated)]
5300 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5301 where
5302 D: serde::Deserializer<'de>,
5303 {
5304 const FIELDS: &[&str] = &[
5305 "state",
5306 "card_brand",
5307 "cardBrand",
5308 "card_last4",
5309 "cardLast4",
5310 ];
5311 #[allow(clippy::enum_variant_names)]
5312 enum GeneratedField {
5313 State,
5314 CardBrand,
5315 CardLast4,
5316 __SkipField__,
5317 }
5318 impl<'de> serde::Deserialize<'de> for GeneratedField {
5319 fn deserialize<D>(
5320 deserializer: D,
5321 ) -> std::result::Result<GeneratedField, D::Error>
5322 where
5323 D: serde::Deserializer<'de>,
5324 {
5325 struct GeneratedVisitor;
5326 impl serde::de::Visitor<'_> for GeneratedVisitor {
5327 type Value = GeneratedField;
5328 fn expecting(
5329 &self,
5330 formatter: &mut std::fmt::Formatter<'_>,
5331 ) -> std::fmt::Result {
5332 write!(formatter, "expected one of: {:?}", & FIELDS)
5333 }
5334 #[allow(unused_variables)]
5335 fn visit_str<E>(
5336 self,
5337 value: &str,
5338 ) -> std::result::Result<GeneratedField, E>
5339 where
5340 E: serde::de::Error,
5341 {
5342 match value {
5343 "state" => Ok(GeneratedField::State),
5344 "cardBrand" | "card_brand" => Ok(GeneratedField::CardBrand),
5345 "cardLast4" | "card_last4" => Ok(GeneratedField::CardLast4),
5346 _ => Ok(GeneratedField::__SkipField__),
5347 }
5348 }
5349 }
5350 deserializer.deserialize_identifier(GeneratedVisitor)
5351 }
5352 }
5353 struct GeneratedVisitor;
5354 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5355 type Value = PaymentMethod;
5356 fn expecting(
5357 &self,
5358 formatter: &mut std::fmt::Formatter<'_>,
5359 ) -> std::fmt::Result {
5360 formatter.write_str("struct origincloud.billing.v1beta1.PaymentMethod")
5361 }
5362 fn visit_map<V>(
5363 self,
5364 mut map_: V,
5365 ) -> std::result::Result<PaymentMethod, V::Error>
5366 where
5367 V: serde::de::MapAccess<'de>,
5368 {
5369 let mut state__ = None;
5370 let mut card_brand__ = None;
5371 let mut card_last4__ = None;
5372 while let Some(k) = map_.next_key()? {
5373 match k {
5374 GeneratedField::State => {
5375 if state__.is_some() {
5376 return Err(serde::de::Error::duplicate_field("state"));
5377 }
5378 state__ = Some(
5379 map_.next_value::<payment_method::State>()? as i32,
5380 );
5381 }
5382 GeneratedField::CardBrand => {
5383 if card_brand__.is_some() {
5384 return Err(serde::de::Error::duplicate_field("cardBrand"));
5385 }
5386 card_brand__ = Some(map_.next_value()?);
5387 }
5388 GeneratedField::CardLast4 => {
5389 if card_last4__.is_some() {
5390 return Err(serde::de::Error::duplicate_field("cardLast4"));
5391 }
5392 card_last4__ = Some(map_.next_value()?);
5393 }
5394 GeneratedField::__SkipField__ => {
5395 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5396 }
5397 }
5398 }
5399 Ok(PaymentMethod {
5400 state: state__.unwrap_or_default(),
5401 card_brand: card_brand__.unwrap_or_default(),
5402 card_last4: card_last4__.unwrap_or_default(),
5403 })
5404 }
5405 }
5406 deserializer
5407 .deserialize_struct(
5408 "origincloud.billing.v1beta1.PaymentMethod",
5409 FIELDS,
5410 GeneratedVisitor,
5411 )
5412 }
5413}
5414impl serde::Serialize for payment_method::State {
5415 #[allow(deprecated)]
5416 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5417 where
5418 S: serde::Serializer,
5419 {
5420 let variant = match self {
5421 Self::Unspecified => "STATE_UNSPECIFIED",
5422 Self::Missing => "MISSING",
5423 Self::Verified => "VERIFIED",
5424 Self::NotRequired => "NOT_REQUIRED",
5425 };
5426 serializer.serialize_str(variant)
5427 }
5428}
5429impl<'de> serde::Deserialize<'de> for payment_method::State {
5430 #[allow(deprecated)]
5431 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5432 where
5433 D: serde::Deserializer<'de>,
5434 {
5435 const FIELDS: &[&str] = &[
5436 "STATE_UNSPECIFIED",
5437 "MISSING",
5438 "VERIFIED",
5439 "NOT_REQUIRED",
5440 ];
5441 struct GeneratedVisitor;
5442 impl serde::de::Visitor<'_> for GeneratedVisitor {
5443 type Value = payment_method::State;
5444 fn expecting(
5445 &self,
5446 formatter: &mut std::fmt::Formatter<'_>,
5447 ) -> std::fmt::Result {
5448 write!(formatter, "expected one of: {:?}", & FIELDS)
5449 }
5450 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
5451 where
5452 E: serde::de::Error,
5453 {
5454 i32::try_from(v)
5455 .ok()
5456 .and_then(|x| {
5457 x
5458 .try_into()
5459 .ok()
5460 .or_else(|| Some(payment_method::State::default()))
5461 })
5462 .ok_or_else(|| {
5463 serde::de::Error::invalid_value(
5464 serde::de::Unexpected::Signed(v),
5465 &self,
5466 )
5467 })
5468 }
5469 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
5470 where
5471 E: serde::de::Error,
5472 {
5473 i32::try_from(v)
5474 .ok()
5475 .and_then(|x| {
5476 x
5477 .try_into()
5478 .ok()
5479 .or_else(|| Some(payment_method::State::default()))
5480 })
5481 .ok_or_else(|| {
5482 serde::de::Error::invalid_value(
5483 serde::de::Unexpected::Unsigned(v),
5484 &self,
5485 )
5486 })
5487 }
5488 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
5489 where
5490 E: serde::de::Error,
5491 {
5492 match value {
5493 "STATE_UNSPECIFIED" => Ok(payment_method::State::Unspecified),
5494 "MISSING" => Ok(payment_method::State::Missing),
5495 "VERIFIED" => Ok(payment_method::State::Verified),
5496 "NOT_REQUIRED" => Ok(payment_method::State::NotRequired),
5497 _ => Ok(payment_method::State::default()),
5498 }
5499 }
5500 }
5501 deserializer.deserialize_any(GeneratedVisitor)
5502 }
5503}
5504impl serde::Serialize for Price {
5505 #[allow(deprecated)]
5506 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5507 where
5508 S: serde::Serializer,
5509 {
5510 use serde::ser::SerializeStruct;
5511 let mut len = 0;
5512 if !self.product_key.is_empty() {
5513 len += 1;
5514 }
5515 if !self.dimensions.is_empty() {
5516 len += 1;
5517 }
5518 if !self.unit_type.is_empty() {
5519 len += 1;
5520 }
5521 if self.unit_count != 0 {
5522 len += 1;
5523 }
5524 if !self.amount.is_empty() {
5525 len += 1;
5526 }
5527 if self.valid_from.is_some() {
5528 len += 1;
5529 }
5530 if self.valid_until.is_some() {
5531 len += 1;
5532 }
5533 let mut struct_ser = serializer
5534 .serialize_struct("origincloud.billing.v1beta1.Price", len)?;
5535 if !self.product_key.is_empty() {
5536 struct_ser.serialize_field("product_key", &self.product_key)?;
5537 }
5538 if !self.dimensions.is_empty() {
5539 struct_ser.serialize_field("dimensions", &self.dimensions)?;
5540 }
5541 if !self.unit_type.is_empty() {
5542 struct_ser.serialize_field("unit_type", &self.unit_type)?;
5543 }
5544 if self.unit_count != 0 {
5545 struct_ser.serialize_field("unit_count", &self.unit_count)?;
5546 }
5547 if !self.amount.is_empty() {
5548 struct_ser.serialize_field("amount", &self.amount)?;
5549 }
5550 if let Some(v) = self.valid_from.as_ref() {
5551 struct_ser.serialize_field("valid_from", v)?;
5552 }
5553 if let Some(v) = self.valid_until.as_ref() {
5554 struct_ser.serialize_field("valid_until", v)?;
5555 }
5556 struct_ser.end()
5557 }
5558}
5559impl<'de> serde::Deserialize<'de> for Price {
5560 #[allow(deprecated)]
5561 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5562 where
5563 D: serde::Deserializer<'de>,
5564 {
5565 const FIELDS: &[&str] = &[
5566 "product_key",
5567 "dimensions",
5568 "unit_type",
5569 "unit_count",
5570 "amount",
5571 "valid_from",
5572 "valid_until",
5573 ];
5574 #[allow(clippy::enum_variant_names)]
5575 enum GeneratedField {
5576 ProductKey,
5577 Dimensions,
5578 UnitType,
5579 UnitCount,
5580 Amount,
5581 ValidFrom,
5582 ValidUntil,
5583 __SkipField__,
5584 }
5585 impl<'de> serde::Deserialize<'de> for GeneratedField {
5586 fn deserialize<D>(
5587 deserializer: D,
5588 ) -> std::result::Result<GeneratedField, D::Error>
5589 where
5590 D: serde::Deserializer<'de>,
5591 {
5592 struct GeneratedVisitor;
5593 impl serde::de::Visitor<'_> for GeneratedVisitor {
5594 type Value = GeneratedField;
5595 fn expecting(
5596 &self,
5597 formatter: &mut std::fmt::Formatter<'_>,
5598 ) -> std::fmt::Result {
5599 write!(formatter, "expected one of: {:?}", & FIELDS)
5600 }
5601 #[allow(unused_variables)]
5602 fn visit_str<E>(
5603 self,
5604 value: &str,
5605 ) -> std::result::Result<GeneratedField, E>
5606 where
5607 E: serde::de::Error,
5608 {
5609 match value {
5610 "product_key" => Ok(GeneratedField::ProductKey),
5611 "dimensions" => Ok(GeneratedField::Dimensions),
5612 "unit_type" => Ok(GeneratedField::UnitType),
5613 "unit_count" => Ok(GeneratedField::UnitCount),
5614 "amount" => Ok(GeneratedField::Amount),
5615 "valid_from" => Ok(GeneratedField::ValidFrom),
5616 "valid_until" => Ok(GeneratedField::ValidUntil),
5617 _ => Ok(GeneratedField::__SkipField__),
5618 }
5619 }
5620 }
5621 deserializer.deserialize_identifier(GeneratedVisitor)
5622 }
5623 }
5624 struct GeneratedVisitor;
5625 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5626 type Value = Price;
5627 fn expecting(
5628 &self,
5629 formatter: &mut std::fmt::Formatter<'_>,
5630 ) -> std::fmt::Result {
5631 formatter.write_str("struct origincloud.billing.v1beta1.Price")
5632 }
5633 fn visit_map<V>(self, mut map_: V) -> std::result::Result<Price, V::Error>
5634 where
5635 V: serde::de::MapAccess<'de>,
5636 {
5637 let mut product_key__ = None;
5638 let mut dimensions__ = None;
5639 let mut unit_type__ = None;
5640 let mut unit_count__ = None;
5641 let mut amount__ = None;
5642 let mut valid_from__ = None;
5643 let mut valid_until__ = None;
5644 while let Some(k) = map_.next_key()? {
5645 match k {
5646 GeneratedField::ProductKey => {
5647 if product_key__.is_some() {
5648 return Err(
5649 serde::de::Error::duplicate_field("product_key"),
5650 );
5651 }
5652 product_key__ = Some(map_.next_value()?);
5653 }
5654 GeneratedField::Dimensions => {
5655 if dimensions__.is_some() {
5656 return Err(serde::de::Error::duplicate_field("dimensions"));
5657 }
5658 dimensions__ = Some(
5659 map_.next_value::<std::collections::BTreeMap<_, _>>()?,
5660 );
5661 }
5662 GeneratedField::UnitType => {
5663 if unit_type__.is_some() {
5664 return Err(serde::de::Error::duplicate_field("unit_type"));
5665 }
5666 unit_type__ = Some(map_.next_value()?);
5667 }
5668 GeneratedField::UnitCount => {
5669 if unit_count__.is_some() {
5670 return Err(serde::de::Error::duplicate_field("unit_count"));
5671 }
5672 unit_count__ = Some(
5673 map_
5674 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
5675 .0,
5676 );
5677 }
5678 GeneratedField::Amount => {
5679 if amount__.is_some() {
5680 return Err(serde::de::Error::duplicate_field("amount"));
5681 }
5682 amount__ = Some(map_.next_value()?);
5683 }
5684 GeneratedField::ValidFrom => {
5685 if valid_from__.is_some() {
5686 return Err(serde::de::Error::duplicate_field("valid_from"));
5687 }
5688 valid_from__ = map_.next_value()?;
5689 }
5690 GeneratedField::ValidUntil => {
5691 if valid_until__.is_some() {
5692 return Err(
5693 serde::de::Error::duplicate_field("valid_until"),
5694 );
5695 }
5696 valid_until__ = map_.next_value()?;
5697 }
5698 GeneratedField::__SkipField__ => {
5699 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5700 }
5701 }
5702 }
5703 Ok(Price {
5704 product_key: product_key__.unwrap_or_default(),
5705 dimensions: dimensions__.unwrap_or_default(),
5706 unit_type: unit_type__.unwrap_or_default(),
5707 unit_count: unit_count__.unwrap_or_default(),
5708 amount: amount__.unwrap_or_default(),
5709 valid_from: valid_from__,
5710 valid_until: valid_until__,
5711 })
5712 }
5713 }
5714 deserializer
5715 .deserialize_struct(
5716 "origincloud.billing.v1beta1.Price",
5717 FIELDS,
5718 GeneratedVisitor,
5719 )
5720 }
5721}
5722impl serde::Serialize for PriceFamily {
5723 #[allow(deprecated)]
5724 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5725 where
5726 S: serde::Serializer,
5727 {
5728 use serde::ser::SerializeStruct;
5729 let mut len = 0;
5730 if !self.family.is_empty() {
5731 len += 1;
5732 }
5733 if !self.prices.is_empty() {
5734 len += 1;
5735 }
5736 let mut struct_ser = serializer
5737 .serialize_struct("origincloud.billing.v1beta1.PriceFamily", len)?;
5738 if !self.family.is_empty() {
5739 struct_ser.serialize_field("family", &self.family)?;
5740 }
5741 if !self.prices.is_empty() {
5742 struct_ser.serialize_field("prices", &self.prices)?;
5743 }
5744 struct_ser.end()
5745 }
5746}
5747impl<'de> serde::Deserialize<'de> for PriceFamily {
5748 #[allow(deprecated)]
5749 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5750 where
5751 D: serde::Deserializer<'de>,
5752 {
5753 const FIELDS: &[&str] = &["family", "prices"];
5754 #[allow(clippy::enum_variant_names)]
5755 enum GeneratedField {
5756 Family,
5757 Prices,
5758 __SkipField__,
5759 }
5760 impl<'de> serde::Deserialize<'de> for GeneratedField {
5761 fn deserialize<D>(
5762 deserializer: D,
5763 ) -> std::result::Result<GeneratedField, D::Error>
5764 where
5765 D: serde::Deserializer<'de>,
5766 {
5767 struct GeneratedVisitor;
5768 impl serde::de::Visitor<'_> for GeneratedVisitor {
5769 type Value = GeneratedField;
5770 fn expecting(
5771 &self,
5772 formatter: &mut std::fmt::Formatter<'_>,
5773 ) -> std::fmt::Result {
5774 write!(formatter, "expected one of: {:?}", & FIELDS)
5775 }
5776 #[allow(unused_variables)]
5777 fn visit_str<E>(
5778 self,
5779 value: &str,
5780 ) -> std::result::Result<GeneratedField, E>
5781 where
5782 E: serde::de::Error,
5783 {
5784 match value {
5785 "family" => Ok(GeneratedField::Family),
5786 "prices" => Ok(GeneratedField::Prices),
5787 _ => Ok(GeneratedField::__SkipField__),
5788 }
5789 }
5790 }
5791 deserializer.deserialize_identifier(GeneratedVisitor)
5792 }
5793 }
5794 struct GeneratedVisitor;
5795 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5796 type Value = PriceFamily;
5797 fn expecting(
5798 &self,
5799 formatter: &mut std::fmt::Formatter<'_>,
5800 ) -> std::fmt::Result {
5801 formatter.write_str("struct origincloud.billing.v1beta1.PriceFamily")
5802 }
5803 fn visit_map<V>(
5804 self,
5805 mut map_: V,
5806 ) -> std::result::Result<PriceFamily, V::Error>
5807 where
5808 V: serde::de::MapAccess<'de>,
5809 {
5810 let mut family__ = None;
5811 let mut prices__ = None;
5812 while let Some(k) = map_.next_key()? {
5813 match k {
5814 GeneratedField::Family => {
5815 if family__.is_some() {
5816 return Err(serde::de::Error::duplicate_field("family"));
5817 }
5818 family__ = Some(map_.next_value()?);
5819 }
5820 GeneratedField::Prices => {
5821 if prices__.is_some() {
5822 return Err(serde::de::Error::duplicate_field("prices"));
5823 }
5824 prices__ = Some(map_.next_value()?);
5825 }
5826 GeneratedField::__SkipField__ => {
5827 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5828 }
5829 }
5830 }
5831 Ok(PriceFamily {
5832 family: family__.unwrap_or_default(),
5833 prices: prices__.unwrap_or_default(),
5834 })
5835 }
5836 }
5837 deserializer
5838 .deserialize_struct(
5839 "origincloud.billing.v1beta1.PriceFamily",
5840 FIELDS,
5841 GeneratedVisitor,
5842 )
5843 }
5844}
5845impl serde::Serialize for PriceList {
5846 #[allow(deprecated)]
5847 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
5848 where
5849 S: serde::Serializer,
5850 {
5851 use serde::ser::SerializeStruct;
5852 let mut len = 0;
5853 if !self.currency.is_empty() {
5854 len += 1;
5855 }
5856 if self.amounts_exclude_vat {
5857 len += 1;
5858 }
5859 if self.last_changed.is_some() {
5860 len += 1;
5861 }
5862 if !self.families.is_empty() {
5863 len += 1;
5864 }
5865 let mut struct_ser = serializer
5866 .serialize_struct("origincloud.billing.v1beta1.PriceList", len)?;
5867 if !self.currency.is_empty() {
5868 struct_ser.serialize_field("currency", &self.currency)?;
5869 }
5870 if self.amounts_exclude_vat {
5871 struct_ser
5872 .serialize_field("amounts_exclude_vat", &self.amounts_exclude_vat)?;
5873 }
5874 if let Some(v) = self.last_changed.as_ref() {
5875 struct_ser.serialize_field("last_changed", v)?;
5876 }
5877 if !self.families.is_empty() {
5878 struct_ser.serialize_field("families", &self.families)?;
5879 }
5880 struct_ser.end()
5881 }
5882}
5883impl<'de> serde::Deserialize<'de> for PriceList {
5884 #[allow(deprecated)]
5885 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
5886 where
5887 D: serde::Deserializer<'de>,
5888 {
5889 const FIELDS: &[&str] = &[
5890 "currency",
5891 "amounts_exclude_vat",
5892 "last_changed",
5893 "families",
5894 ];
5895 #[allow(clippy::enum_variant_names)]
5896 enum GeneratedField {
5897 Currency,
5898 AmountsExcludeVat,
5899 LastChanged,
5900 Families,
5901 __SkipField__,
5902 }
5903 impl<'de> serde::Deserialize<'de> for GeneratedField {
5904 fn deserialize<D>(
5905 deserializer: D,
5906 ) -> std::result::Result<GeneratedField, D::Error>
5907 where
5908 D: serde::Deserializer<'de>,
5909 {
5910 struct GeneratedVisitor;
5911 impl serde::de::Visitor<'_> for GeneratedVisitor {
5912 type Value = GeneratedField;
5913 fn expecting(
5914 &self,
5915 formatter: &mut std::fmt::Formatter<'_>,
5916 ) -> std::fmt::Result {
5917 write!(formatter, "expected one of: {:?}", & FIELDS)
5918 }
5919 #[allow(unused_variables)]
5920 fn visit_str<E>(
5921 self,
5922 value: &str,
5923 ) -> std::result::Result<GeneratedField, E>
5924 where
5925 E: serde::de::Error,
5926 {
5927 match value {
5928 "currency" => Ok(GeneratedField::Currency),
5929 "amounts_exclude_vat" => {
5930 Ok(GeneratedField::AmountsExcludeVat)
5931 }
5932 "last_changed" => Ok(GeneratedField::LastChanged),
5933 "families" => Ok(GeneratedField::Families),
5934 _ => Ok(GeneratedField::__SkipField__),
5935 }
5936 }
5937 }
5938 deserializer.deserialize_identifier(GeneratedVisitor)
5939 }
5940 }
5941 struct GeneratedVisitor;
5942 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
5943 type Value = PriceList;
5944 fn expecting(
5945 &self,
5946 formatter: &mut std::fmt::Formatter<'_>,
5947 ) -> std::fmt::Result {
5948 formatter.write_str("struct origincloud.billing.v1beta1.PriceList")
5949 }
5950 fn visit_map<V>(
5951 self,
5952 mut map_: V,
5953 ) -> std::result::Result<PriceList, V::Error>
5954 where
5955 V: serde::de::MapAccess<'de>,
5956 {
5957 let mut currency__ = None;
5958 let mut amounts_exclude_vat__ = None;
5959 let mut last_changed__ = None;
5960 let mut families__ = None;
5961 while let Some(k) = map_.next_key()? {
5962 match k {
5963 GeneratedField::Currency => {
5964 if currency__.is_some() {
5965 return Err(serde::de::Error::duplicate_field("currency"));
5966 }
5967 currency__ = Some(map_.next_value()?);
5968 }
5969 GeneratedField::AmountsExcludeVat => {
5970 if amounts_exclude_vat__.is_some() {
5971 return Err(
5972 serde::de::Error::duplicate_field("amounts_exclude_vat"),
5973 );
5974 }
5975 amounts_exclude_vat__ = Some(map_.next_value()?);
5976 }
5977 GeneratedField::LastChanged => {
5978 if last_changed__.is_some() {
5979 return Err(
5980 serde::de::Error::duplicate_field("last_changed"),
5981 );
5982 }
5983 last_changed__ = map_.next_value()?;
5984 }
5985 GeneratedField::Families => {
5986 if families__.is_some() {
5987 return Err(serde::de::Error::duplicate_field("families"));
5988 }
5989 families__ = Some(map_.next_value()?);
5990 }
5991 GeneratedField::__SkipField__ => {
5992 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
5993 }
5994 }
5995 }
5996 Ok(PriceList {
5997 currency: currency__.unwrap_or_default(),
5998 amounts_exclude_vat: amounts_exclude_vat__.unwrap_or_default(),
5999 last_changed: last_changed__,
6000 families: families__.unwrap_or_default(),
6001 })
6002 }
6003 }
6004 deserializer
6005 .deserialize_struct(
6006 "origincloud.billing.v1beta1.PriceList",
6007 FIELDS,
6008 GeneratedVisitor,
6009 )
6010 }
6011}
6012impl serde::Serialize for ProductCost {
6013 #[allow(deprecated)]
6014 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6015 where
6016 S: serde::Serializer,
6017 {
6018 use serde::ser::SerializeStruct;
6019 let mut len = 0;
6020 if !self.product_key.is_empty() {
6021 len += 1;
6022 }
6023 if !self.total.is_empty() {
6024 len += 1;
6025 }
6026 if !self.buckets.is_empty() {
6027 len += 1;
6028 }
6029 let mut struct_ser = serializer
6030 .serialize_struct("origincloud.billing.v1beta1.ProductCost", len)?;
6031 if !self.product_key.is_empty() {
6032 struct_ser.serialize_field("productKey", &self.product_key)?;
6033 }
6034 if !self.total.is_empty() {
6035 struct_ser.serialize_field("total", &self.total)?;
6036 }
6037 if !self.buckets.is_empty() {
6038 struct_ser.serialize_field("buckets", &self.buckets)?;
6039 }
6040 struct_ser.end()
6041 }
6042}
6043impl<'de> serde::Deserialize<'de> for ProductCost {
6044 #[allow(deprecated)]
6045 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6046 where
6047 D: serde::Deserializer<'de>,
6048 {
6049 const FIELDS: &[&str] = &["product_key", "productKey", "total", "buckets"];
6050 #[allow(clippy::enum_variant_names)]
6051 enum GeneratedField {
6052 ProductKey,
6053 Total,
6054 Buckets,
6055 __SkipField__,
6056 }
6057 impl<'de> serde::Deserialize<'de> for GeneratedField {
6058 fn deserialize<D>(
6059 deserializer: D,
6060 ) -> std::result::Result<GeneratedField, D::Error>
6061 where
6062 D: serde::Deserializer<'de>,
6063 {
6064 struct GeneratedVisitor;
6065 impl serde::de::Visitor<'_> for GeneratedVisitor {
6066 type Value = GeneratedField;
6067 fn expecting(
6068 &self,
6069 formatter: &mut std::fmt::Formatter<'_>,
6070 ) -> std::fmt::Result {
6071 write!(formatter, "expected one of: {:?}", & FIELDS)
6072 }
6073 #[allow(unused_variables)]
6074 fn visit_str<E>(
6075 self,
6076 value: &str,
6077 ) -> std::result::Result<GeneratedField, E>
6078 where
6079 E: serde::de::Error,
6080 {
6081 match value {
6082 "productKey" | "product_key" => {
6083 Ok(GeneratedField::ProductKey)
6084 }
6085 "total" => Ok(GeneratedField::Total),
6086 "buckets" => Ok(GeneratedField::Buckets),
6087 _ => Ok(GeneratedField::__SkipField__),
6088 }
6089 }
6090 }
6091 deserializer.deserialize_identifier(GeneratedVisitor)
6092 }
6093 }
6094 struct GeneratedVisitor;
6095 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6096 type Value = ProductCost;
6097 fn expecting(
6098 &self,
6099 formatter: &mut std::fmt::Formatter<'_>,
6100 ) -> std::fmt::Result {
6101 formatter.write_str("struct origincloud.billing.v1beta1.ProductCost")
6102 }
6103 fn visit_map<V>(
6104 self,
6105 mut map_: V,
6106 ) -> std::result::Result<ProductCost, V::Error>
6107 where
6108 V: serde::de::MapAccess<'de>,
6109 {
6110 let mut product_key__ = None;
6111 let mut total__ = None;
6112 let mut buckets__ = None;
6113 while let Some(k) = map_.next_key()? {
6114 match k {
6115 GeneratedField::ProductKey => {
6116 if product_key__.is_some() {
6117 return Err(serde::de::Error::duplicate_field("productKey"));
6118 }
6119 product_key__ = Some(map_.next_value()?);
6120 }
6121 GeneratedField::Total => {
6122 if total__.is_some() {
6123 return Err(serde::de::Error::duplicate_field("total"));
6124 }
6125 total__ = Some(map_.next_value()?);
6126 }
6127 GeneratedField::Buckets => {
6128 if buckets__.is_some() {
6129 return Err(serde::de::Error::duplicate_field("buckets"));
6130 }
6131 buckets__ = Some(map_.next_value()?);
6132 }
6133 GeneratedField::__SkipField__ => {
6134 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6135 }
6136 }
6137 }
6138 Ok(ProductCost {
6139 product_key: product_key__.unwrap_or_default(),
6140 total: total__.unwrap_or_default(),
6141 buckets: buckets__.unwrap_or_default(),
6142 })
6143 }
6144 }
6145 deserializer
6146 .deserialize_struct(
6147 "origincloud.billing.v1beta1.ProductCost",
6148 FIELDS,
6149 GeneratedVisitor,
6150 )
6151 }
6152}
6153impl serde::Serialize for ProjectBillingInfo {
6154 #[allow(deprecated)]
6155 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6156 where
6157 S: serde::Serializer,
6158 {
6159 use serde::ser::SerializeStruct;
6160 let mut len = 0;
6161 if !self.name.is_empty() {
6162 len += 1;
6163 }
6164 if !self.billing_account.is_empty() {
6165 len += 1;
6166 }
6167 let mut struct_ser = serializer
6168 .serialize_struct("origincloud.billing.v1beta1.ProjectBillingInfo", len)?;
6169 if !self.name.is_empty() {
6170 struct_ser.serialize_field("name", &self.name)?;
6171 }
6172 if !self.billing_account.is_empty() {
6173 struct_ser.serialize_field("billingAccount", &self.billing_account)?;
6174 }
6175 struct_ser.end()
6176 }
6177}
6178impl<'de> serde::Deserialize<'de> for ProjectBillingInfo {
6179 #[allow(deprecated)]
6180 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6181 where
6182 D: serde::Deserializer<'de>,
6183 {
6184 const FIELDS: &[&str] = &["name", "billing_account", "billingAccount"];
6185 #[allow(clippy::enum_variant_names)]
6186 enum GeneratedField {
6187 Name,
6188 BillingAccount,
6189 __SkipField__,
6190 }
6191 impl<'de> serde::Deserialize<'de> for GeneratedField {
6192 fn deserialize<D>(
6193 deserializer: D,
6194 ) -> std::result::Result<GeneratedField, D::Error>
6195 where
6196 D: serde::Deserializer<'de>,
6197 {
6198 struct GeneratedVisitor;
6199 impl serde::de::Visitor<'_> for GeneratedVisitor {
6200 type Value = GeneratedField;
6201 fn expecting(
6202 &self,
6203 formatter: &mut std::fmt::Formatter<'_>,
6204 ) -> std::fmt::Result {
6205 write!(formatter, "expected one of: {:?}", & FIELDS)
6206 }
6207 #[allow(unused_variables)]
6208 fn visit_str<E>(
6209 self,
6210 value: &str,
6211 ) -> std::result::Result<GeneratedField, E>
6212 where
6213 E: serde::de::Error,
6214 {
6215 match value {
6216 "name" => Ok(GeneratedField::Name),
6217 "billingAccount" | "billing_account" => {
6218 Ok(GeneratedField::BillingAccount)
6219 }
6220 _ => Ok(GeneratedField::__SkipField__),
6221 }
6222 }
6223 }
6224 deserializer.deserialize_identifier(GeneratedVisitor)
6225 }
6226 }
6227 struct GeneratedVisitor;
6228 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6229 type Value = ProjectBillingInfo;
6230 fn expecting(
6231 &self,
6232 formatter: &mut std::fmt::Formatter<'_>,
6233 ) -> std::fmt::Result {
6234 formatter
6235 .write_str("struct origincloud.billing.v1beta1.ProjectBillingInfo")
6236 }
6237 fn visit_map<V>(
6238 self,
6239 mut map_: V,
6240 ) -> std::result::Result<ProjectBillingInfo, V::Error>
6241 where
6242 V: serde::de::MapAccess<'de>,
6243 {
6244 let mut name__ = None;
6245 let mut billing_account__ = None;
6246 while let Some(k) = map_.next_key()? {
6247 match k {
6248 GeneratedField::Name => {
6249 if name__.is_some() {
6250 return Err(serde::de::Error::duplicate_field("name"));
6251 }
6252 name__ = Some(map_.next_value()?);
6253 }
6254 GeneratedField::BillingAccount => {
6255 if billing_account__.is_some() {
6256 return Err(
6257 serde::de::Error::duplicate_field("billingAccount"),
6258 );
6259 }
6260 billing_account__ = Some(map_.next_value()?);
6261 }
6262 GeneratedField::__SkipField__ => {
6263 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6264 }
6265 }
6266 }
6267 Ok(ProjectBillingInfo {
6268 name: name__.unwrap_or_default(),
6269 billing_account: billing_account__.unwrap_or_default(),
6270 })
6271 }
6272 }
6273 deserializer
6274 .deserialize_struct(
6275 "origincloud.billing.v1beta1.ProjectBillingInfo",
6276 FIELDS,
6277 GeneratedVisitor,
6278 )
6279 }
6280}
6281impl serde::Serialize for ProjectCost {
6282 #[allow(deprecated)]
6283 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6284 where
6285 S: serde::Serializer,
6286 {
6287 use serde::ser::SerializeStruct;
6288 let mut len = 0;
6289 if !self.project.is_empty() {
6290 len += 1;
6291 }
6292 if !self.total.is_empty() {
6293 len += 1;
6294 }
6295 if !self.buckets.is_empty() {
6296 len += 1;
6297 }
6298 let mut struct_ser = serializer
6299 .serialize_struct("origincloud.billing.v1beta1.ProjectCost", len)?;
6300 if !self.project.is_empty() {
6301 struct_ser.serialize_field("project", &self.project)?;
6302 }
6303 if !self.total.is_empty() {
6304 struct_ser.serialize_field("total", &self.total)?;
6305 }
6306 if !self.buckets.is_empty() {
6307 struct_ser.serialize_field("buckets", &self.buckets)?;
6308 }
6309 struct_ser.end()
6310 }
6311}
6312impl<'de> serde::Deserialize<'de> for ProjectCost {
6313 #[allow(deprecated)]
6314 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6315 where
6316 D: serde::Deserializer<'de>,
6317 {
6318 const FIELDS: &[&str] = &["project", "total", "buckets"];
6319 #[allow(clippy::enum_variant_names)]
6320 enum GeneratedField {
6321 Project,
6322 Total,
6323 Buckets,
6324 __SkipField__,
6325 }
6326 impl<'de> serde::Deserialize<'de> for GeneratedField {
6327 fn deserialize<D>(
6328 deserializer: D,
6329 ) -> std::result::Result<GeneratedField, D::Error>
6330 where
6331 D: serde::Deserializer<'de>,
6332 {
6333 struct GeneratedVisitor;
6334 impl serde::de::Visitor<'_> for GeneratedVisitor {
6335 type Value = GeneratedField;
6336 fn expecting(
6337 &self,
6338 formatter: &mut std::fmt::Formatter<'_>,
6339 ) -> std::fmt::Result {
6340 write!(formatter, "expected one of: {:?}", & FIELDS)
6341 }
6342 #[allow(unused_variables)]
6343 fn visit_str<E>(
6344 self,
6345 value: &str,
6346 ) -> std::result::Result<GeneratedField, E>
6347 where
6348 E: serde::de::Error,
6349 {
6350 match value {
6351 "project" => Ok(GeneratedField::Project),
6352 "total" => Ok(GeneratedField::Total),
6353 "buckets" => Ok(GeneratedField::Buckets),
6354 _ => Ok(GeneratedField::__SkipField__),
6355 }
6356 }
6357 }
6358 deserializer.deserialize_identifier(GeneratedVisitor)
6359 }
6360 }
6361 struct GeneratedVisitor;
6362 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6363 type Value = ProjectCost;
6364 fn expecting(
6365 &self,
6366 formatter: &mut std::fmt::Formatter<'_>,
6367 ) -> std::fmt::Result {
6368 formatter.write_str("struct origincloud.billing.v1beta1.ProjectCost")
6369 }
6370 fn visit_map<V>(
6371 self,
6372 mut map_: V,
6373 ) -> std::result::Result<ProjectCost, V::Error>
6374 where
6375 V: serde::de::MapAccess<'de>,
6376 {
6377 let mut project__ = None;
6378 let mut total__ = None;
6379 let mut buckets__ = None;
6380 while let Some(k) = map_.next_key()? {
6381 match k {
6382 GeneratedField::Project => {
6383 if project__.is_some() {
6384 return Err(serde::de::Error::duplicate_field("project"));
6385 }
6386 project__ = Some(map_.next_value()?);
6387 }
6388 GeneratedField::Total => {
6389 if total__.is_some() {
6390 return Err(serde::de::Error::duplicate_field("total"));
6391 }
6392 total__ = Some(map_.next_value()?);
6393 }
6394 GeneratedField::Buckets => {
6395 if buckets__.is_some() {
6396 return Err(serde::de::Error::duplicate_field("buckets"));
6397 }
6398 buckets__ = Some(map_.next_value()?);
6399 }
6400 GeneratedField::__SkipField__ => {
6401 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6402 }
6403 }
6404 }
6405 Ok(ProjectCost {
6406 project: project__.unwrap_or_default(),
6407 total: total__.unwrap_or_default(),
6408 buckets: buckets__.unwrap_or_default(),
6409 })
6410 }
6411 }
6412 deserializer
6413 .deserialize_struct(
6414 "origincloud.billing.v1beta1.ProjectCost",
6415 FIELDS,
6416 GeneratedVisitor,
6417 )
6418 }
6419}
6420impl serde::Serialize for QueryBillingAccountCostRequest {
6421 #[allow(deprecated)]
6422 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6423 where
6424 S: serde::Serializer,
6425 {
6426 use serde::ser::SerializeStruct;
6427 let mut len = 0;
6428 if !self.billing_account.is_empty() {
6429 len += 1;
6430 }
6431 if self.start_time.is_some() {
6432 len += 1;
6433 }
6434 if self.end_time.is_some() {
6435 len += 1;
6436 }
6437 if self.granularity != 0 {
6438 len += 1;
6439 }
6440 let mut struct_ser = serializer
6441 .serialize_struct(
6442 "origincloud.billing.v1beta1.QueryBillingAccountCostRequest",
6443 len,
6444 )?;
6445 if !self.billing_account.is_empty() {
6446 struct_ser.serialize_field("billingAccount", &self.billing_account)?;
6447 }
6448 if let Some(v) = self.start_time.as_ref() {
6449 struct_ser.serialize_field("startTime", v)?;
6450 }
6451 if let Some(v) = self.end_time.as_ref() {
6452 struct_ser.serialize_field("endTime", v)?;
6453 }
6454 if self.granularity != 0 {
6455 let v = Granularity::try_from(self.granularity)
6456 .map_err(|_| serde::ser::Error::custom(
6457 format!("Invalid variant {}", self.granularity),
6458 ))?;
6459 struct_ser.serialize_field("granularity", &v)?;
6460 }
6461 struct_ser.end()
6462 }
6463}
6464impl<'de> serde::Deserialize<'de> for QueryBillingAccountCostRequest {
6465 #[allow(deprecated)]
6466 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6467 where
6468 D: serde::Deserializer<'de>,
6469 {
6470 const FIELDS: &[&str] = &[
6471 "billing_account",
6472 "billingAccount",
6473 "start_time",
6474 "startTime",
6475 "end_time",
6476 "endTime",
6477 "granularity",
6478 ];
6479 #[allow(clippy::enum_variant_names)]
6480 enum GeneratedField {
6481 BillingAccount,
6482 StartTime,
6483 EndTime,
6484 Granularity,
6485 __SkipField__,
6486 }
6487 impl<'de> serde::Deserialize<'de> for GeneratedField {
6488 fn deserialize<D>(
6489 deserializer: D,
6490 ) -> std::result::Result<GeneratedField, D::Error>
6491 where
6492 D: serde::Deserializer<'de>,
6493 {
6494 struct GeneratedVisitor;
6495 impl serde::de::Visitor<'_> for GeneratedVisitor {
6496 type Value = GeneratedField;
6497 fn expecting(
6498 &self,
6499 formatter: &mut std::fmt::Formatter<'_>,
6500 ) -> std::fmt::Result {
6501 write!(formatter, "expected one of: {:?}", & FIELDS)
6502 }
6503 #[allow(unused_variables)]
6504 fn visit_str<E>(
6505 self,
6506 value: &str,
6507 ) -> std::result::Result<GeneratedField, E>
6508 where
6509 E: serde::de::Error,
6510 {
6511 match value {
6512 "billingAccount" | "billing_account" => {
6513 Ok(GeneratedField::BillingAccount)
6514 }
6515 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
6516 "endTime" | "end_time" => Ok(GeneratedField::EndTime),
6517 "granularity" => Ok(GeneratedField::Granularity),
6518 _ => Ok(GeneratedField::__SkipField__),
6519 }
6520 }
6521 }
6522 deserializer.deserialize_identifier(GeneratedVisitor)
6523 }
6524 }
6525 struct GeneratedVisitor;
6526 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6527 type Value = QueryBillingAccountCostRequest;
6528 fn expecting(
6529 &self,
6530 formatter: &mut std::fmt::Formatter<'_>,
6531 ) -> std::fmt::Result {
6532 formatter
6533 .write_str(
6534 "struct origincloud.billing.v1beta1.QueryBillingAccountCostRequest",
6535 )
6536 }
6537 fn visit_map<V>(
6538 self,
6539 mut map_: V,
6540 ) -> std::result::Result<QueryBillingAccountCostRequest, V::Error>
6541 where
6542 V: serde::de::MapAccess<'de>,
6543 {
6544 let mut billing_account__ = None;
6545 let mut start_time__ = None;
6546 let mut end_time__ = None;
6547 let mut granularity__ = None;
6548 while let Some(k) = map_.next_key()? {
6549 match k {
6550 GeneratedField::BillingAccount => {
6551 if billing_account__.is_some() {
6552 return Err(
6553 serde::de::Error::duplicate_field("billingAccount"),
6554 );
6555 }
6556 billing_account__ = Some(map_.next_value()?);
6557 }
6558 GeneratedField::StartTime => {
6559 if start_time__.is_some() {
6560 return Err(serde::de::Error::duplicate_field("startTime"));
6561 }
6562 start_time__ = map_.next_value()?;
6563 }
6564 GeneratedField::EndTime => {
6565 if end_time__.is_some() {
6566 return Err(serde::de::Error::duplicate_field("endTime"));
6567 }
6568 end_time__ = map_.next_value()?;
6569 }
6570 GeneratedField::Granularity => {
6571 if granularity__.is_some() {
6572 return Err(
6573 serde::de::Error::duplicate_field("granularity"),
6574 );
6575 }
6576 granularity__ = Some(
6577 map_.next_value::<Granularity>()? as i32,
6578 );
6579 }
6580 GeneratedField::__SkipField__ => {
6581 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6582 }
6583 }
6584 }
6585 Ok(QueryBillingAccountCostRequest {
6586 billing_account: billing_account__.unwrap_or_default(),
6587 start_time: start_time__,
6588 end_time: end_time__,
6589 granularity: granularity__.unwrap_or_default(),
6590 })
6591 }
6592 }
6593 deserializer
6594 .deserialize_struct(
6595 "origincloud.billing.v1beta1.QueryBillingAccountCostRequest",
6596 FIELDS,
6597 GeneratedVisitor,
6598 )
6599 }
6600}
6601impl serde::Serialize for QueryOrganizationCostRequest {
6602 #[allow(deprecated)]
6603 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6604 where
6605 S: serde::Serializer,
6606 {
6607 use serde::ser::SerializeStruct;
6608 let mut len = 0;
6609 if !self.organization.is_empty() {
6610 len += 1;
6611 }
6612 if self.start_time.is_some() {
6613 len += 1;
6614 }
6615 if self.end_time.is_some() {
6616 len += 1;
6617 }
6618 if self.granularity != 0 {
6619 len += 1;
6620 }
6621 let mut struct_ser = serializer
6622 .serialize_struct(
6623 "origincloud.billing.v1beta1.QueryOrganizationCostRequest",
6624 len,
6625 )?;
6626 if !self.organization.is_empty() {
6627 struct_ser.serialize_field("organization", &self.organization)?;
6628 }
6629 if let Some(v) = self.start_time.as_ref() {
6630 struct_ser.serialize_field("startTime", v)?;
6631 }
6632 if let Some(v) = self.end_time.as_ref() {
6633 struct_ser.serialize_field("endTime", v)?;
6634 }
6635 if self.granularity != 0 {
6636 let v = Granularity::try_from(self.granularity)
6637 .map_err(|_| serde::ser::Error::custom(
6638 format!("Invalid variant {}", self.granularity),
6639 ))?;
6640 struct_ser.serialize_field("granularity", &v)?;
6641 }
6642 struct_ser.end()
6643 }
6644}
6645impl<'de> serde::Deserialize<'de> for QueryOrganizationCostRequest {
6646 #[allow(deprecated)]
6647 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6648 where
6649 D: serde::Deserializer<'de>,
6650 {
6651 const FIELDS: &[&str] = &[
6652 "organization",
6653 "start_time",
6654 "startTime",
6655 "end_time",
6656 "endTime",
6657 "granularity",
6658 ];
6659 #[allow(clippy::enum_variant_names)]
6660 enum GeneratedField {
6661 Organization,
6662 StartTime,
6663 EndTime,
6664 Granularity,
6665 __SkipField__,
6666 }
6667 impl<'de> serde::Deserialize<'de> for GeneratedField {
6668 fn deserialize<D>(
6669 deserializer: D,
6670 ) -> std::result::Result<GeneratedField, D::Error>
6671 where
6672 D: serde::Deserializer<'de>,
6673 {
6674 struct GeneratedVisitor;
6675 impl serde::de::Visitor<'_> for GeneratedVisitor {
6676 type Value = GeneratedField;
6677 fn expecting(
6678 &self,
6679 formatter: &mut std::fmt::Formatter<'_>,
6680 ) -> std::fmt::Result {
6681 write!(formatter, "expected one of: {:?}", & FIELDS)
6682 }
6683 #[allow(unused_variables)]
6684 fn visit_str<E>(
6685 self,
6686 value: &str,
6687 ) -> std::result::Result<GeneratedField, E>
6688 where
6689 E: serde::de::Error,
6690 {
6691 match value {
6692 "organization" => Ok(GeneratedField::Organization),
6693 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
6694 "endTime" | "end_time" => Ok(GeneratedField::EndTime),
6695 "granularity" => Ok(GeneratedField::Granularity),
6696 _ => Ok(GeneratedField::__SkipField__),
6697 }
6698 }
6699 }
6700 deserializer.deserialize_identifier(GeneratedVisitor)
6701 }
6702 }
6703 struct GeneratedVisitor;
6704 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6705 type Value = QueryOrganizationCostRequest;
6706 fn expecting(
6707 &self,
6708 formatter: &mut std::fmt::Formatter<'_>,
6709 ) -> std::fmt::Result {
6710 formatter
6711 .write_str(
6712 "struct origincloud.billing.v1beta1.QueryOrganizationCostRequest",
6713 )
6714 }
6715 fn visit_map<V>(
6716 self,
6717 mut map_: V,
6718 ) -> std::result::Result<QueryOrganizationCostRequest, V::Error>
6719 where
6720 V: serde::de::MapAccess<'de>,
6721 {
6722 let mut organization__ = None;
6723 let mut start_time__ = None;
6724 let mut end_time__ = None;
6725 let mut granularity__ = None;
6726 while let Some(k) = map_.next_key()? {
6727 match k {
6728 GeneratedField::Organization => {
6729 if organization__.is_some() {
6730 return Err(
6731 serde::de::Error::duplicate_field("organization"),
6732 );
6733 }
6734 organization__ = Some(map_.next_value()?);
6735 }
6736 GeneratedField::StartTime => {
6737 if start_time__.is_some() {
6738 return Err(serde::de::Error::duplicate_field("startTime"));
6739 }
6740 start_time__ = map_.next_value()?;
6741 }
6742 GeneratedField::EndTime => {
6743 if end_time__.is_some() {
6744 return Err(serde::de::Error::duplicate_field("endTime"));
6745 }
6746 end_time__ = map_.next_value()?;
6747 }
6748 GeneratedField::Granularity => {
6749 if granularity__.is_some() {
6750 return Err(
6751 serde::de::Error::duplicate_field("granularity"),
6752 );
6753 }
6754 granularity__ = Some(
6755 map_.next_value::<Granularity>()? as i32,
6756 );
6757 }
6758 GeneratedField::__SkipField__ => {
6759 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6760 }
6761 }
6762 }
6763 Ok(QueryOrganizationCostRequest {
6764 organization: organization__.unwrap_or_default(),
6765 start_time: start_time__,
6766 end_time: end_time__,
6767 granularity: granularity__.unwrap_or_default(),
6768 })
6769 }
6770 }
6771 deserializer
6772 .deserialize_struct(
6773 "origincloud.billing.v1beta1.QueryOrganizationCostRequest",
6774 FIELDS,
6775 GeneratedVisitor,
6776 )
6777 }
6778}
6779impl serde::Serialize for QueryProjectCostRequest {
6780 #[allow(deprecated)]
6781 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6782 where
6783 S: serde::Serializer,
6784 {
6785 use serde::ser::SerializeStruct;
6786 let mut len = 0;
6787 if !self.project.is_empty() {
6788 len += 1;
6789 }
6790 if self.start_time.is_some() {
6791 len += 1;
6792 }
6793 if self.end_time.is_some() {
6794 len += 1;
6795 }
6796 if self.granularity != 0 {
6797 len += 1;
6798 }
6799 let mut struct_ser = serializer
6800 .serialize_struct(
6801 "origincloud.billing.v1beta1.QueryProjectCostRequest",
6802 len,
6803 )?;
6804 if !self.project.is_empty() {
6805 struct_ser.serialize_field("project", &self.project)?;
6806 }
6807 if let Some(v) = self.start_time.as_ref() {
6808 struct_ser.serialize_field("startTime", v)?;
6809 }
6810 if let Some(v) = self.end_time.as_ref() {
6811 struct_ser.serialize_field("endTime", v)?;
6812 }
6813 if self.granularity != 0 {
6814 let v = Granularity::try_from(self.granularity)
6815 .map_err(|_| serde::ser::Error::custom(
6816 format!("Invalid variant {}", self.granularity),
6817 ))?;
6818 struct_ser.serialize_field("granularity", &v)?;
6819 }
6820 struct_ser.end()
6821 }
6822}
6823impl<'de> serde::Deserialize<'de> for QueryProjectCostRequest {
6824 #[allow(deprecated)]
6825 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
6826 where
6827 D: serde::Deserializer<'de>,
6828 {
6829 const FIELDS: &[&str] = &[
6830 "project",
6831 "start_time",
6832 "startTime",
6833 "end_time",
6834 "endTime",
6835 "granularity",
6836 ];
6837 #[allow(clippy::enum_variant_names)]
6838 enum GeneratedField {
6839 Project,
6840 StartTime,
6841 EndTime,
6842 Granularity,
6843 __SkipField__,
6844 }
6845 impl<'de> serde::Deserialize<'de> for GeneratedField {
6846 fn deserialize<D>(
6847 deserializer: D,
6848 ) -> std::result::Result<GeneratedField, D::Error>
6849 where
6850 D: serde::Deserializer<'de>,
6851 {
6852 struct GeneratedVisitor;
6853 impl serde::de::Visitor<'_> for GeneratedVisitor {
6854 type Value = GeneratedField;
6855 fn expecting(
6856 &self,
6857 formatter: &mut std::fmt::Formatter<'_>,
6858 ) -> std::fmt::Result {
6859 write!(formatter, "expected one of: {:?}", & FIELDS)
6860 }
6861 #[allow(unused_variables)]
6862 fn visit_str<E>(
6863 self,
6864 value: &str,
6865 ) -> std::result::Result<GeneratedField, E>
6866 where
6867 E: serde::de::Error,
6868 {
6869 match value {
6870 "project" => Ok(GeneratedField::Project),
6871 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
6872 "endTime" | "end_time" => Ok(GeneratedField::EndTime),
6873 "granularity" => Ok(GeneratedField::Granularity),
6874 _ => Ok(GeneratedField::__SkipField__),
6875 }
6876 }
6877 }
6878 deserializer.deserialize_identifier(GeneratedVisitor)
6879 }
6880 }
6881 struct GeneratedVisitor;
6882 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
6883 type Value = QueryProjectCostRequest;
6884 fn expecting(
6885 &self,
6886 formatter: &mut std::fmt::Formatter<'_>,
6887 ) -> std::fmt::Result {
6888 formatter
6889 .write_str(
6890 "struct origincloud.billing.v1beta1.QueryProjectCostRequest",
6891 )
6892 }
6893 fn visit_map<V>(
6894 self,
6895 mut map_: V,
6896 ) -> std::result::Result<QueryProjectCostRequest, V::Error>
6897 where
6898 V: serde::de::MapAccess<'de>,
6899 {
6900 let mut project__ = None;
6901 let mut start_time__ = None;
6902 let mut end_time__ = None;
6903 let mut granularity__ = None;
6904 while let Some(k) = map_.next_key()? {
6905 match k {
6906 GeneratedField::Project => {
6907 if project__.is_some() {
6908 return Err(serde::de::Error::duplicate_field("project"));
6909 }
6910 project__ = Some(map_.next_value()?);
6911 }
6912 GeneratedField::StartTime => {
6913 if start_time__.is_some() {
6914 return Err(serde::de::Error::duplicate_field("startTime"));
6915 }
6916 start_time__ = map_.next_value()?;
6917 }
6918 GeneratedField::EndTime => {
6919 if end_time__.is_some() {
6920 return Err(serde::de::Error::duplicate_field("endTime"));
6921 }
6922 end_time__ = map_.next_value()?;
6923 }
6924 GeneratedField::Granularity => {
6925 if granularity__.is_some() {
6926 return Err(
6927 serde::de::Error::duplicate_field("granularity"),
6928 );
6929 }
6930 granularity__ = Some(
6931 map_.next_value::<Granularity>()? as i32,
6932 );
6933 }
6934 GeneratedField::__SkipField__ => {
6935 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
6936 }
6937 }
6938 }
6939 Ok(QueryProjectCostRequest {
6940 project: project__.unwrap_or_default(),
6941 start_time: start_time__,
6942 end_time: end_time__,
6943 granularity: granularity__.unwrap_or_default(),
6944 })
6945 }
6946 }
6947 deserializer
6948 .deserialize_struct(
6949 "origincloud.billing.v1beta1.QueryProjectCostRequest",
6950 FIELDS,
6951 GeneratedVisitor,
6952 )
6953 }
6954}
6955impl serde::Serialize for QueryProjectUsageRequest {
6956 #[allow(deprecated)]
6957 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
6958 where
6959 S: serde::Serializer,
6960 {
6961 use serde::ser::SerializeStruct;
6962 let mut len = 0;
6963 if !self.project.is_empty() {
6964 len += 1;
6965 }
6966 if self.start_time.is_some() {
6967 len += 1;
6968 }
6969 if self.end_time.is_some() {
6970 len += 1;
6971 }
6972 if self.page_size != 0 {
6973 len += 1;
6974 }
6975 if !self.page_token.is_empty() {
6976 len += 1;
6977 }
6978 let mut struct_ser = serializer
6979 .serialize_struct(
6980 "origincloud.billing.v1beta1.QueryProjectUsageRequest",
6981 len,
6982 )?;
6983 if !self.project.is_empty() {
6984 struct_ser.serialize_field("project", &self.project)?;
6985 }
6986 if let Some(v) = self.start_time.as_ref() {
6987 struct_ser.serialize_field("startTime", v)?;
6988 }
6989 if let Some(v) = self.end_time.as_ref() {
6990 struct_ser.serialize_field("endTime", v)?;
6991 }
6992 if self.page_size != 0 {
6993 struct_ser.serialize_field("pageSize", &self.page_size)?;
6994 }
6995 if !self.page_token.is_empty() {
6996 struct_ser.serialize_field("pageToken", &self.page_token)?;
6997 }
6998 struct_ser.end()
6999 }
7000}
7001impl<'de> serde::Deserialize<'de> for QueryProjectUsageRequest {
7002 #[allow(deprecated)]
7003 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7004 where
7005 D: serde::Deserializer<'de>,
7006 {
7007 const FIELDS: &[&str] = &[
7008 "project",
7009 "start_time",
7010 "startTime",
7011 "end_time",
7012 "endTime",
7013 "page_size",
7014 "pageSize",
7015 "page_token",
7016 "pageToken",
7017 ];
7018 #[allow(clippy::enum_variant_names)]
7019 enum GeneratedField {
7020 Project,
7021 StartTime,
7022 EndTime,
7023 PageSize,
7024 PageToken,
7025 __SkipField__,
7026 }
7027 impl<'de> serde::Deserialize<'de> for GeneratedField {
7028 fn deserialize<D>(
7029 deserializer: D,
7030 ) -> std::result::Result<GeneratedField, D::Error>
7031 where
7032 D: serde::Deserializer<'de>,
7033 {
7034 struct GeneratedVisitor;
7035 impl serde::de::Visitor<'_> for GeneratedVisitor {
7036 type Value = GeneratedField;
7037 fn expecting(
7038 &self,
7039 formatter: &mut std::fmt::Formatter<'_>,
7040 ) -> std::fmt::Result {
7041 write!(formatter, "expected one of: {:?}", & FIELDS)
7042 }
7043 #[allow(unused_variables)]
7044 fn visit_str<E>(
7045 self,
7046 value: &str,
7047 ) -> std::result::Result<GeneratedField, E>
7048 where
7049 E: serde::de::Error,
7050 {
7051 match value {
7052 "project" => Ok(GeneratedField::Project),
7053 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
7054 "endTime" | "end_time" => Ok(GeneratedField::EndTime),
7055 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
7056 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
7057 _ => Ok(GeneratedField::__SkipField__),
7058 }
7059 }
7060 }
7061 deserializer.deserialize_identifier(GeneratedVisitor)
7062 }
7063 }
7064 struct GeneratedVisitor;
7065 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7066 type Value = QueryProjectUsageRequest;
7067 fn expecting(
7068 &self,
7069 formatter: &mut std::fmt::Formatter<'_>,
7070 ) -> std::fmt::Result {
7071 formatter
7072 .write_str(
7073 "struct origincloud.billing.v1beta1.QueryProjectUsageRequest",
7074 )
7075 }
7076 fn visit_map<V>(
7077 self,
7078 mut map_: V,
7079 ) -> std::result::Result<QueryProjectUsageRequest, V::Error>
7080 where
7081 V: serde::de::MapAccess<'de>,
7082 {
7083 let mut project__ = None;
7084 let mut start_time__ = None;
7085 let mut end_time__ = None;
7086 let mut page_size__ = None;
7087 let mut page_token__ = None;
7088 while let Some(k) = map_.next_key()? {
7089 match k {
7090 GeneratedField::Project => {
7091 if project__.is_some() {
7092 return Err(serde::de::Error::duplicate_field("project"));
7093 }
7094 project__ = Some(map_.next_value()?);
7095 }
7096 GeneratedField::StartTime => {
7097 if start_time__.is_some() {
7098 return Err(serde::de::Error::duplicate_field("startTime"));
7099 }
7100 start_time__ = map_.next_value()?;
7101 }
7102 GeneratedField::EndTime => {
7103 if end_time__.is_some() {
7104 return Err(serde::de::Error::duplicate_field("endTime"));
7105 }
7106 end_time__ = map_.next_value()?;
7107 }
7108 GeneratedField::PageSize => {
7109 if page_size__.is_some() {
7110 return Err(serde::de::Error::duplicate_field("pageSize"));
7111 }
7112 page_size__ = Some(
7113 map_
7114 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
7115 .0,
7116 );
7117 }
7118 GeneratedField::PageToken => {
7119 if page_token__.is_some() {
7120 return Err(serde::de::Error::duplicate_field("pageToken"));
7121 }
7122 page_token__ = Some(map_.next_value()?);
7123 }
7124 GeneratedField::__SkipField__ => {
7125 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7126 }
7127 }
7128 }
7129 Ok(QueryProjectUsageRequest {
7130 project: project__.unwrap_or_default(),
7131 start_time: start_time__,
7132 end_time: end_time__,
7133 page_size: page_size__.unwrap_or_default(),
7134 page_token: page_token__.unwrap_or_default(),
7135 })
7136 }
7137 }
7138 deserializer
7139 .deserialize_struct(
7140 "origincloud.billing.v1beta1.QueryProjectUsageRequest",
7141 FIELDS,
7142 GeneratedVisitor,
7143 )
7144 }
7145}
7146impl serde::Serialize for QueryProjectUsageResponse {
7147 #[allow(deprecated)]
7148 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7149 where
7150 S: serde::Serializer,
7151 {
7152 use serde::ser::SerializeStruct;
7153 let mut len = 0;
7154 if !self.usage_records.is_empty() {
7155 len += 1;
7156 }
7157 if !self.next_page_token.is_empty() {
7158 len += 1;
7159 }
7160 let mut struct_ser = serializer
7161 .serialize_struct(
7162 "origincloud.billing.v1beta1.QueryProjectUsageResponse",
7163 len,
7164 )?;
7165 if !self.usage_records.is_empty() {
7166 struct_ser.serialize_field("usageRecords", &self.usage_records)?;
7167 }
7168 if !self.next_page_token.is_empty() {
7169 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
7170 }
7171 struct_ser.end()
7172 }
7173}
7174impl<'de> serde::Deserialize<'de> for QueryProjectUsageResponse {
7175 #[allow(deprecated)]
7176 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7177 where
7178 D: serde::Deserializer<'de>,
7179 {
7180 const FIELDS: &[&str] = &[
7181 "usage_records",
7182 "usageRecords",
7183 "next_page_token",
7184 "nextPageToken",
7185 ];
7186 #[allow(clippy::enum_variant_names)]
7187 enum GeneratedField {
7188 UsageRecords,
7189 NextPageToken,
7190 __SkipField__,
7191 }
7192 impl<'de> serde::Deserialize<'de> for GeneratedField {
7193 fn deserialize<D>(
7194 deserializer: D,
7195 ) -> std::result::Result<GeneratedField, D::Error>
7196 where
7197 D: serde::Deserializer<'de>,
7198 {
7199 struct GeneratedVisitor;
7200 impl serde::de::Visitor<'_> for GeneratedVisitor {
7201 type Value = GeneratedField;
7202 fn expecting(
7203 &self,
7204 formatter: &mut std::fmt::Formatter<'_>,
7205 ) -> std::fmt::Result {
7206 write!(formatter, "expected one of: {:?}", & FIELDS)
7207 }
7208 #[allow(unused_variables)]
7209 fn visit_str<E>(
7210 self,
7211 value: &str,
7212 ) -> std::result::Result<GeneratedField, E>
7213 where
7214 E: serde::de::Error,
7215 {
7216 match value {
7217 "usageRecords" | "usage_records" => {
7218 Ok(GeneratedField::UsageRecords)
7219 }
7220 "nextPageToken" | "next_page_token" => {
7221 Ok(GeneratedField::NextPageToken)
7222 }
7223 _ => Ok(GeneratedField::__SkipField__),
7224 }
7225 }
7226 }
7227 deserializer.deserialize_identifier(GeneratedVisitor)
7228 }
7229 }
7230 struct GeneratedVisitor;
7231 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7232 type Value = QueryProjectUsageResponse;
7233 fn expecting(
7234 &self,
7235 formatter: &mut std::fmt::Formatter<'_>,
7236 ) -> std::fmt::Result {
7237 formatter
7238 .write_str(
7239 "struct origincloud.billing.v1beta1.QueryProjectUsageResponse",
7240 )
7241 }
7242 fn visit_map<V>(
7243 self,
7244 mut map_: V,
7245 ) -> std::result::Result<QueryProjectUsageResponse, V::Error>
7246 where
7247 V: serde::de::MapAccess<'de>,
7248 {
7249 let mut usage_records__ = None;
7250 let mut next_page_token__ = None;
7251 while let Some(k) = map_.next_key()? {
7252 match k {
7253 GeneratedField::UsageRecords => {
7254 if usage_records__.is_some() {
7255 return Err(
7256 serde::de::Error::duplicate_field("usageRecords"),
7257 );
7258 }
7259 usage_records__ = Some(map_.next_value()?);
7260 }
7261 GeneratedField::NextPageToken => {
7262 if next_page_token__.is_some() {
7263 return Err(
7264 serde::de::Error::duplicate_field("nextPageToken"),
7265 );
7266 }
7267 next_page_token__ = Some(map_.next_value()?);
7268 }
7269 GeneratedField::__SkipField__ => {
7270 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7271 }
7272 }
7273 }
7274 Ok(QueryProjectUsageResponse {
7275 usage_records: usage_records__.unwrap_or_default(),
7276 next_page_token: next_page_token__.unwrap_or_default(),
7277 })
7278 }
7279 }
7280 deserializer
7281 .deserialize_struct(
7282 "origincloud.billing.v1beta1.QueryProjectUsageResponse",
7283 FIELDS,
7284 GeneratedVisitor,
7285 )
7286 }
7287}
7288impl serde::Serialize for ServiceCost {
7289 #[allow(deprecated)]
7290 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7291 where
7292 S: serde::Serializer,
7293 {
7294 use serde::ser::SerializeStruct;
7295 let mut len = 0;
7296 if !self.service.is_empty() {
7297 len += 1;
7298 }
7299 if !self.total.is_empty() {
7300 len += 1;
7301 }
7302 if !self.products.is_empty() {
7303 len += 1;
7304 }
7305 let mut struct_ser = serializer
7306 .serialize_struct("origincloud.billing.v1beta1.ServiceCost", len)?;
7307 if !self.service.is_empty() {
7308 struct_ser.serialize_field("service", &self.service)?;
7309 }
7310 if !self.total.is_empty() {
7311 struct_ser.serialize_field("total", &self.total)?;
7312 }
7313 if !self.products.is_empty() {
7314 struct_ser.serialize_field("products", &self.products)?;
7315 }
7316 struct_ser.end()
7317 }
7318}
7319impl<'de> serde::Deserialize<'de> for ServiceCost {
7320 #[allow(deprecated)]
7321 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7322 where
7323 D: serde::Deserializer<'de>,
7324 {
7325 const FIELDS: &[&str] = &["service", "total", "products"];
7326 #[allow(clippy::enum_variant_names)]
7327 enum GeneratedField {
7328 Service,
7329 Total,
7330 Products,
7331 __SkipField__,
7332 }
7333 impl<'de> serde::Deserialize<'de> for GeneratedField {
7334 fn deserialize<D>(
7335 deserializer: D,
7336 ) -> std::result::Result<GeneratedField, D::Error>
7337 where
7338 D: serde::Deserializer<'de>,
7339 {
7340 struct GeneratedVisitor;
7341 impl serde::de::Visitor<'_> for GeneratedVisitor {
7342 type Value = GeneratedField;
7343 fn expecting(
7344 &self,
7345 formatter: &mut std::fmt::Formatter<'_>,
7346 ) -> std::fmt::Result {
7347 write!(formatter, "expected one of: {:?}", & FIELDS)
7348 }
7349 #[allow(unused_variables)]
7350 fn visit_str<E>(
7351 self,
7352 value: &str,
7353 ) -> std::result::Result<GeneratedField, E>
7354 where
7355 E: serde::de::Error,
7356 {
7357 match value {
7358 "service" => Ok(GeneratedField::Service),
7359 "total" => Ok(GeneratedField::Total),
7360 "products" => Ok(GeneratedField::Products),
7361 _ => Ok(GeneratedField::__SkipField__),
7362 }
7363 }
7364 }
7365 deserializer.deserialize_identifier(GeneratedVisitor)
7366 }
7367 }
7368 struct GeneratedVisitor;
7369 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7370 type Value = ServiceCost;
7371 fn expecting(
7372 &self,
7373 formatter: &mut std::fmt::Formatter<'_>,
7374 ) -> std::fmt::Result {
7375 formatter.write_str("struct origincloud.billing.v1beta1.ServiceCost")
7376 }
7377 fn visit_map<V>(
7378 self,
7379 mut map_: V,
7380 ) -> std::result::Result<ServiceCost, V::Error>
7381 where
7382 V: serde::de::MapAccess<'de>,
7383 {
7384 let mut service__ = None;
7385 let mut total__ = None;
7386 let mut products__ = None;
7387 while let Some(k) = map_.next_key()? {
7388 match k {
7389 GeneratedField::Service => {
7390 if service__.is_some() {
7391 return Err(serde::de::Error::duplicate_field("service"));
7392 }
7393 service__ = Some(map_.next_value()?);
7394 }
7395 GeneratedField::Total => {
7396 if total__.is_some() {
7397 return Err(serde::de::Error::duplicate_field("total"));
7398 }
7399 total__ = Some(map_.next_value()?);
7400 }
7401 GeneratedField::Products => {
7402 if products__.is_some() {
7403 return Err(serde::de::Error::duplicate_field("products"));
7404 }
7405 products__ = Some(map_.next_value()?);
7406 }
7407 GeneratedField::__SkipField__ => {
7408 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7409 }
7410 }
7411 }
7412 Ok(ServiceCost {
7413 service: service__.unwrap_or_default(),
7414 total: total__.unwrap_or_default(),
7415 products: products__.unwrap_or_default(),
7416 })
7417 }
7418 }
7419 deserializer
7420 .deserialize_struct(
7421 "origincloud.billing.v1beta1.ServiceCost",
7422 FIELDS,
7423 GeneratedVisitor,
7424 )
7425 }
7426}
7427impl serde::Serialize for SpendLimit {
7428 #[allow(deprecated)]
7429 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7430 where
7431 S: serde::Serializer,
7432 {
7433 use serde::ser::SerializeStruct;
7434 let mut len = 0;
7435 if !self.name.is_empty() {
7436 len += 1;
7437 }
7438 if self.limit.is_some() {
7439 len += 1;
7440 }
7441 if !self.alert_thresholds_percent.is_empty() {
7442 len += 1;
7443 }
7444 if !self.notification_emails.is_empty() {
7445 len += 1;
7446 }
7447 if self.update_time.is_some() {
7448 len += 1;
7449 }
7450 let mut struct_ser = serializer
7451 .serialize_struct("origincloud.billing.v1beta1.SpendLimit", len)?;
7452 if !self.name.is_empty() {
7453 struct_ser.serialize_field("name", &self.name)?;
7454 }
7455 if let Some(v) = self.limit.as_ref() {
7456 struct_ser.serialize_field("limit", v)?;
7457 }
7458 if !self.alert_thresholds_percent.is_empty() {
7459 struct_ser
7460 .serialize_field(
7461 "alertThresholdsPercent",
7462 &self.alert_thresholds_percent,
7463 )?;
7464 }
7465 if !self.notification_emails.is_empty() {
7466 struct_ser.serialize_field("notificationEmails", &self.notification_emails)?;
7467 }
7468 if let Some(v) = self.update_time.as_ref() {
7469 struct_ser.serialize_field("updateTime", v)?;
7470 }
7471 struct_ser.end()
7472 }
7473}
7474impl<'de> serde::Deserialize<'de> for SpendLimit {
7475 #[allow(deprecated)]
7476 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7477 where
7478 D: serde::Deserializer<'de>,
7479 {
7480 const FIELDS: &[&str] = &[
7481 "name",
7482 "limit",
7483 "alert_thresholds_percent",
7484 "alertThresholdsPercent",
7485 "notification_emails",
7486 "notificationEmails",
7487 "update_time",
7488 "updateTime",
7489 ];
7490 #[allow(clippy::enum_variant_names)]
7491 enum GeneratedField {
7492 Name,
7493 Limit,
7494 AlertThresholdsPercent,
7495 NotificationEmails,
7496 UpdateTime,
7497 __SkipField__,
7498 }
7499 impl<'de> serde::Deserialize<'de> for GeneratedField {
7500 fn deserialize<D>(
7501 deserializer: D,
7502 ) -> std::result::Result<GeneratedField, D::Error>
7503 where
7504 D: serde::Deserializer<'de>,
7505 {
7506 struct GeneratedVisitor;
7507 impl serde::de::Visitor<'_> for GeneratedVisitor {
7508 type Value = GeneratedField;
7509 fn expecting(
7510 &self,
7511 formatter: &mut std::fmt::Formatter<'_>,
7512 ) -> std::fmt::Result {
7513 write!(formatter, "expected one of: {:?}", & FIELDS)
7514 }
7515 #[allow(unused_variables)]
7516 fn visit_str<E>(
7517 self,
7518 value: &str,
7519 ) -> std::result::Result<GeneratedField, E>
7520 where
7521 E: serde::de::Error,
7522 {
7523 match value {
7524 "name" => Ok(GeneratedField::Name),
7525 "limit" => Ok(GeneratedField::Limit),
7526 "alertThresholdsPercent" | "alert_thresholds_percent" => {
7527 Ok(GeneratedField::AlertThresholdsPercent)
7528 }
7529 "notificationEmails" | "notification_emails" => {
7530 Ok(GeneratedField::NotificationEmails)
7531 }
7532 "updateTime" | "update_time" => {
7533 Ok(GeneratedField::UpdateTime)
7534 }
7535 _ => Ok(GeneratedField::__SkipField__),
7536 }
7537 }
7538 }
7539 deserializer.deserialize_identifier(GeneratedVisitor)
7540 }
7541 }
7542 struct GeneratedVisitor;
7543 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7544 type Value = SpendLimit;
7545 fn expecting(
7546 &self,
7547 formatter: &mut std::fmt::Formatter<'_>,
7548 ) -> std::fmt::Result {
7549 formatter.write_str("struct origincloud.billing.v1beta1.SpendLimit")
7550 }
7551 fn visit_map<V>(
7552 self,
7553 mut map_: V,
7554 ) -> std::result::Result<SpendLimit, V::Error>
7555 where
7556 V: serde::de::MapAccess<'de>,
7557 {
7558 let mut name__ = None;
7559 let mut limit__ = None;
7560 let mut alert_thresholds_percent__ = None;
7561 let mut notification_emails__ = None;
7562 let mut update_time__ = None;
7563 while let Some(k) = map_.next_key()? {
7564 match k {
7565 GeneratedField::Name => {
7566 if name__.is_some() {
7567 return Err(serde::de::Error::duplicate_field("name"));
7568 }
7569 name__ = Some(map_.next_value()?);
7570 }
7571 GeneratedField::Limit => {
7572 if limit__.is_some() {
7573 return Err(serde::de::Error::duplicate_field("limit"));
7574 }
7575 limit__ = map_.next_value()?;
7576 }
7577 GeneratedField::AlertThresholdsPercent => {
7578 if alert_thresholds_percent__.is_some() {
7579 return Err(
7580 serde::de::Error::duplicate_field("alertThresholdsPercent"),
7581 );
7582 }
7583 alert_thresholds_percent__ = Some(
7584 map_
7585 .next_value::<
7586 Vec<::pbjson::private::NumberDeserialize<_>>,
7587 >()?
7588 .into_iter()
7589 .map(|x| x.0)
7590 .collect(),
7591 );
7592 }
7593 GeneratedField::NotificationEmails => {
7594 if notification_emails__.is_some() {
7595 return Err(
7596 serde::de::Error::duplicate_field("notificationEmails"),
7597 );
7598 }
7599 notification_emails__ = Some(map_.next_value()?);
7600 }
7601 GeneratedField::UpdateTime => {
7602 if update_time__.is_some() {
7603 return Err(serde::de::Error::duplicate_field("updateTime"));
7604 }
7605 update_time__ = map_.next_value()?;
7606 }
7607 GeneratedField::__SkipField__ => {
7608 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7609 }
7610 }
7611 }
7612 Ok(SpendLimit {
7613 name: name__.unwrap_or_default(),
7614 limit: limit__,
7615 alert_thresholds_percent: alert_thresholds_percent__
7616 .unwrap_or_default(),
7617 notification_emails: notification_emails__.unwrap_or_default(),
7618 update_time: update_time__,
7619 })
7620 }
7621 }
7622 deserializer
7623 .deserialize_struct(
7624 "origincloud.billing.v1beta1.SpendLimit",
7625 FIELDS,
7626 GeneratedVisitor,
7627 )
7628 }
7629}
7630impl serde::Serialize for StartPaymentMethodSetupRequest {
7631 #[allow(deprecated)]
7632 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7633 where
7634 S: serde::Serializer,
7635 {
7636 use serde::ser::SerializeStruct;
7637 let mut len = 0;
7638 if !self.name.is_empty() {
7639 len += 1;
7640 }
7641 let mut struct_ser = serializer
7642 .serialize_struct(
7643 "origincloud.billing.v1beta1.StartPaymentMethodSetupRequest",
7644 len,
7645 )?;
7646 if !self.name.is_empty() {
7647 struct_ser.serialize_field("name", &self.name)?;
7648 }
7649 struct_ser.end()
7650 }
7651}
7652impl<'de> serde::Deserialize<'de> for StartPaymentMethodSetupRequest {
7653 #[allow(deprecated)]
7654 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7655 where
7656 D: serde::Deserializer<'de>,
7657 {
7658 const FIELDS: &[&str] = &["name"];
7659 #[allow(clippy::enum_variant_names)]
7660 enum GeneratedField {
7661 Name,
7662 __SkipField__,
7663 }
7664 impl<'de> serde::Deserialize<'de> for GeneratedField {
7665 fn deserialize<D>(
7666 deserializer: D,
7667 ) -> std::result::Result<GeneratedField, D::Error>
7668 where
7669 D: serde::Deserializer<'de>,
7670 {
7671 struct GeneratedVisitor;
7672 impl serde::de::Visitor<'_> for GeneratedVisitor {
7673 type Value = GeneratedField;
7674 fn expecting(
7675 &self,
7676 formatter: &mut std::fmt::Formatter<'_>,
7677 ) -> std::fmt::Result {
7678 write!(formatter, "expected one of: {:?}", & FIELDS)
7679 }
7680 #[allow(unused_variables)]
7681 fn visit_str<E>(
7682 self,
7683 value: &str,
7684 ) -> std::result::Result<GeneratedField, E>
7685 where
7686 E: serde::de::Error,
7687 {
7688 match value {
7689 "name" => Ok(GeneratedField::Name),
7690 _ => Ok(GeneratedField::__SkipField__),
7691 }
7692 }
7693 }
7694 deserializer.deserialize_identifier(GeneratedVisitor)
7695 }
7696 }
7697 struct GeneratedVisitor;
7698 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7699 type Value = StartPaymentMethodSetupRequest;
7700 fn expecting(
7701 &self,
7702 formatter: &mut std::fmt::Formatter<'_>,
7703 ) -> std::fmt::Result {
7704 formatter
7705 .write_str(
7706 "struct origincloud.billing.v1beta1.StartPaymentMethodSetupRequest",
7707 )
7708 }
7709 fn visit_map<V>(
7710 self,
7711 mut map_: V,
7712 ) -> std::result::Result<StartPaymentMethodSetupRequest, V::Error>
7713 where
7714 V: serde::de::MapAccess<'de>,
7715 {
7716 let mut name__ = None;
7717 while let Some(k) = map_.next_key()? {
7718 match k {
7719 GeneratedField::Name => {
7720 if name__.is_some() {
7721 return Err(serde::de::Error::duplicate_field("name"));
7722 }
7723 name__ = Some(map_.next_value()?);
7724 }
7725 GeneratedField::__SkipField__ => {
7726 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7727 }
7728 }
7729 }
7730 Ok(StartPaymentMethodSetupRequest {
7731 name: name__.unwrap_or_default(),
7732 })
7733 }
7734 }
7735 deserializer
7736 .deserialize_struct(
7737 "origincloud.billing.v1beta1.StartPaymentMethodSetupRequest",
7738 FIELDS,
7739 GeneratedVisitor,
7740 )
7741 }
7742}
7743impl serde::Serialize for StartPaymentMethodSetupResponse {
7744 #[allow(deprecated)]
7745 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7746 where
7747 S: serde::Serializer,
7748 {
7749 use serde::ser::SerializeStruct;
7750 let mut len = 0;
7751 if !self.redirect_uri.is_empty() {
7752 len += 1;
7753 }
7754 let mut struct_ser = serializer
7755 .serialize_struct(
7756 "origincloud.billing.v1beta1.StartPaymentMethodSetupResponse",
7757 len,
7758 )?;
7759 if !self.redirect_uri.is_empty() {
7760 struct_ser.serialize_field("redirectUri", &self.redirect_uri)?;
7761 }
7762 struct_ser.end()
7763 }
7764}
7765impl<'de> serde::Deserialize<'de> for StartPaymentMethodSetupResponse {
7766 #[allow(deprecated)]
7767 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7768 where
7769 D: serde::Deserializer<'de>,
7770 {
7771 const FIELDS: &[&str] = &["redirect_uri", "redirectUri"];
7772 #[allow(clippy::enum_variant_names)]
7773 enum GeneratedField {
7774 RedirectUri,
7775 __SkipField__,
7776 }
7777 impl<'de> serde::Deserialize<'de> for GeneratedField {
7778 fn deserialize<D>(
7779 deserializer: D,
7780 ) -> std::result::Result<GeneratedField, D::Error>
7781 where
7782 D: serde::Deserializer<'de>,
7783 {
7784 struct GeneratedVisitor;
7785 impl serde::de::Visitor<'_> for GeneratedVisitor {
7786 type Value = GeneratedField;
7787 fn expecting(
7788 &self,
7789 formatter: &mut std::fmt::Formatter<'_>,
7790 ) -> std::fmt::Result {
7791 write!(formatter, "expected one of: {:?}", & FIELDS)
7792 }
7793 #[allow(unused_variables)]
7794 fn visit_str<E>(
7795 self,
7796 value: &str,
7797 ) -> std::result::Result<GeneratedField, E>
7798 where
7799 E: serde::de::Error,
7800 {
7801 match value {
7802 "redirectUri" | "redirect_uri" => {
7803 Ok(GeneratedField::RedirectUri)
7804 }
7805 _ => Ok(GeneratedField::__SkipField__),
7806 }
7807 }
7808 }
7809 deserializer.deserialize_identifier(GeneratedVisitor)
7810 }
7811 }
7812 struct GeneratedVisitor;
7813 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7814 type Value = StartPaymentMethodSetupResponse;
7815 fn expecting(
7816 &self,
7817 formatter: &mut std::fmt::Formatter<'_>,
7818 ) -> std::fmt::Result {
7819 formatter
7820 .write_str(
7821 "struct origincloud.billing.v1beta1.StartPaymentMethodSetupResponse",
7822 )
7823 }
7824 fn visit_map<V>(
7825 self,
7826 mut map_: V,
7827 ) -> std::result::Result<StartPaymentMethodSetupResponse, V::Error>
7828 where
7829 V: serde::de::MapAccess<'de>,
7830 {
7831 let mut redirect_uri__ = None;
7832 while let Some(k) = map_.next_key()? {
7833 match k {
7834 GeneratedField::RedirectUri => {
7835 if redirect_uri__.is_some() {
7836 return Err(
7837 serde::de::Error::duplicate_field("redirectUri"),
7838 );
7839 }
7840 redirect_uri__ = Some(map_.next_value()?);
7841 }
7842 GeneratedField::__SkipField__ => {
7843 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7844 }
7845 }
7846 }
7847 Ok(StartPaymentMethodSetupResponse {
7848 redirect_uri: redirect_uri__.unwrap_or_default(),
7849 })
7850 }
7851 }
7852 deserializer
7853 .deserialize_struct(
7854 "origincloud.billing.v1beta1.StartPaymentMethodSetupResponse",
7855 FIELDS,
7856 GeneratedVisitor,
7857 )
7858 }
7859}
7860impl serde::Serialize for UpdateBillingAccountRequest {
7861 #[allow(deprecated)]
7862 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7863 where
7864 S: serde::Serializer,
7865 {
7866 use serde::ser::SerializeStruct;
7867 let mut len = 0;
7868 if self.billing_account.is_some() {
7869 len += 1;
7870 }
7871 if self.update_mask.is_some() {
7872 len += 1;
7873 }
7874 let mut struct_ser = serializer
7875 .serialize_struct(
7876 "origincloud.billing.v1beta1.UpdateBillingAccountRequest",
7877 len,
7878 )?;
7879 if let Some(v) = self.billing_account.as_ref() {
7880 struct_ser.serialize_field("billingAccount", v)?;
7881 }
7882 if let Some(v) = self.update_mask.as_ref() {
7883 struct_ser.serialize_field("updateMask", v)?;
7884 }
7885 struct_ser.end()
7886 }
7887}
7888impl<'de> serde::Deserialize<'de> for UpdateBillingAccountRequest {
7889 #[allow(deprecated)]
7890 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
7891 where
7892 D: serde::Deserializer<'de>,
7893 {
7894 const FIELDS: &[&str] = &[
7895 "billing_account",
7896 "billingAccount",
7897 "update_mask",
7898 "updateMask",
7899 ];
7900 #[allow(clippy::enum_variant_names)]
7901 enum GeneratedField {
7902 BillingAccount,
7903 UpdateMask,
7904 __SkipField__,
7905 }
7906 impl<'de> serde::Deserialize<'de> for GeneratedField {
7907 fn deserialize<D>(
7908 deserializer: D,
7909 ) -> std::result::Result<GeneratedField, D::Error>
7910 where
7911 D: serde::Deserializer<'de>,
7912 {
7913 struct GeneratedVisitor;
7914 impl serde::de::Visitor<'_> for GeneratedVisitor {
7915 type Value = GeneratedField;
7916 fn expecting(
7917 &self,
7918 formatter: &mut std::fmt::Formatter<'_>,
7919 ) -> std::fmt::Result {
7920 write!(formatter, "expected one of: {:?}", & FIELDS)
7921 }
7922 #[allow(unused_variables)]
7923 fn visit_str<E>(
7924 self,
7925 value: &str,
7926 ) -> std::result::Result<GeneratedField, E>
7927 where
7928 E: serde::de::Error,
7929 {
7930 match value {
7931 "billingAccount" | "billing_account" => {
7932 Ok(GeneratedField::BillingAccount)
7933 }
7934 "updateMask" | "update_mask" => {
7935 Ok(GeneratedField::UpdateMask)
7936 }
7937 _ => Ok(GeneratedField::__SkipField__),
7938 }
7939 }
7940 }
7941 deserializer.deserialize_identifier(GeneratedVisitor)
7942 }
7943 }
7944 struct GeneratedVisitor;
7945 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
7946 type Value = UpdateBillingAccountRequest;
7947 fn expecting(
7948 &self,
7949 formatter: &mut std::fmt::Formatter<'_>,
7950 ) -> std::fmt::Result {
7951 formatter
7952 .write_str(
7953 "struct origincloud.billing.v1beta1.UpdateBillingAccountRequest",
7954 )
7955 }
7956 fn visit_map<V>(
7957 self,
7958 mut map_: V,
7959 ) -> std::result::Result<UpdateBillingAccountRequest, V::Error>
7960 where
7961 V: serde::de::MapAccess<'de>,
7962 {
7963 let mut billing_account__ = None;
7964 let mut update_mask__ = None;
7965 while let Some(k) = map_.next_key()? {
7966 match k {
7967 GeneratedField::BillingAccount => {
7968 if billing_account__.is_some() {
7969 return Err(
7970 serde::de::Error::duplicate_field("billingAccount"),
7971 );
7972 }
7973 billing_account__ = map_.next_value()?;
7974 }
7975 GeneratedField::UpdateMask => {
7976 if update_mask__.is_some() {
7977 return Err(serde::de::Error::duplicate_field("updateMask"));
7978 }
7979 update_mask__ = map_.next_value()?;
7980 }
7981 GeneratedField::__SkipField__ => {
7982 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
7983 }
7984 }
7985 }
7986 Ok(UpdateBillingAccountRequest {
7987 billing_account: billing_account__,
7988 update_mask: update_mask__,
7989 })
7990 }
7991 }
7992 deserializer
7993 .deserialize_struct(
7994 "origincloud.billing.v1beta1.UpdateBillingAccountRequest",
7995 FIELDS,
7996 GeneratedVisitor,
7997 )
7998 }
7999}
8000impl serde::Serialize for UpdateProjectBillingInfoRequest {
8001 #[allow(deprecated)]
8002 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
8003 where
8004 S: serde::Serializer,
8005 {
8006 use serde::ser::SerializeStruct;
8007 let mut len = 0;
8008 if self.project_billing_info.is_some() {
8009 len += 1;
8010 }
8011 if self.update_mask.is_some() {
8012 len += 1;
8013 }
8014 let mut struct_ser = serializer
8015 .serialize_struct(
8016 "origincloud.billing.v1beta1.UpdateProjectBillingInfoRequest",
8017 len,
8018 )?;
8019 if let Some(v) = self.project_billing_info.as_ref() {
8020 struct_ser.serialize_field("projectBillingInfo", v)?;
8021 }
8022 if let Some(v) = self.update_mask.as_ref() {
8023 struct_ser.serialize_field("updateMask", v)?;
8024 }
8025 struct_ser.end()
8026 }
8027}
8028impl<'de> serde::Deserialize<'de> for UpdateProjectBillingInfoRequest {
8029 #[allow(deprecated)]
8030 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
8031 where
8032 D: serde::Deserializer<'de>,
8033 {
8034 const FIELDS: &[&str] = &[
8035 "project_billing_info",
8036 "projectBillingInfo",
8037 "update_mask",
8038 "updateMask",
8039 ];
8040 #[allow(clippy::enum_variant_names)]
8041 enum GeneratedField {
8042 ProjectBillingInfo,
8043 UpdateMask,
8044 __SkipField__,
8045 }
8046 impl<'de> serde::Deserialize<'de> for GeneratedField {
8047 fn deserialize<D>(
8048 deserializer: D,
8049 ) -> std::result::Result<GeneratedField, D::Error>
8050 where
8051 D: serde::Deserializer<'de>,
8052 {
8053 struct GeneratedVisitor;
8054 impl serde::de::Visitor<'_> for GeneratedVisitor {
8055 type Value = GeneratedField;
8056 fn expecting(
8057 &self,
8058 formatter: &mut std::fmt::Formatter<'_>,
8059 ) -> std::fmt::Result {
8060 write!(formatter, "expected one of: {:?}", & FIELDS)
8061 }
8062 #[allow(unused_variables)]
8063 fn visit_str<E>(
8064 self,
8065 value: &str,
8066 ) -> std::result::Result<GeneratedField, E>
8067 where
8068 E: serde::de::Error,
8069 {
8070 match value {
8071 "projectBillingInfo" | "project_billing_info" => {
8072 Ok(GeneratedField::ProjectBillingInfo)
8073 }
8074 "updateMask" | "update_mask" => {
8075 Ok(GeneratedField::UpdateMask)
8076 }
8077 _ => Ok(GeneratedField::__SkipField__),
8078 }
8079 }
8080 }
8081 deserializer.deserialize_identifier(GeneratedVisitor)
8082 }
8083 }
8084 struct GeneratedVisitor;
8085 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
8086 type Value = UpdateProjectBillingInfoRequest;
8087 fn expecting(
8088 &self,
8089 formatter: &mut std::fmt::Formatter<'_>,
8090 ) -> std::fmt::Result {
8091 formatter
8092 .write_str(
8093 "struct origincloud.billing.v1beta1.UpdateProjectBillingInfoRequest",
8094 )
8095 }
8096 fn visit_map<V>(
8097 self,
8098 mut map_: V,
8099 ) -> std::result::Result<UpdateProjectBillingInfoRequest, V::Error>
8100 where
8101 V: serde::de::MapAccess<'de>,
8102 {
8103 let mut project_billing_info__ = None;
8104 let mut update_mask__ = None;
8105 while let Some(k) = map_.next_key()? {
8106 match k {
8107 GeneratedField::ProjectBillingInfo => {
8108 if project_billing_info__.is_some() {
8109 return Err(
8110 serde::de::Error::duplicate_field("projectBillingInfo"),
8111 );
8112 }
8113 project_billing_info__ = map_.next_value()?;
8114 }
8115 GeneratedField::UpdateMask => {
8116 if update_mask__.is_some() {
8117 return Err(serde::de::Error::duplicate_field("updateMask"));
8118 }
8119 update_mask__ = map_.next_value()?;
8120 }
8121 GeneratedField::__SkipField__ => {
8122 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
8123 }
8124 }
8125 }
8126 Ok(UpdateProjectBillingInfoRequest {
8127 project_billing_info: project_billing_info__,
8128 update_mask: update_mask__,
8129 })
8130 }
8131 }
8132 deserializer
8133 .deserialize_struct(
8134 "origincloud.billing.v1beta1.UpdateProjectBillingInfoRequest",
8135 FIELDS,
8136 GeneratedVisitor,
8137 )
8138 }
8139}
8140impl serde::Serialize for UpdateSpendLimitRequest {
8141 #[allow(deprecated)]
8142 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
8143 where
8144 S: serde::Serializer,
8145 {
8146 use serde::ser::SerializeStruct;
8147 let mut len = 0;
8148 if self.spend_limit.is_some() {
8149 len += 1;
8150 }
8151 if self.update_mask.is_some() {
8152 len += 1;
8153 }
8154 let mut struct_ser = serializer
8155 .serialize_struct(
8156 "origincloud.billing.v1beta1.UpdateSpendLimitRequest",
8157 len,
8158 )?;
8159 if let Some(v) = self.spend_limit.as_ref() {
8160 struct_ser.serialize_field("spendLimit", v)?;
8161 }
8162 if let Some(v) = self.update_mask.as_ref() {
8163 struct_ser.serialize_field("updateMask", v)?;
8164 }
8165 struct_ser.end()
8166 }
8167}
8168impl<'de> serde::Deserialize<'de> for UpdateSpendLimitRequest {
8169 #[allow(deprecated)]
8170 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
8171 where
8172 D: serde::Deserializer<'de>,
8173 {
8174 const FIELDS: &[&str] = &[
8175 "spend_limit",
8176 "spendLimit",
8177 "update_mask",
8178 "updateMask",
8179 ];
8180 #[allow(clippy::enum_variant_names)]
8181 enum GeneratedField {
8182 SpendLimit,
8183 UpdateMask,
8184 __SkipField__,
8185 }
8186 impl<'de> serde::Deserialize<'de> for GeneratedField {
8187 fn deserialize<D>(
8188 deserializer: D,
8189 ) -> std::result::Result<GeneratedField, D::Error>
8190 where
8191 D: serde::Deserializer<'de>,
8192 {
8193 struct GeneratedVisitor;
8194 impl serde::de::Visitor<'_> for GeneratedVisitor {
8195 type Value = GeneratedField;
8196 fn expecting(
8197 &self,
8198 formatter: &mut std::fmt::Formatter<'_>,
8199 ) -> std::fmt::Result {
8200 write!(formatter, "expected one of: {:?}", & FIELDS)
8201 }
8202 #[allow(unused_variables)]
8203 fn visit_str<E>(
8204 self,
8205 value: &str,
8206 ) -> std::result::Result<GeneratedField, E>
8207 where
8208 E: serde::de::Error,
8209 {
8210 match value {
8211 "spendLimit" | "spend_limit" => {
8212 Ok(GeneratedField::SpendLimit)
8213 }
8214 "updateMask" | "update_mask" => {
8215 Ok(GeneratedField::UpdateMask)
8216 }
8217 _ => Ok(GeneratedField::__SkipField__),
8218 }
8219 }
8220 }
8221 deserializer.deserialize_identifier(GeneratedVisitor)
8222 }
8223 }
8224 struct GeneratedVisitor;
8225 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
8226 type Value = UpdateSpendLimitRequest;
8227 fn expecting(
8228 &self,
8229 formatter: &mut std::fmt::Formatter<'_>,
8230 ) -> std::fmt::Result {
8231 formatter
8232 .write_str(
8233 "struct origincloud.billing.v1beta1.UpdateSpendLimitRequest",
8234 )
8235 }
8236 fn visit_map<V>(
8237 self,
8238 mut map_: V,
8239 ) -> std::result::Result<UpdateSpendLimitRequest, V::Error>
8240 where
8241 V: serde::de::MapAccess<'de>,
8242 {
8243 let mut spend_limit__ = None;
8244 let mut update_mask__ = None;
8245 while let Some(k) = map_.next_key()? {
8246 match k {
8247 GeneratedField::SpendLimit => {
8248 if spend_limit__.is_some() {
8249 return Err(serde::de::Error::duplicate_field("spendLimit"));
8250 }
8251 spend_limit__ = map_.next_value()?;
8252 }
8253 GeneratedField::UpdateMask => {
8254 if update_mask__.is_some() {
8255 return Err(serde::de::Error::duplicate_field("updateMask"));
8256 }
8257 update_mask__ = map_.next_value()?;
8258 }
8259 GeneratedField::__SkipField__ => {
8260 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
8261 }
8262 }
8263 }
8264 Ok(UpdateSpendLimitRequest {
8265 spend_limit: spend_limit__,
8266 update_mask: update_mask__,
8267 })
8268 }
8269 }
8270 deserializer
8271 .deserialize_struct(
8272 "origincloud.billing.v1beta1.UpdateSpendLimitRequest",
8273 FIELDS,
8274 GeneratedVisitor,
8275 )
8276 }
8277}
8278impl serde::Serialize for UsageRecord {
8279 #[allow(deprecated)]
8280 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
8281 where
8282 S: serde::Serializer,
8283 {
8284 use serde::ser::SerializeStruct;
8285 let mut len = 0;
8286 if !self.resource_kind.is_empty() {
8287 len += 1;
8288 }
8289 if !self.resource_id.is_empty() {
8290 len += 1;
8291 }
8292 if !self.metric.is_empty() {
8293 len += 1;
8294 }
8295 if !self.product_key.is_empty() {
8296 len += 1;
8297 }
8298 if !self.quantity.is_empty() {
8299 len += 1;
8300 }
8301 if self.start_time.is_some() {
8302 len += 1;
8303 }
8304 if self.end_time.is_some() {
8305 len += 1;
8306 }
8307 if !self.billing_account.is_empty() {
8308 len += 1;
8309 }
8310 let mut struct_ser = serializer
8311 .serialize_struct("origincloud.billing.v1beta1.UsageRecord", len)?;
8312 if !self.resource_kind.is_empty() {
8313 struct_ser.serialize_field("resourceKind", &self.resource_kind)?;
8314 }
8315 if !self.resource_id.is_empty() {
8316 struct_ser.serialize_field("resourceId", &self.resource_id)?;
8317 }
8318 if !self.metric.is_empty() {
8319 struct_ser.serialize_field("metric", &self.metric)?;
8320 }
8321 if !self.product_key.is_empty() {
8322 struct_ser.serialize_field("productKey", &self.product_key)?;
8323 }
8324 if !self.quantity.is_empty() {
8325 struct_ser.serialize_field("quantity", &self.quantity)?;
8326 }
8327 if let Some(v) = self.start_time.as_ref() {
8328 struct_ser.serialize_field("startTime", v)?;
8329 }
8330 if let Some(v) = self.end_time.as_ref() {
8331 struct_ser.serialize_field("endTime", v)?;
8332 }
8333 if !self.billing_account.is_empty() {
8334 struct_ser.serialize_field("billingAccount", &self.billing_account)?;
8335 }
8336 struct_ser.end()
8337 }
8338}
8339impl<'de> serde::Deserialize<'de> for UsageRecord {
8340 #[allow(deprecated)]
8341 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
8342 where
8343 D: serde::Deserializer<'de>,
8344 {
8345 const FIELDS: &[&str] = &[
8346 "resource_kind",
8347 "resourceKind",
8348 "resource_id",
8349 "resourceId",
8350 "metric",
8351 "product_key",
8352 "productKey",
8353 "quantity",
8354 "start_time",
8355 "startTime",
8356 "end_time",
8357 "endTime",
8358 "billing_account",
8359 "billingAccount",
8360 ];
8361 #[allow(clippy::enum_variant_names)]
8362 enum GeneratedField {
8363 ResourceKind,
8364 ResourceId,
8365 Metric,
8366 ProductKey,
8367 Quantity,
8368 StartTime,
8369 EndTime,
8370 BillingAccount,
8371 __SkipField__,
8372 }
8373 impl<'de> serde::Deserialize<'de> for GeneratedField {
8374 fn deserialize<D>(
8375 deserializer: D,
8376 ) -> std::result::Result<GeneratedField, D::Error>
8377 where
8378 D: serde::Deserializer<'de>,
8379 {
8380 struct GeneratedVisitor;
8381 impl serde::de::Visitor<'_> for GeneratedVisitor {
8382 type Value = GeneratedField;
8383 fn expecting(
8384 &self,
8385 formatter: &mut std::fmt::Formatter<'_>,
8386 ) -> std::fmt::Result {
8387 write!(formatter, "expected one of: {:?}", & FIELDS)
8388 }
8389 #[allow(unused_variables)]
8390 fn visit_str<E>(
8391 self,
8392 value: &str,
8393 ) -> std::result::Result<GeneratedField, E>
8394 where
8395 E: serde::de::Error,
8396 {
8397 match value {
8398 "resourceKind" | "resource_kind" => {
8399 Ok(GeneratedField::ResourceKind)
8400 }
8401 "resourceId" | "resource_id" => {
8402 Ok(GeneratedField::ResourceId)
8403 }
8404 "metric" => Ok(GeneratedField::Metric),
8405 "productKey" | "product_key" => {
8406 Ok(GeneratedField::ProductKey)
8407 }
8408 "quantity" => Ok(GeneratedField::Quantity),
8409 "startTime" | "start_time" => Ok(GeneratedField::StartTime),
8410 "endTime" | "end_time" => Ok(GeneratedField::EndTime),
8411 "billingAccount" | "billing_account" => {
8412 Ok(GeneratedField::BillingAccount)
8413 }
8414 _ => Ok(GeneratedField::__SkipField__),
8415 }
8416 }
8417 }
8418 deserializer.deserialize_identifier(GeneratedVisitor)
8419 }
8420 }
8421 struct GeneratedVisitor;
8422 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
8423 type Value = UsageRecord;
8424 fn expecting(
8425 &self,
8426 formatter: &mut std::fmt::Formatter<'_>,
8427 ) -> std::fmt::Result {
8428 formatter.write_str("struct origincloud.billing.v1beta1.UsageRecord")
8429 }
8430 fn visit_map<V>(
8431 self,
8432 mut map_: V,
8433 ) -> std::result::Result<UsageRecord, V::Error>
8434 where
8435 V: serde::de::MapAccess<'de>,
8436 {
8437 let mut resource_kind__ = None;
8438 let mut resource_id__ = None;
8439 let mut metric__ = None;
8440 let mut product_key__ = None;
8441 let mut quantity__ = None;
8442 let mut start_time__ = None;
8443 let mut end_time__ = None;
8444 let mut billing_account__ = None;
8445 while let Some(k) = map_.next_key()? {
8446 match k {
8447 GeneratedField::ResourceKind => {
8448 if resource_kind__.is_some() {
8449 return Err(
8450 serde::de::Error::duplicate_field("resourceKind"),
8451 );
8452 }
8453 resource_kind__ = Some(map_.next_value()?);
8454 }
8455 GeneratedField::ResourceId => {
8456 if resource_id__.is_some() {
8457 return Err(serde::de::Error::duplicate_field("resourceId"));
8458 }
8459 resource_id__ = Some(map_.next_value()?);
8460 }
8461 GeneratedField::Metric => {
8462 if metric__.is_some() {
8463 return Err(serde::de::Error::duplicate_field("metric"));
8464 }
8465 metric__ = Some(map_.next_value()?);
8466 }
8467 GeneratedField::ProductKey => {
8468 if product_key__.is_some() {
8469 return Err(serde::de::Error::duplicate_field("productKey"));
8470 }
8471 product_key__ = Some(map_.next_value()?);
8472 }
8473 GeneratedField::Quantity => {
8474 if quantity__.is_some() {
8475 return Err(serde::de::Error::duplicate_field("quantity"));
8476 }
8477 quantity__ = Some(map_.next_value()?);
8478 }
8479 GeneratedField::StartTime => {
8480 if start_time__.is_some() {
8481 return Err(serde::de::Error::duplicate_field("startTime"));
8482 }
8483 start_time__ = map_.next_value()?;
8484 }
8485 GeneratedField::EndTime => {
8486 if end_time__.is_some() {
8487 return Err(serde::de::Error::duplicate_field("endTime"));
8488 }
8489 end_time__ = map_.next_value()?;
8490 }
8491 GeneratedField::BillingAccount => {
8492 if billing_account__.is_some() {
8493 return Err(
8494 serde::de::Error::duplicate_field("billingAccount"),
8495 );
8496 }
8497 billing_account__ = Some(map_.next_value()?);
8498 }
8499 GeneratedField::__SkipField__ => {
8500 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
8501 }
8502 }
8503 }
8504 Ok(UsageRecord {
8505 resource_kind: resource_kind__.unwrap_or_default(),
8506 resource_id: resource_id__.unwrap_or_default(),
8507 metric: metric__.unwrap_or_default(),
8508 product_key: product_key__.unwrap_or_default(),
8509 quantity: quantity__.unwrap_or_default(),
8510 start_time: start_time__,
8511 end_time: end_time__,
8512 billing_account: billing_account__.unwrap_or_default(),
8513 })
8514 }
8515 }
8516 deserializer
8517 .deserialize_struct(
8518 "origincloud.billing.v1beta1.UsageRecord",
8519 FIELDS,
8520 GeneratedVisitor,
8521 )
8522 }
8523}
8524#[derive(Clone, Debug)]
8528pub struct BillingAccountClient {
8529 service: ::origincloud_core::Service,
8530}
8531impl BillingAccountClient {
8532 pub fn new(client: &::origincloud_core::Client) -> Self {
8534 Self {
8535 service: client.service("billing", false),
8536 }
8537 }
8538 pub fn service(&self) -> &::origincloud_core::Service {
8540 &self.service
8541 }
8542 pub async fn get_billing_account(
8545 &self,
8546 request: GetBillingAccountRequest,
8547 ) -> ::core::result::Result<BillingAccount, ::origincloud_core::Error> {
8548 let p0 = ::origincloud_core::path_value(
8549 "name",
8550 &request.name,
8551 "organizations/*/billingAccounts/*",
8552 )?;
8553 let query = ::origincloud_core::query(&request, &["name"])?;
8554 let call = ::origincloud_core::Request::new(
8555 ::origincloud_core::Method::GET,
8556 format!("/v1beta1/{p0}"),
8557 )
8558 .with_query(query)
8559 .idempotent();
8560 self.service.call(call).await
8561 }
8562 pub async fn list_billing_accounts(
8565 &self,
8566 request: ListBillingAccountsRequest,
8567 ) -> ::core::result::Result<ListBillingAccountsResponse, ::origincloud_core::Error> {
8568 let p0 = ::origincloud_core::path_value(
8569 "parent",
8570 &request.parent,
8571 "organizations/*",
8572 )?;
8573 let query = ::origincloud_core::query(&request, &["parent"])?;
8574 let call = ::origincloud_core::Request::new(
8575 ::origincloud_core::Method::GET,
8576 format!("/v1beta1/{p0}/billingAccounts"),
8577 )
8578 .with_query(query)
8579 .idempotent();
8580 self.service.call(call).await
8581 }
8582 pub fn all_billing_accounts(
8584 &self,
8585 request: ListBillingAccountsRequest,
8586 ) -> ::origincloud_core::Pages<BillingAccount> {
8587 let client = self.clone();
8588 ::origincloud_core::Pages::new(
8589 request,
8590 move |request: ListBillingAccountsRequest| {
8591 let client = client.clone();
8592 async move {
8593 let page = client.list_billing_accounts(request).await?;
8594 Ok((page.billing_accounts, page.next_page_token))
8595 }
8596 },
8597 |request: &mut ListBillingAccountsRequest, token: ::std::string::String| {
8598 request.page_token = token;
8599 },
8600 )
8601 }
8602 pub async fn create_billing_account(
8610 &self,
8611 mut request: CreateBillingAccountRequest,
8612 ) -> ::core::result::Result<BillingAccount, ::origincloud_core::Error> {
8613 if request.request_id.is_empty() {
8614 request.request_id = ::origincloud_core::new_request_id();
8615 }
8616 let p0 = ::origincloud_core::path_value(
8617 "parent",
8618 &request.parent,
8619 "organizations/*",
8620 )?;
8621 let body = ::origincloud_core::json_body(
8622 request
8623 .billing_account
8624 .as_ref()
8625 .unwrap_or(&::core::default::Default::default()),
8626 )?;
8627 let query = ::origincloud_core::query(&request, &["parent", "billingAccount"])?;
8628 let call = ::origincloud_core::Request::new(
8629 ::origincloud_core::Method::POST,
8630 format!("/v1beta1/{p0}/billingAccounts"),
8631 )
8632 .with_body(body)
8633 .with_query(query)
8634 .idempotent();
8635 self.service.call(call).await
8636 }
8637 pub async fn update_billing_account(
8644 &self,
8645 request: UpdateBillingAccountRequest,
8646 ) -> ::core::result::Result<BillingAccount, ::origincloud_core::Error> {
8647 let p0 = ::origincloud_core::path_value(
8648 "billingAccount.name",
8649 request.billing_account.as_ref().map_or("", |m| m.name.as_str()),
8650 "organizations/*/billingAccounts/*",
8651 )?;
8652 let body = ::origincloud_core::json_body(
8653 request
8654 .billing_account
8655 .as_ref()
8656 .unwrap_or(&::core::default::Default::default()),
8657 )?;
8658 let query = ::origincloud_core::query(
8659 &request,
8660 &["billingAccount.name", "billingAccount"],
8661 )?;
8662 let call = ::origincloud_core::Request::new(
8663 ::origincloud_core::Method::PATCH,
8664 format!("/v1beta1/{p0}"),
8665 )
8666 .with_body(body)
8667 .with_query(query);
8668 self.service.call(call).await
8669 }
8670 pub async fn delete_billing_account(
8676 &self,
8677 request: DeleteBillingAccountRequest,
8678 ) -> ::core::result::Result<
8679 ::origincloud_core::protobuf::Empty,
8680 ::origincloud_core::Error,
8681 > {
8682 let p0 = ::origincloud_core::path_value(
8683 "name",
8684 &request.name,
8685 "organizations/*/billingAccounts/*",
8686 )?;
8687 let query = ::origincloud_core::query(&request, &["name"])?;
8688 let call = ::origincloud_core::Request::new(
8689 ::origincloud_core::Method::DELETE,
8690 format!("/v1beta1/{p0}"),
8691 )
8692 .with_query(query);
8693 self.service.call(call).await
8694 }
8695 pub async fn start_payment_method_setup(
8703 &self,
8704 request: StartPaymentMethodSetupRequest,
8705 ) -> ::core::result::Result<
8706 StartPaymentMethodSetupResponse,
8707 ::origincloud_core::Error,
8708 > {
8709 let p0 = ::origincloud_core::path_value(
8710 "name",
8711 &request.name,
8712 "organizations/*/billingAccounts/*",
8713 )?;
8714 let body = ::origincloud_core::json_body(&request)?;
8715 let call = ::origincloud_core::Request::new(
8716 ::origincloud_core::Method::POST,
8717 format!("/v1beta1/{p0}:startPaymentMethodSetup"),
8718 )
8719 .with_body(body);
8720 self.service.call(call).await
8721 }
8722 pub async fn confirm_payment_method_setup(
8733 &self,
8734 request: ConfirmPaymentMethodSetupRequest,
8735 ) -> ::core::result::Result<BillingAccount, ::origincloud_core::Error> {
8736 let p0 = ::origincloud_core::path_value(
8737 "name",
8738 &request.name,
8739 "organizations/*/billingAccounts/*",
8740 )?;
8741 let body = ::origincloud_core::json_body(&request)?;
8742 let call = ::origincloud_core::Request::new(
8743 ::origincloud_core::Method::POST,
8744 format!("/v1beta1/{p0}:confirmPaymentMethodSetup"),
8745 )
8746 .with_body(body);
8747 self.service.call(call).await
8748 }
8749 pub async fn get_project_billing_info(
8752 &self,
8753 request: GetProjectBillingInfoRequest,
8754 ) -> ::core::result::Result<ProjectBillingInfo, ::origincloud_core::Error> {
8755 let p0 = ::origincloud_core::path_value(
8756 "name",
8757 &request.name,
8758 "projects/*/billingInfo",
8759 )?;
8760 let query = ::origincloud_core::query(&request, &["name"])?;
8761 let call = ::origincloud_core::Request::new(
8762 ::origincloud_core::Method::GET,
8763 format!("/v1beta1/{p0}"),
8764 )
8765 .with_query(query)
8766 .idempotent();
8767 self.service.call(call).await
8768 }
8769 pub async fn update_project_billing_info(
8775 &self,
8776 request: UpdateProjectBillingInfoRequest,
8777 ) -> ::core::result::Result<ProjectBillingInfo, ::origincloud_core::Error> {
8778 let p0 = ::origincloud_core::path_value(
8779 "projectBillingInfo.name",
8780 request.project_billing_info.as_ref().map_or("", |m| m.name.as_str()),
8781 "projects/*/billingInfo",
8782 )?;
8783 let body = ::origincloud_core::json_body(
8784 request
8785 .project_billing_info
8786 .as_ref()
8787 .unwrap_or(&::core::default::Default::default()),
8788 )?;
8789 let query = ::origincloud_core::query(
8790 &request,
8791 &["projectBillingInfo.name", "projectBillingInfo"],
8792 )?;
8793 let call = ::origincloud_core::Request::new(
8794 ::origincloud_core::Method::PATCH,
8795 format!("/v1beta1/{p0}"),
8796 )
8797 .with_body(body)
8798 .with_query(query);
8799 self.service.call(call).await
8800 }
8801 pub async fn list_project_billing_info(
8804 &self,
8805 request: ListProjectBillingInfoRequest,
8806 ) -> ::core::result::Result<
8807 ListProjectBillingInfoResponse,
8808 ::origincloud_core::Error,
8809 > {
8810 let p0 = ::origincloud_core::path_value(
8811 "name",
8812 &request.name,
8813 "organizations/*/billingAccounts/*",
8814 )?;
8815 let query = ::origincloud_core::query(&request, &["name"])?;
8816 let call = ::origincloud_core::Request::new(
8817 ::origincloud_core::Method::GET,
8818 format!("/v1beta1/{p0}/projects"),
8819 )
8820 .with_query(query)
8821 .idempotent();
8822 self.service.call(call).await
8823 }
8824 pub fn all_project_billing_infos(
8826 &self,
8827 request: ListProjectBillingInfoRequest,
8828 ) -> ::origincloud_core::Pages<ProjectBillingInfo> {
8829 let client = self.clone();
8830 ::origincloud_core::Pages::new(
8831 request,
8832 move |request: ListProjectBillingInfoRequest| {
8833 let client = client.clone();
8834 async move {
8835 let page = client.list_project_billing_info(request).await?;
8836 Ok((page.project_billing_infos, page.next_page_token))
8837 }
8838 },
8839 |request: &mut ListProjectBillingInfoRequest, token: ::std::string::String| {
8840 request.page_token = token;
8841 },
8842 )
8843 }
8844 pub async fn get_billing_country(
8846 &self,
8847 request: GetBillingCountryRequest,
8848 ) -> ::core::result::Result<BillingCountry, ::origincloud_core::Error> {
8849 let p0 = ::origincloud_core::path_value(
8850 "name",
8851 &request.name,
8852 "billingCountries/*",
8853 )?;
8854 let query = ::origincloud_core::query(&request, &["name"])?;
8855 let call = ::origincloud_core::Request::new(
8856 ::origincloud_core::Method::GET,
8857 format!("/v1beta1/{p0}"),
8858 )
8859 .with_query(query)
8860 .idempotent();
8861 self.service.call(call).await
8862 }
8863 pub async fn list_billing_countries(
8866 &self,
8867 request: ListBillingCountriesRequest,
8868 ) -> ::core::result::Result<
8869 ListBillingCountriesResponse,
8870 ::origincloud_core::Error,
8871 > {
8872 let query = ::origincloud_core::query(&request, &[])?;
8873 let call = ::origincloud_core::Request::new(
8874 ::origincloud_core::Method::GET,
8875 ::std::string::String::from("/v1beta1/billingCountries"),
8876 )
8877 .with_query(query)
8878 .idempotent();
8879 self.service.call(call).await
8880 }
8881 pub fn all_billing_countries(
8883 &self,
8884 request: ListBillingCountriesRequest,
8885 ) -> ::origincloud_core::Pages<BillingCountry> {
8886 let client = self.clone();
8887 ::origincloud_core::Pages::new(
8888 request,
8889 move |request: ListBillingCountriesRequest| {
8890 let client = client.clone();
8891 async move {
8892 let page = client.list_billing_countries(request).await?;
8893 Ok((page.billing_countries, page.next_page_token))
8894 }
8895 },
8896 |request: &mut ListBillingCountriesRequest, token: ::std::string::String| {
8897 request.page_token = token;
8898 },
8899 )
8900 }
8901}
8902#[derive(Clone, Debug)]
8912pub struct CostClient {
8913 service: ::origincloud_core::Service,
8914}
8915impl CostClient {
8916 pub fn new(client: &::origincloud_core::Client) -> Self {
8918 Self {
8919 service: client.service("billing", false),
8920 }
8921 }
8922 pub fn service(&self) -> &::origincloud_core::Service {
8924 &self.service
8925 }
8926 pub async fn query_project_cost(
8929 &self,
8930 request: QueryProjectCostRequest,
8931 ) -> ::core::result::Result<CostReport, ::origincloud_core::Error> {
8932 let p0 = ::origincloud_core::path_value(
8933 "project",
8934 &request.project,
8935 "projects/*",
8936 )?;
8937 let query = ::origincloud_core::query(&request, &["project"])?;
8938 let call = ::origincloud_core::Request::new(
8939 ::origincloud_core::Method::GET,
8940 format!("/v1beta1/{p0}:queryCost"),
8941 )
8942 .with_query(query)
8943 .idempotent();
8944 self.service.call(call).await
8945 }
8946 pub async fn query_organization_cost(
8951 &self,
8952 request: QueryOrganizationCostRequest,
8953 ) -> ::core::result::Result<OrganizationCostReport, ::origincloud_core::Error> {
8954 let p0 = ::origincloud_core::path_value(
8955 "organization",
8956 &request.organization,
8957 "organizations/*",
8958 )?;
8959 let query = ::origincloud_core::query(&request, &["organization"])?;
8960 let call = ::origincloud_core::Request::new(
8961 ::origincloud_core::Method::GET,
8962 format!("/v1beta1/{p0}:queryCost"),
8963 )
8964 .with_query(query)
8965 .idempotent();
8966 self.service.call(call).await
8967 }
8968 pub async fn query_billing_account_cost(
8974 &self,
8975 request: QueryBillingAccountCostRequest,
8976 ) -> ::core::result::Result<CostReport, ::origincloud_core::Error> {
8977 let p0 = ::origincloud_core::path_value(
8978 "billingAccount",
8979 &request.billing_account,
8980 "organizations/*/billingAccounts/*",
8981 )?;
8982 let query = ::origincloud_core::query(&request, &["billingAccount"])?;
8983 let call = ::origincloud_core::Request::new(
8984 ::origincloud_core::Method::GET,
8985 format!("/v1beta1/{p0}:queryCost"),
8986 )
8987 .with_query(query)
8988 .idempotent();
8989 self.service.call(call).await
8990 }
8991 pub async fn query_project_usage(
8995 &self,
8996 request: QueryProjectUsageRequest,
8997 ) -> ::core::result::Result<QueryProjectUsageResponse, ::origincloud_core::Error> {
8998 let p0 = ::origincloud_core::path_value(
8999 "project",
9000 &request.project,
9001 "projects/*",
9002 )?;
9003 let query = ::origincloud_core::query(&request, &["project"])?;
9004 let call = ::origincloud_core::Request::new(
9005 ::origincloud_core::Method::GET,
9006 format!("/v1beta1/{p0}:queryUsage"),
9007 )
9008 .with_query(query)
9009 .idempotent();
9010 self.service.call(call).await
9011 }
9012 pub fn all_usage_records(
9014 &self,
9015 request: QueryProjectUsageRequest,
9016 ) -> ::origincloud_core::Pages<UsageRecord> {
9017 let client = self.clone();
9018 ::origincloud_core::Pages::new(
9019 request,
9020 move |request: QueryProjectUsageRequest| {
9021 let client = client.clone();
9022 async move {
9023 let page = client.query_project_usage(request).await?;
9024 Ok((page.usage_records, page.next_page_token))
9025 }
9026 },
9027 |request: &mut QueryProjectUsageRequest, token: ::std::string::String| {
9028 request.page_token = token;
9029 },
9030 )
9031 }
9032}
9033#[derive(Clone, Debug)]
9043pub struct LegalDocumentClient {
9044 service: ::origincloud_core::Service,
9045}
9046impl LegalDocumentClient {
9047 pub fn new(client: &::origincloud_core::Client) -> Self {
9049 Self {
9050 service: client.service("billing", false),
9051 }
9052 }
9053 pub fn service(&self) -> &::origincloud_core::Service {
9055 &self.service
9056 }
9057 pub async fn list_legal_documents(
9062 &self,
9063 request: ListLegalDocumentsRequest,
9064 ) -> ::core::result::Result<ListLegalDocumentsResponse, ::origincloud_core::Error> {
9065 let query = ::origincloud_core::query(&request, &[])?;
9066 let call = ::origincloud_core::Request::new(
9067 ::origincloud_core::Method::GET,
9068 ::std::string::String::from("/v1beta1/legalDocuments"),
9069 )
9070 .with_query(query)
9071 .idempotent()
9072 .unauthenticated();
9073 self.service.call(call).await
9074 }
9075 pub fn all_legal_documents(
9077 &self,
9078 request: ListLegalDocumentsRequest,
9079 ) -> ::origincloud_core::Pages<LegalDocument> {
9080 let client = self.clone();
9081 ::origincloud_core::Pages::new(
9082 request,
9083 move |request: ListLegalDocumentsRequest| {
9084 let client = client.clone();
9085 async move {
9086 let page = client.list_legal_documents(request).await?;
9087 Ok((page.legal_documents, page.next_page_token))
9088 }
9089 },
9090 |request: &mut ListLegalDocumentsRequest, token: ::std::string::String| {
9091 request.page_token = token;
9092 },
9093 )
9094 }
9095 pub async fn get_legal_document(
9099 &self,
9100 request: GetLegalDocumentRequest,
9101 ) -> ::core::result::Result<LegalDocument, ::origincloud_core::Error> {
9102 let p0 = ::origincloud_core::path_value(
9103 "name",
9104 &request.name,
9105 "legalDocuments/*",
9106 )?;
9107 let query = ::origincloud_core::query(&request, &["name"])?;
9108 let call = ::origincloud_core::Request::new(
9109 ::origincloud_core::Method::GET,
9110 format!("/v1beta1/{p0}"),
9111 )
9112 .with_query(query)
9113 .idempotent()
9114 .unauthenticated();
9115 self.service.call(call).await
9116 }
9117 pub async fn list_legal_document_versions(
9119 &self,
9120 request: ListLegalDocumentVersionsRequest,
9121 ) -> ::core::result::Result<
9122 ListLegalDocumentVersionsResponse,
9123 ::origincloud_core::Error,
9124 > {
9125 let p0 = ::origincloud_core::path_value(
9126 "parent",
9127 &request.parent,
9128 "legalDocuments/*",
9129 )?;
9130 let query = ::origincloud_core::query(&request, &["parent"])?;
9131 let call = ::origincloud_core::Request::new(
9132 ::origincloud_core::Method::GET,
9133 format!("/v1beta1/{p0}/versions"),
9134 )
9135 .with_query(query)
9136 .idempotent()
9137 .unauthenticated();
9138 self.service.call(call).await
9139 }
9140 pub fn all_legal_document_versions(
9142 &self,
9143 request: ListLegalDocumentVersionsRequest,
9144 ) -> ::origincloud_core::Pages<LegalDocumentVersion> {
9145 let client = self.clone();
9146 ::origincloud_core::Pages::new(
9147 request,
9148 move |request: ListLegalDocumentVersionsRequest| {
9149 let client = client.clone();
9150 async move {
9151 let page = client.list_legal_document_versions(request).await?;
9152 Ok((page.legal_document_versions, page.next_page_token))
9153 }
9154 },
9155 |
9156 request: &mut ListLegalDocumentVersionsRequest,
9157 token: ::std::string::String|
9158 request.page_token = token,
9159 )
9160 }
9161 pub async fn get_legal_document_version(
9163 &self,
9164 request: GetLegalDocumentVersionRequest,
9165 ) -> ::core::result::Result<LegalDocumentVersion, ::origincloud_core::Error> {
9166 let p0 = ::origincloud_core::path_value(
9167 "name",
9168 &request.name,
9169 "legalDocuments/*/versions/*",
9170 )?;
9171 let query = ::origincloud_core::query(&request, &["name"])?;
9172 let call = ::origincloud_core::Request::new(
9173 ::origincloud_core::Method::GET,
9174 format!("/v1beta1/{p0}"),
9175 )
9176 .with_query(query)
9177 .idempotent()
9178 .unauthenticated();
9179 self.service.call(call).await
9180 }
9181 pub async fn download_legal_document_version(
9187 &self,
9188 request: DownloadLegalDocumentVersionRequest,
9189 ) -> ::core::result::Result<
9190 ::origincloud_core::HttpBody,
9191 ::origincloud_core::Error,
9192 > {
9193 let p0 = ::origincloud_core::path_value(
9194 "name",
9195 &request.name,
9196 "legalDocuments/*/versions/*",
9197 )?;
9198 let query = ::origincloud_core::query(&request, &["name"])?;
9199 let call = ::origincloud_core::Request::new(
9200 ::origincloud_core::Method::GET,
9201 format!("/v1beta1/{p0}:download"),
9202 )
9203 .with_query(query)
9204 .idempotent()
9205 .unauthenticated();
9206 self.service.call_http_body(call).await
9207 }
9208}
9209#[derive(Clone, Debug)]
9218pub struct PriceListClient {
9219 service: ::origincloud_core::Service,
9220}
9221impl PriceListClient {
9222 pub fn new(client: &::origincloud_core::Client) -> Self {
9224 Self {
9225 service: client.service("billing", false),
9226 }
9227 }
9228 pub fn service(&self) -> &::origincloud_core::Service {
9230 &self.service
9231 }
9232 pub async fn get_price_list(
9236 &self,
9237 request: GetPriceListRequest,
9238 ) -> ::core::result::Result<PriceList, ::origincloud_core::Error> {
9239 let query = ::origincloud_core::query(&request, &[])?;
9240 let call = ::origincloud_core::Request::new(
9241 ::origincloud_core::Method::GET,
9242 ::std::string::String::from("/v1/pricing"),
9243 )
9244 .with_query(query)
9245 .idempotent();
9246 self.service.call(call).await
9247 }
9248}
9249#[derive(Clone, Debug)]
9258pub struct SpendLimitClient {
9259 service: ::origincloud_core::Service,
9260}
9261impl SpendLimitClient {
9262 pub fn new(client: &::origincloud_core::Client) -> Self {
9264 Self {
9265 service: client.service("billing", false),
9266 }
9267 }
9268 pub fn service(&self) -> &::origincloud_core::Service {
9270 &self.service
9271 }
9272 pub async fn get_spend_limit(
9275 &self,
9276 request: GetSpendLimitRequest,
9277 ) -> ::core::result::Result<SpendLimit, ::origincloud_core::Error> {
9278 let p0 = ::origincloud_core::path_value(
9279 "name",
9280 &request.name,
9281 "organizations/*/billingAccounts/*/spendLimit",
9282 )?;
9283 let query = ::origincloud_core::query(&request, &["name"])?;
9284 let call = ::origincloud_core::Request::new(
9285 ::origincloud_core::Method::GET,
9286 format!("/v1beta1/{p0}"),
9287 )
9288 .with_query(query)
9289 .idempotent();
9290 self.service.call(call).await
9291 }
9292 pub async fn update_spend_limit(
9297 &self,
9298 request: UpdateSpendLimitRequest,
9299 ) -> ::core::result::Result<SpendLimit, ::origincloud_core::Error> {
9300 let p0 = ::origincloud_core::path_value(
9301 "spendLimit.name",
9302 request.spend_limit.as_ref().map_or("", |m| m.name.as_str()),
9303 "organizations/*/billingAccounts/*/spendLimit",
9304 )?;
9305 let body = ::origincloud_core::json_body(
9306 request.spend_limit.as_ref().unwrap_or(&::core::default::Default::default()),
9307 )?;
9308 let query = ::origincloud_core::query(
9309 &request,
9310 &["spendLimit.name", "spendLimit"],
9311 )?;
9312 let call = ::origincloud_core::Request::new(
9313 ::origincloud_core::Method::PATCH,
9314 format!("/v1beta1/{p0}"),
9315 )
9316 .with_body(body)
9317 .with_query(query);
9318 self.service.call(call).await
9319 }
9320}