1#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct Snapshot {
9 #[prost(string, tag = "1")]
11 pub name: ::prost::alloc::string::String,
12 #[prost(string, tag = "2")]
15 pub urn: ::prost::alloc::string::String,
16 #[prost(string, tag = "3")]
18 pub source_volume: ::prost::alloc::string::String,
19 #[prost(int32, tag = "4")]
22 pub source_size_gib: i32,
23 #[prost(enumeration = "snapshot::State", tag = "5")]
25 pub state: i32,
26 #[prost(string, tag = "6")]
28 pub state_reason: ::prost::alloc::string::String,
29 #[prost(enumeration = "snapshot::ProtectionState", tag = "7")]
31 pub protection_state: i32,
32 #[prost(string, tag = "8")]
35 pub protection_reason: ::prost::alloc::string::String,
36 #[prost(string, tag = "10")]
39 pub creator: ::prost::alloc::string::String,
40 #[prost(btree_map = "string, string", tag = "11")]
43 pub tags: ::prost::alloc::collections::BTreeMap<
44 ::prost::alloc::string::String,
45 ::prost::alloc::string::String,
46 >,
47}
48pub mod snapshot {
50 #[derive(
52 Clone,
53 Copy,
54 Debug,
55 PartialEq,
56 Eq,
57 Hash,
58 PartialOrd,
59 Ord,
60 ::prost::Enumeration
61 )]
62 #[repr(i32)]
63 pub enum State {
64 Unspecified = 0,
66 Pending = 1,
68 Completed = 2,
70 Deleting = 3,
72 Deleted = 4,
74 Error = 5,
77 }
78 impl State {
79 pub fn as_str_name(&self) -> &'static str {
84 match self {
85 Self::Unspecified => "STATE_UNSPECIFIED",
86 Self::Pending => "PENDING",
87 Self::Completed => "COMPLETED",
88 Self::Deleting => "DELETING",
89 Self::Deleted => "DELETED",
90 Self::Error => "ERROR",
91 }
92 }
93 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
95 match value {
96 "STATE_UNSPECIFIED" => Some(Self::Unspecified),
97 "PENDING" => Some(Self::Pending),
98 "COMPLETED" => Some(Self::Completed),
99 "DELETING" => Some(Self::Deleting),
100 "DELETED" => Some(Self::Deleted),
101 "ERROR" => Some(Self::Error),
102 _ => None,
103 }
104 }
105 }
106 #[derive(
108 Clone,
109 Copy,
110 Debug,
111 PartialEq,
112 Eq,
113 Hash,
114 PartialOrd,
115 Ord,
116 ::prost::Enumeration
117 )]
118 #[repr(i32)]
119 pub enum ProtectionState {
120 Unspecified = 0,
122 Unprotected = 1,
124 Protecting = 2,
126 Protected = 3,
128 Unprotecting = 4,
130 ProtectionFailed = 5,
133 }
134 impl ProtectionState {
135 pub fn as_str_name(&self) -> &'static str {
140 match self {
141 Self::Unspecified => "PROTECTION_STATE_UNSPECIFIED",
142 Self::Unprotected => "UNPROTECTED",
143 Self::Protecting => "PROTECTING",
144 Self::Protected => "PROTECTED",
145 Self::Unprotecting => "UNPROTECTING",
146 Self::ProtectionFailed => "PROTECTION_FAILED",
147 }
148 }
149 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
151 match value {
152 "PROTECTION_STATE_UNSPECIFIED" => Some(Self::Unspecified),
153 "UNPROTECTED" => Some(Self::Unprotected),
154 "PROTECTING" => Some(Self::Protecting),
155 "PROTECTED" => Some(Self::Protected),
156 "UNPROTECTING" => Some(Self::Unprotecting),
157 "PROTECTION_FAILED" => Some(Self::ProtectionFailed),
158 _ => None,
159 }
160 }
161 }
162}
163#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
165pub struct GetSnapshotRequest {
166 #[prost(string, tag = "1")]
168 pub name: ::prost::alloc::string::String,
169}
170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
172pub struct ListSnapshotsRequest {
173 #[prost(string, tag = "1")]
175 pub parent: ::prost::alloc::string::String,
176 #[prost(int32, tag = "2")]
179 pub page_size: i32,
180 #[prost(string, tag = "3")]
182 pub page_token: ::prost::alloc::string::String,
183}
184#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct ListSnapshotsResponse {
187 #[prost(message, repeated, tag = "1")]
189 pub snapshots: ::prost::alloc::vec::Vec<Snapshot>,
190 #[prost(string, tag = "2")]
192 pub next_page_token: ::prost::alloc::string::String,
193}
194#[derive(Clone, PartialEq, ::prost::Message)]
196pub struct CreateSnapshotRequest {
197 #[prost(string, tag = "1")]
199 pub parent: ::prost::alloc::string::String,
200 #[prost(message, optional, tag = "2")]
202 pub snapshot: ::core::option::Option<Snapshot>,
203 #[prost(string, tag = "3")]
206 pub request_id: ::prost::alloc::string::String,
207}
208#[derive(Clone, PartialEq, ::prost::Message)]
210pub struct UpdateSnapshotRequest {
211 #[prost(message, optional, tag = "1")]
213 pub snapshot: ::core::option::Option<Snapshot>,
214 #[prost(message, optional, tag = "2")]
217 pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
218}
219#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
221pub struct DeleteSnapshotRequest {
222 #[prost(string, tag = "1")]
224 pub name: ::prost::alloc::string::String,
225 #[prost(string, tag = "2")]
228 pub request_id: ::prost::alloc::string::String,
229}
230#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
232pub struct ProtectSnapshotRequest {
233 #[prost(string, tag = "1")]
235 pub name: ::prost::alloc::string::String,
236 #[prost(string, tag = "2")]
239 pub request_id: ::prost::alloc::string::String,
240}
241#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
243pub struct UnprotectSnapshotRequest {
244 #[prost(string, tag = "1")]
247 pub name: ::prost::alloc::string::String,
248 #[prost(string, tag = "2")]
251 pub request_id: ::prost::alloc::string::String,
252}
253#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
255pub struct StorageClass {
256 #[prost(string, tag = "1")]
258 pub name: ::prost::alloc::string::String,
259 #[prost(string, tag = "2")]
261 pub display_name: ::prost::alloc::string::String,
262 #[prost(enumeration = "storage_class::Media", tag = "3")]
264 pub media: i32,
265 #[prost(bool, tag = "4")]
268 pub default_class: bool,
269 #[prost(bool, tag = "5")]
272 pub available: bool,
273 #[prost(int32, tag = "6")]
276 pub baseline_iops: i32,
277 #[prost(int32, tag = "7")]
280 pub baseline_throughput_mibps: i32,
281}
282pub mod storage_class {
284 #[derive(
286 Clone,
287 Copy,
288 Debug,
289 PartialEq,
290 Eq,
291 Hash,
292 PartialOrd,
293 Ord,
294 ::prost::Enumeration
295 )]
296 #[repr(i32)]
297 pub enum Media {
298 Unspecified = 0,
300 Ssd = 1,
302 Hdd = 2,
304 }
305 impl Media {
306 pub fn as_str_name(&self) -> &'static str {
311 match self {
312 Self::Unspecified => "MEDIA_UNSPECIFIED",
313 Self::Ssd => "SSD",
314 Self::Hdd => "HDD",
315 }
316 }
317 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
319 match value {
320 "MEDIA_UNSPECIFIED" => Some(Self::Unspecified),
321 "SSD" => Some(Self::Ssd),
322 "HDD" => Some(Self::Hdd),
323 _ => None,
324 }
325 }
326 }
327}
328#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
330pub struct GetStorageClassRequest {
331 #[prost(string, tag = "1")]
333 pub name: ::prost::alloc::string::String,
334}
335#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
338pub struct ListStorageClassesRequest {}
339#[derive(Clone, PartialEq, ::prost::Message)]
341pub struct ListStorageClassesResponse {
342 #[prost(message, repeated, tag = "1")]
344 pub storage_classes: ::prost::alloc::vec::Vec<StorageClass>,
345}
346#[derive(Clone, PartialEq, ::prost::Message)]
348pub struct Volume {
349 #[prost(string, tag = "1")]
351 pub name: ::prost::alloc::string::String,
352 #[prost(string, tag = "2")]
355 pub urn: ::prost::alloc::string::String,
356 #[prost(int32, tag = "3")]
359 pub size_gib: i32,
360 #[prost(string, tag = "4")]
363 pub storage_class: ::prost::alloc::string::String,
364 #[prost(string, tag = "5")]
368 pub source_snapshot: ::prost::alloc::string::String,
369 #[prost(enumeration = "volume::State", tag = "6")]
371 pub state: i32,
372 #[prost(string, tag = "7")]
374 pub state_reason: ::prost::alloc::string::String,
375 #[prost(string, tag = "8")]
377 pub attachment: ::prost::alloc::string::String,
378 #[prost(enumeration = "volume::ResizeState", tag = "9")]
380 pub resize_state: i32,
381 #[prost(string, tag = "10")]
383 pub resize_reason: ::prost::alloc::string::String,
384 #[prost(int32, tag = "11")]
387 pub pending_size_gib: i32,
388 #[prost(string, tag = "12")]
392 pub retention_note: ::prost::alloc::string::String,
393 #[prost(int32, tag = "13")]
396 pub iops: i32,
397 #[prost(int32, tag = "14")]
400 pub throughput_mibps: i32,
401 #[prost(string, tag = "15")]
404 pub creator: ::prost::alloc::string::String,
405 #[prost(btree_map = "string, string", tag = "16")]
408 pub tags: ::prost::alloc::collections::BTreeMap<
409 ::prost::alloc::string::String,
410 ::prost::alloc::string::String,
411 >,
412}
413pub mod volume {
415 #[derive(
417 Clone,
418 Copy,
419 Debug,
420 PartialEq,
421 Eq,
422 Hash,
423 PartialOrd,
424 Ord,
425 ::prost::Enumeration
426 )]
427 #[repr(i32)]
428 pub enum State {
429 Unspecified = 0,
431 Creating = 1,
433 Available = 2,
435 InUse = 3,
437 Deleting = 4,
439 Deleted = 5,
441 Error = 6,
444 }
445 impl State {
446 pub fn as_str_name(&self) -> &'static str {
451 match self {
452 Self::Unspecified => "STATE_UNSPECIFIED",
453 Self::Creating => "CREATING",
454 Self::Available => "AVAILABLE",
455 Self::InUse => "IN_USE",
456 Self::Deleting => "DELETING",
457 Self::Deleted => "DELETED",
458 Self::Error => "ERROR",
459 }
460 }
461 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
463 match value {
464 "STATE_UNSPECIFIED" => Some(Self::Unspecified),
465 "CREATING" => Some(Self::Creating),
466 "AVAILABLE" => Some(Self::Available),
467 "IN_USE" => Some(Self::InUse),
468 "DELETING" => Some(Self::Deleting),
469 "DELETED" => Some(Self::Deleted),
470 "ERROR" => Some(Self::Error),
471 _ => None,
472 }
473 }
474 }
475 #[derive(
477 Clone,
478 Copy,
479 Debug,
480 PartialEq,
481 Eq,
482 Hash,
483 PartialOrd,
484 Ord,
485 ::prost::Enumeration
486 )]
487 #[repr(i32)]
488 pub enum ResizeState {
489 Unspecified = 0,
491 ResizeCompleted = 1,
493 Resizing = 2,
495 ResizeFailed = 3,
498 }
499 impl ResizeState {
500 pub fn as_str_name(&self) -> &'static str {
505 match self {
506 Self::Unspecified => "RESIZE_STATE_UNSPECIFIED",
507 Self::ResizeCompleted => "RESIZE_COMPLETED",
508 Self::Resizing => "RESIZING",
509 Self::ResizeFailed => "RESIZE_FAILED",
510 }
511 }
512 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
514 match value {
515 "RESIZE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
516 "RESIZE_COMPLETED" => Some(Self::ResizeCompleted),
517 "RESIZING" => Some(Self::Resizing),
518 "RESIZE_FAILED" => Some(Self::ResizeFailed),
519 _ => None,
520 }
521 }
522 }
523}
524#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
526pub struct GetVolumeRequest {
527 #[prost(string, tag = "1")]
529 pub name: ::prost::alloc::string::String,
530}
531#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
533pub struct ListVolumesRequest {
534 #[prost(string, tag = "1")]
536 pub parent: ::prost::alloc::string::String,
537 #[prost(int32, tag = "2")]
540 pub page_size: i32,
541 #[prost(string, tag = "3")]
543 pub page_token: ::prost::alloc::string::String,
544}
545#[derive(Clone, PartialEq, ::prost::Message)]
547pub struct ListVolumesResponse {
548 #[prost(message, repeated, tag = "1")]
550 pub volumes: ::prost::alloc::vec::Vec<Volume>,
551 #[prost(string, tag = "2")]
553 pub next_page_token: ::prost::alloc::string::String,
554}
555#[derive(Clone, PartialEq, ::prost::Message)]
557pub struct CreateVolumeRequest {
558 #[prost(string, tag = "1")]
560 pub parent: ::prost::alloc::string::String,
561 #[prost(message, optional, tag = "2")]
564 pub volume: ::core::option::Option<Volume>,
565 #[prost(string, tag = "3")]
568 pub request_id: ::prost::alloc::string::String,
569}
570#[derive(Clone, PartialEq, ::prost::Message)]
572pub struct ImportVolumeRequest {
573 #[prost(string, tag = "1")]
575 pub parent: ::prost::alloc::string::String,
576 #[prost(message, optional, tag = "2")]
579 pub volume: ::core::option::Option<Volume>,
580 #[prost(string, tag = "3")]
583 pub source_url: ::prost::alloc::string::String,
584 #[prost(string, tag = "4")]
587 pub request_id: ::prost::alloc::string::String,
588}
589#[derive(Clone, PartialEq, ::prost::Message)]
591pub struct UpdateVolumeRequest {
592 #[prost(message, optional, tag = "1")]
594 pub volume: ::core::option::Option<Volume>,
595 #[prost(message, optional, tag = "2")]
597 pub update_mask: ::core::option::Option<::origincloud_core::protobuf::FieldMask>,
598 #[prost(string, tag = "3")]
601 pub request_id: ::prost::alloc::string::String,
602}
603#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
605pub struct DeleteVolumeRequest {
606 #[prost(string, tag = "1")]
608 pub name: ::prost::alloc::string::String,
609 #[prost(string, tag = "2")]
612 pub request_id: ::prost::alloc::string::String,
613}
614impl serde::Serialize for CreateSnapshotRequest {
615 #[allow(deprecated)]
616 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
617 where
618 S: serde::Serializer,
619 {
620 use serde::ser::SerializeStruct;
621 let mut len = 0;
622 if !self.parent.is_empty() {
623 len += 1;
624 }
625 if self.snapshot.is_some() {
626 len += 1;
627 }
628 if !self.request_id.is_empty() {
629 len += 1;
630 }
631 let mut struct_ser = serializer
632 .serialize_struct("origincloud.pvs.v1beta1.CreateSnapshotRequest", len)?;
633 if !self.parent.is_empty() {
634 struct_ser.serialize_field("parent", &self.parent)?;
635 }
636 if let Some(v) = self.snapshot.as_ref() {
637 struct_ser.serialize_field("snapshot", v)?;
638 }
639 if !self.request_id.is_empty() {
640 struct_ser.serialize_field("requestId", &self.request_id)?;
641 }
642 struct_ser.end()
643 }
644}
645impl<'de> serde::Deserialize<'de> for CreateSnapshotRequest {
646 #[allow(deprecated)]
647 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
648 where
649 D: serde::Deserializer<'de>,
650 {
651 const FIELDS: &[&str] = &["parent", "snapshot", "request_id", "requestId"];
652 #[allow(clippy::enum_variant_names)]
653 enum GeneratedField {
654 Parent,
655 Snapshot,
656 RequestId,
657 __SkipField__,
658 }
659 impl<'de> serde::Deserialize<'de> for GeneratedField {
660 fn deserialize<D>(
661 deserializer: D,
662 ) -> std::result::Result<GeneratedField, D::Error>
663 where
664 D: serde::Deserializer<'de>,
665 {
666 struct GeneratedVisitor;
667 impl serde::de::Visitor<'_> for GeneratedVisitor {
668 type Value = GeneratedField;
669 fn expecting(
670 &self,
671 formatter: &mut std::fmt::Formatter<'_>,
672 ) -> std::fmt::Result {
673 write!(formatter, "expected one of: {:?}", & FIELDS)
674 }
675 #[allow(unused_variables)]
676 fn visit_str<E>(
677 self,
678 value: &str,
679 ) -> std::result::Result<GeneratedField, E>
680 where
681 E: serde::de::Error,
682 {
683 match value {
684 "parent" => Ok(GeneratedField::Parent),
685 "snapshot" => Ok(GeneratedField::Snapshot),
686 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
687 _ => Ok(GeneratedField::__SkipField__),
688 }
689 }
690 }
691 deserializer.deserialize_identifier(GeneratedVisitor)
692 }
693 }
694 struct GeneratedVisitor;
695 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
696 type Value = CreateSnapshotRequest;
697 fn expecting(
698 &self,
699 formatter: &mut std::fmt::Formatter<'_>,
700 ) -> std::fmt::Result {
701 formatter
702 .write_str("struct origincloud.pvs.v1beta1.CreateSnapshotRequest")
703 }
704 fn visit_map<V>(
705 self,
706 mut map_: V,
707 ) -> std::result::Result<CreateSnapshotRequest, V::Error>
708 where
709 V: serde::de::MapAccess<'de>,
710 {
711 let mut parent__ = None;
712 let mut snapshot__ = None;
713 let mut request_id__ = None;
714 while let Some(k) = map_.next_key()? {
715 match k {
716 GeneratedField::Parent => {
717 if parent__.is_some() {
718 return Err(serde::de::Error::duplicate_field("parent"));
719 }
720 parent__ = Some(map_.next_value()?);
721 }
722 GeneratedField::Snapshot => {
723 if snapshot__.is_some() {
724 return Err(serde::de::Error::duplicate_field("snapshot"));
725 }
726 snapshot__ = map_.next_value()?;
727 }
728 GeneratedField::RequestId => {
729 if request_id__.is_some() {
730 return Err(serde::de::Error::duplicate_field("requestId"));
731 }
732 request_id__ = Some(map_.next_value()?);
733 }
734 GeneratedField::__SkipField__ => {
735 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
736 }
737 }
738 }
739 Ok(CreateSnapshotRequest {
740 parent: parent__.unwrap_or_default(),
741 snapshot: snapshot__,
742 request_id: request_id__.unwrap_or_default(),
743 })
744 }
745 }
746 deserializer
747 .deserialize_struct(
748 "origincloud.pvs.v1beta1.CreateSnapshotRequest",
749 FIELDS,
750 GeneratedVisitor,
751 )
752 }
753}
754impl serde::Serialize for CreateVolumeRequest {
755 #[allow(deprecated)]
756 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
757 where
758 S: serde::Serializer,
759 {
760 use serde::ser::SerializeStruct;
761 let mut len = 0;
762 if !self.parent.is_empty() {
763 len += 1;
764 }
765 if self.volume.is_some() {
766 len += 1;
767 }
768 if !self.request_id.is_empty() {
769 len += 1;
770 }
771 let mut struct_ser = serializer
772 .serialize_struct("origincloud.pvs.v1beta1.CreateVolumeRequest", len)?;
773 if !self.parent.is_empty() {
774 struct_ser.serialize_field("parent", &self.parent)?;
775 }
776 if let Some(v) = self.volume.as_ref() {
777 struct_ser.serialize_field("volume", v)?;
778 }
779 if !self.request_id.is_empty() {
780 struct_ser.serialize_field("requestId", &self.request_id)?;
781 }
782 struct_ser.end()
783 }
784}
785impl<'de> serde::Deserialize<'de> for CreateVolumeRequest {
786 #[allow(deprecated)]
787 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
788 where
789 D: serde::Deserializer<'de>,
790 {
791 const FIELDS: &[&str] = &["parent", "volume", "request_id", "requestId"];
792 #[allow(clippy::enum_variant_names)]
793 enum GeneratedField {
794 Parent,
795 Volume,
796 RequestId,
797 __SkipField__,
798 }
799 impl<'de> serde::Deserialize<'de> for GeneratedField {
800 fn deserialize<D>(
801 deserializer: D,
802 ) -> std::result::Result<GeneratedField, D::Error>
803 where
804 D: serde::Deserializer<'de>,
805 {
806 struct GeneratedVisitor;
807 impl serde::de::Visitor<'_> for GeneratedVisitor {
808 type Value = GeneratedField;
809 fn expecting(
810 &self,
811 formatter: &mut std::fmt::Formatter<'_>,
812 ) -> std::fmt::Result {
813 write!(formatter, "expected one of: {:?}", & FIELDS)
814 }
815 #[allow(unused_variables)]
816 fn visit_str<E>(
817 self,
818 value: &str,
819 ) -> std::result::Result<GeneratedField, E>
820 where
821 E: serde::de::Error,
822 {
823 match value {
824 "parent" => Ok(GeneratedField::Parent),
825 "volume" => Ok(GeneratedField::Volume),
826 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
827 _ => Ok(GeneratedField::__SkipField__),
828 }
829 }
830 }
831 deserializer.deserialize_identifier(GeneratedVisitor)
832 }
833 }
834 struct GeneratedVisitor;
835 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
836 type Value = CreateVolumeRequest;
837 fn expecting(
838 &self,
839 formatter: &mut std::fmt::Formatter<'_>,
840 ) -> std::fmt::Result {
841 formatter.write_str("struct origincloud.pvs.v1beta1.CreateVolumeRequest")
842 }
843 fn visit_map<V>(
844 self,
845 mut map_: V,
846 ) -> std::result::Result<CreateVolumeRequest, V::Error>
847 where
848 V: serde::de::MapAccess<'de>,
849 {
850 let mut parent__ = None;
851 let mut volume__ = None;
852 let mut request_id__ = None;
853 while let Some(k) = map_.next_key()? {
854 match k {
855 GeneratedField::Parent => {
856 if parent__.is_some() {
857 return Err(serde::de::Error::duplicate_field("parent"));
858 }
859 parent__ = Some(map_.next_value()?);
860 }
861 GeneratedField::Volume => {
862 if volume__.is_some() {
863 return Err(serde::de::Error::duplicate_field("volume"));
864 }
865 volume__ = map_.next_value()?;
866 }
867 GeneratedField::RequestId => {
868 if request_id__.is_some() {
869 return Err(serde::de::Error::duplicate_field("requestId"));
870 }
871 request_id__ = Some(map_.next_value()?);
872 }
873 GeneratedField::__SkipField__ => {
874 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
875 }
876 }
877 }
878 Ok(CreateVolumeRequest {
879 parent: parent__.unwrap_or_default(),
880 volume: volume__,
881 request_id: request_id__.unwrap_or_default(),
882 })
883 }
884 }
885 deserializer
886 .deserialize_struct(
887 "origincloud.pvs.v1beta1.CreateVolumeRequest",
888 FIELDS,
889 GeneratedVisitor,
890 )
891 }
892}
893impl serde::Serialize for DeleteSnapshotRequest {
894 #[allow(deprecated)]
895 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
896 where
897 S: serde::Serializer,
898 {
899 use serde::ser::SerializeStruct;
900 let mut len = 0;
901 if !self.name.is_empty() {
902 len += 1;
903 }
904 if !self.request_id.is_empty() {
905 len += 1;
906 }
907 let mut struct_ser = serializer
908 .serialize_struct("origincloud.pvs.v1beta1.DeleteSnapshotRequest", len)?;
909 if !self.name.is_empty() {
910 struct_ser.serialize_field("name", &self.name)?;
911 }
912 if !self.request_id.is_empty() {
913 struct_ser.serialize_field("requestId", &self.request_id)?;
914 }
915 struct_ser.end()
916 }
917}
918impl<'de> serde::Deserialize<'de> for DeleteSnapshotRequest {
919 #[allow(deprecated)]
920 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
921 where
922 D: serde::Deserializer<'de>,
923 {
924 const FIELDS: &[&str] = &["name", "request_id", "requestId"];
925 #[allow(clippy::enum_variant_names)]
926 enum GeneratedField {
927 Name,
928 RequestId,
929 __SkipField__,
930 }
931 impl<'de> serde::Deserialize<'de> for GeneratedField {
932 fn deserialize<D>(
933 deserializer: D,
934 ) -> std::result::Result<GeneratedField, D::Error>
935 where
936 D: serde::Deserializer<'de>,
937 {
938 struct GeneratedVisitor;
939 impl serde::de::Visitor<'_> for GeneratedVisitor {
940 type Value = GeneratedField;
941 fn expecting(
942 &self,
943 formatter: &mut std::fmt::Formatter<'_>,
944 ) -> std::fmt::Result {
945 write!(formatter, "expected one of: {:?}", & FIELDS)
946 }
947 #[allow(unused_variables)]
948 fn visit_str<E>(
949 self,
950 value: &str,
951 ) -> std::result::Result<GeneratedField, E>
952 where
953 E: serde::de::Error,
954 {
955 match value {
956 "name" => Ok(GeneratedField::Name),
957 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
958 _ => Ok(GeneratedField::__SkipField__),
959 }
960 }
961 }
962 deserializer.deserialize_identifier(GeneratedVisitor)
963 }
964 }
965 struct GeneratedVisitor;
966 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
967 type Value = DeleteSnapshotRequest;
968 fn expecting(
969 &self,
970 formatter: &mut std::fmt::Formatter<'_>,
971 ) -> std::fmt::Result {
972 formatter
973 .write_str("struct origincloud.pvs.v1beta1.DeleteSnapshotRequest")
974 }
975 fn visit_map<V>(
976 self,
977 mut map_: V,
978 ) -> std::result::Result<DeleteSnapshotRequest, V::Error>
979 where
980 V: serde::de::MapAccess<'de>,
981 {
982 let mut name__ = None;
983 let mut request_id__ = None;
984 while let Some(k) = map_.next_key()? {
985 match k {
986 GeneratedField::Name => {
987 if name__.is_some() {
988 return Err(serde::de::Error::duplicate_field("name"));
989 }
990 name__ = Some(map_.next_value()?);
991 }
992 GeneratedField::RequestId => {
993 if request_id__.is_some() {
994 return Err(serde::de::Error::duplicate_field("requestId"));
995 }
996 request_id__ = Some(map_.next_value()?);
997 }
998 GeneratedField::__SkipField__ => {
999 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1000 }
1001 }
1002 }
1003 Ok(DeleteSnapshotRequest {
1004 name: name__.unwrap_or_default(),
1005 request_id: request_id__.unwrap_or_default(),
1006 })
1007 }
1008 }
1009 deserializer
1010 .deserialize_struct(
1011 "origincloud.pvs.v1beta1.DeleteSnapshotRequest",
1012 FIELDS,
1013 GeneratedVisitor,
1014 )
1015 }
1016}
1017impl serde::Serialize for DeleteVolumeRequest {
1018 #[allow(deprecated)]
1019 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1020 where
1021 S: serde::Serializer,
1022 {
1023 use serde::ser::SerializeStruct;
1024 let mut len = 0;
1025 if !self.name.is_empty() {
1026 len += 1;
1027 }
1028 if !self.request_id.is_empty() {
1029 len += 1;
1030 }
1031 let mut struct_ser = serializer
1032 .serialize_struct("origincloud.pvs.v1beta1.DeleteVolumeRequest", len)?;
1033 if !self.name.is_empty() {
1034 struct_ser.serialize_field("name", &self.name)?;
1035 }
1036 if !self.request_id.is_empty() {
1037 struct_ser.serialize_field("requestId", &self.request_id)?;
1038 }
1039 struct_ser.end()
1040 }
1041}
1042impl<'de> serde::Deserialize<'de> for DeleteVolumeRequest {
1043 #[allow(deprecated)]
1044 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1045 where
1046 D: serde::Deserializer<'de>,
1047 {
1048 const FIELDS: &[&str] = &["name", "request_id", "requestId"];
1049 #[allow(clippy::enum_variant_names)]
1050 enum GeneratedField {
1051 Name,
1052 RequestId,
1053 __SkipField__,
1054 }
1055 impl<'de> serde::Deserialize<'de> for GeneratedField {
1056 fn deserialize<D>(
1057 deserializer: D,
1058 ) -> std::result::Result<GeneratedField, D::Error>
1059 where
1060 D: serde::Deserializer<'de>,
1061 {
1062 struct GeneratedVisitor;
1063 impl serde::de::Visitor<'_> for GeneratedVisitor {
1064 type Value = GeneratedField;
1065 fn expecting(
1066 &self,
1067 formatter: &mut std::fmt::Formatter<'_>,
1068 ) -> std::fmt::Result {
1069 write!(formatter, "expected one of: {:?}", & FIELDS)
1070 }
1071 #[allow(unused_variables)]
1072 fn visit_str<E>(
1073 self,
1074 value: &str,
1075 ) -> std::result::Result<GeneratedField, E>
1076 where
1077 E: serde::de::Error,
1078 {
1079 match value {
1080 "name" => Ok(GeneratedField::Name),
1081 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
1082 _ => Ok(GeneratedField::__SkipField__),
1083 }
1084 }
1085 }
1086 deserializer.deserialize_identifier(GeneratedVisitor)
1087 }
1088 }
1089 struct GeneratedVisitor;
1090 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1091 type Value = DeleteVolumeRequest;
1092 fn expecting(
1093 &self,
1094 formatter: &mut std::fmt::Formatter<'_>,
1095 ) -> std::fmt::Result {
1096 formatter.write_str("struct origincloud.pvs.v1beta1.DeleteVolumeRequest")
1097 }
1098 fn visit_map<V>(
1099 self,
1100 mut map_: V,
1101 ) -> std::result::Result<DeleteVolumeRequest, V::Error>
1102 where
1103 V: serde::de::MapAccess<'de>,
1104 {
1105 let mut name__ = None;
1106 let mut request_id__ = None;
1107 while let Some(k) = map_.next_key()? {
1108 match k {
1109 GeneratedField::Name => {
1110 if name__.is_some() {
1111 return Err(serde::de::Error::duplicate_field("name"));
1112 }
1113 name__ = Some(map_.next_value()?);
1114 }
1115 GeneratedField::RequestId => {
1116 if request_id__.is_some() {
1117 return Err(serde::de::Error::duplicate_field("requestId"));
1118 }
1119 request_id__ = Some(map_.next_value()?);
1120 }
1121 GeneratedField::__SkipField__ => {
1122 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1123 }
1124 }
1125 }
1126 Ok(DeleteVolumeRequest {
1127 name: name__.unwrap_or_default(),
1128 request_id: request_id__.unwrap_or_default(),
1129 })
1130 }
1131 }
1132 deserializer
1133 .deserialize_struct(
1134 "origincloud.pvs.v1beta1.DeleteVolumeRequest",
1135 FIELDS,
1136 GeneratedVisitor,
1137 )
1138 }
1139}
1140impl serde::Serialize for GetSnapshotRequest {
1141 #[allow(deprecated)]
1142 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1143 where
1144 S: serde::Serializer,
1145 {
1146 use serde::ser::SerializeStruct;
1147 let mut len = 0;
1148 if !self.name.is_empty() {
1149 len += 1;
1150 }
1151 let mut struct_ser = serializer
1152 .serialize_struct("origincloud.pvs.v1beta1.GetSnapshotRequest", len)?;
1153 if !self.name.is_empty() {
1154 struct_ser.serialize_field("name", &self.name)?;
1155 }
1156 struct_ser.end()
1157 }
1158}
1159impl<'de> serde::Deserialize<'de> for GetSnapshotRequest {
1160 #[allow(deprecated)]
1161 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1162 where
1163 D: serde::Deserializer<'de>,
1164 {
1165 const FIELDS: &[&str] = &["name"];
1166 #[allow(clippy::enum_variant_names)]
1167 enum GeneratedField {
1168 Name,
1169 __SkipField__,
1170 }
1171 impl<'de> serde::Deserialize<'de> for GeneratedField {
1172 fn deserialize<D>(
1173 deserializer: D,
1174 ) -> std::result::Result<GeneratedField, D::Error>
1175 where
1176 D: serde::Deserializer<'de>,
1177 {
1178 struct GeneratedVisitor;
1179 impl serde::de::Visitor<'_> for GeneratedVisitor {
1180 type Value = GeneratedField;
1181 fn expecting(
1182 &self,
1183 formatter: &mut std::fmt::Formatter<'_>,
1184 ) -> std::fmt::Result {
1185 write!(formatter, "expected one of: {:?}", & FIELDS)
1186 }
1187 #[allow(unused_variables)]
1188 fn visit_str<E>(
1189 self,
1190 value: &str,
1191 ) -> std::result::Result<GeneratedField, E>
1192 where
1193 E: serde::de::Error,
1194 {
1195 match value {
1196 "name" => Ok(GeneratedField::Name),
1197 _ => Ok(GeneratedField::__SkipField__),
1198 }
1199 }
1200 }
1201 deserializer.deserialize_identifier(GeneratedVisitor)
1202 }
1203 }
1204 struct GeneratedVisitor;
1205 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1206 type Value = GetSnapshotRequest;
1207 fn expecting(
1208 &self,
1209 formatter: &mut std::fmt::Formatter<'_>,
1210 ) -> std::fmt::Result {
1211 formatter.write_str("struct origincloud.pvs.v1beta1.GetSnapshotRequest")
1212 }
1213 fn visit_map<V>(
1214 self,
1215 mut map_: V,
1216 ) -> std::result::Result<GetSnapshotRequest, V::Error>
1217 where
1218 V: serde::de::MapAccess<'de>,
1219 {
1220 let mut name__ = None;
1221 while let Some(k) = map_.next_key()? {
1222 match k {
1223 GeneratedField::Name => {
1224 if name__.is_some() {
1225 return Err(serde::de::Error::duplicate_field("name"));
1226 }
1227 name__ = Some(map_.next_value()?);
1228 }
1229 GeneratedField::__SkipField__ => {
1230 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1231 }
1232 }
1233 }
1234 Ok(GetSnapshotRequest {
1235 name: name__.unwrap_or_default(),
1236 })
1237 }
1238 }
1239 deserializer
1240 .deserialize_struct(
1241 "origincloud.pvs.v1beta1.GetSnapshotRequest",
1242 FIELDS,
1243 GeneratedVisitor,
1244 )
1245 }
1246}
1247impl serde::Serialize for GetStorageClassRequest {
1248 #[allow(deprecated)]
1249 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1250 where
1251 S: serde::Serializer,
1252 {
1253 use serde::ser::SerializeStruct;
1254 let mut len = 0;
1255 if !self.name.is_empty() {
1256 len += 1;
1257 }
1258 let mut struct_ser = serializer
1259 .serialize_struct("origincloud.pvs.v1beta1.GetStorageClassRequest", len)?;
1260 if !self.name.is_empty() {
1261 struct_ser.serialize_field("name", &self.name)?;
1262 }
1263 struct_ser.end()
1264 }
1265}
1266impl<'de> serde::Deserialize<'de> for GetStorageClassRequest {
1267 #[allow(deprecated)]
1268 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1269 where
1270 D: serde::Deserializer<'de>,
1271 {
1272 const FIELDS: &[&str] = &["name"];
1273 #[allow(clippy::enum_variant_names)]
1274 enum GeneratedField {
1275 Name,
1276 __SkipField__,
1277 }
1278 impl<'de> serde::Deserialize<'de> for GeneratedField {
1279 fn deserialize<D>(
1280 deserializer: D,
1281 ) -> std::result::Result<GeneratedField, D::Error>
1282 where
1283 D: serde::Deserializer<'de>,
1284 {
1285 struct GeneratedVisitor;
1286 impl serde::de::Visitor<'_> for GeneratedVisitor {
1287 type Value = GeneratedField;
1288 fn expecting(
1289 &self,
1290 formatter: &mut std::fmt::Formatter<'_>,
1291 ) -> std::fmt::Result {
1292 write!(formatter, "expected one of: {:?}", & FIELDS)
1293 }
1294 #[allow(unused_variables)]
1295 fn visit_str<E>(
1296 self,
1297 value: &str,
1298 ) -> std::result::Result<GeneratedField, E>
1299 where
1300 E: serde::de::Error,
1301 {
1302 match value {
1303 "name" => Ok(GeneratedField::Name),
1304 _ => Ok(GeneratedField::__SkipField__),
1305 }
1306 }
1307 }
1308 deserializer.deserialize_identifier(GeneratedVisitor)
1309 }
1310 }
1311 struct GeneratedVisitor;
1312 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1313 type Value = GetStorageClassRequest;
1314 fn expecting(
1315 &self,
1316 formatter: &mut std::fmt::Formatter<'_>,
1317 ) -> std::fmt::Result {
1318 formatter
1319 .write_str("struct origincloud.pvs.v1beta1.GetStorageClassRequest")
1320 }
1321 fn visit_map<V>(
1322 self,
1323 mut map_: V,
1324 ) -> std::result::Result<GetStorageClassRequest, V::Error>
1325 where
1326 V: serde::de::MapAccess<'de>,
1327 {
1328 let mut name__ = None;
1329 while let Some(k) = map_.next_key()? {
1330 match k {
1331 GeneratedField::Name => {
1332 if name__.is_some() {
1333 return Err(serde::de::Error::duplicate_field("name"));
1334 }
1335 name__ = Some(map_.next_value()?);
1336 }
1337 GeneratedField::__SkipField__ => {
1338 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1339 }
1340 }
1341 }
1342 Ok(GetStorageClassRequest {
1343 name: name__.unwrap_or_default(),
1344 })
1345 }
1346 }
1347 deserializer
1348 .deserialize_struct(
1349 "origincloud.pvs.v1beta1.GetStorageClassRequest",
1350 FIELDS,
1351 GeneratedVisitor,
1352 )
1353 }
1354}
1355impl serde::Serialize for GetVolumeRequest {
1356 #[allow(deprecated)]
1357 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1358 where
1359 S: serde::Serializer,
1360 {
1361 use serde::ser::SerializeStruct;
1362 let mut len = 0;
1363 if !self.name.is_empty() {
1364 len += 1;
1365 }
1366 let mut struct_ser = serializer
1367 .serialize_struct("origincloud.pvs.v1beta1.GetVolumeRequest", len)?;
1368 if !self.name.is_empty() {
1369 struct_ser.serialize_field("name", &self.name)?;
1370 }
1371 struct_ser.end()
1372 }
1373}
1374impl<'de> serde::Deserialize<'de> for GetVolumeRequest {
1375 #[allow(deprecated)]
1376 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1377 where
1378 D: serde::Deserializer<'de>,
1379 {
1380 const FIELDS: &[&str] = &["name"];
1381 #[allow(clippy::enum_variant_names)]
1382 enum GeneratedField {
1383 Name,
1384 __SkipField__,
1385 }
1386 impl<'de> serde::Deserialize<'de> for GeneratedField {
1387 fn deserialize<D>(
1388 deserializer: D,
1389 ) -> std::result::Result<GeneratedField, D::Error>
1390 where
1391 D: serde::Deserializer<'de>,
1392 {
1393 struct GeneratedVisitor;
1394 impl serde::de::Visitor<'_> for GeneratedVisitor {
1395 type Value = GeneratedField;
1396 fn expecting(
1397 &self,
1398 formatter: &mut std::fmt::Formatter<'_>,
1399 ) -> std::fmt::Result {
1400 write!(formatter, "expected one of: {:?}", & FIELDS)
1401 }
1402 #[allow(unused_variables)]
1403 fn visit_str<E>(
1404 self,
1405 value: &str,
1406 ) -> std::result::Result<GeneratedField, E>
1407 where
1408 E: serde::de::Error,
1409 {
1410 match value {
1411 "name" => Ok(GeneratedField::Name),
1412 _ => Ok(GeneratedField::__SkipField__),
1413 }
1414 }
1415 }
1416 deserializer.deserialize_identifier(GeneratedVisitor)
1417 }
1418 }
1419 struct GeneratedVisitor;
1420 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1421 type Value = GetVolumeRequest;
1422 fn expecting(
1423 &self,
1424 formatter: &mut std::fmt::Formatter<'_>,
1425 ) -> std::fmt::Result {
1426 formatter.write_str("struct origincloud.pvs.v1beta1.GetVolumeRequest")
1427 }
1428 fn visit_map<V>(
1429 self,
1430 mut map_: V,
1431 ) -> std::result::Result<GetVolumeRequest, V::Error>
1432 where
1433 V: serde::de::MapAccess<'de>,
1434 {
1435 let mut name__ = None;
1436 while let Some(k) = map_.next_key()? {
1437 match k {
1438 GeneratedField::Name => {
1439 if name__.is_some() {
1440 return Err(serde::de::Error::duplicate_field("name"));
1441 }
1442 name__ = Some(map_.next_value()?);
1443 }
1444 GeneratedField::__SkipField__ => {
1445 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1446 }
1447 }
1448 }
1449 Ok(GetVolumeRequest {
1450 name: name__.unwrap_or_default(),
1451 })
1452 }
1453 }
1454 deserializer
1455 .deserialize_struct(
1456 "origincloud.pvs.v1beta1.GetVolumeRequest",
1457 FIELDS,
1458 GeneratedVisitor,
1459 )
1460 }
1461}
1462impl serde::Serialize for ImportVolumeRequest {
1463 #[allow(deprecated)]
1464 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1465 where
1466 S: serde::Serializer,
1467 {
1468 use serde::ser::SerializeStruct;
1469 let mut len = 0;
1470 if !self.parent.is_empty() {
1471 len += 1;
1472 }
1473 if self.volume.is_some() {
1474 len += 1;
1475 }
1476 if !self.source_url.is_empty() {
1477 len += 1;
1478 }
1479 if !self.request_id.is_empty() {
1480 len += 1;
1481 }
1482 let mut struct_ser = serializer
1483 .serialize_struct("origincloud.pvs.v1beta1.ImportVolumeRequest", len)?;
1484 if !self.parent.is_empty() {
1485 struct_ser.serialize_field("parent", &self.parent)?;
1486 }
1487 if let Some(v) = self.volume.as_ref() {
1488 struct_ser.serialize_field("volume", v)?;
1489 }
1490 if !self.source_url.is_empty() {
1491 struct_ser.serialize_field("sourceUrl", &self.source_url)?;
1492 }
1493 if !self.request_id.is_empty() {
1494 struct_ser.serialize_field("requestId", &self.request_id)?;
1495 }
1496 struct_ser.end()
1497 }
1498}
1499impl<'de> serde::Deserialize<'de> for ImportVolumeRequest {
1500 #[allow(deprecated)]
1501 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1502 where
1503 D: serde::Deserializer<'de>,
1504 {
1505 const FIELDS: &[&str] = &[
1506 "parent",
1507 "volume",
1508 "source_url",
1509 "sourceUrl",
1510 "request_id",
1511 "requestId",
1512 ];
1513 #[allow(clippy::enum_variant_names)]
1514 enum GeneratedField {
1515 Parent,
1516 Volume,
1517 SourceUrl,
1518 RequestId,
1519 __SkipField__,
1520 }
1521 impl<'de> serde::Deserialize<'de> for GeneratedField {
1522 fn deserialize<D>(
1523 deserializer: D,
1524 ) -> std::result::Result<GeneratedField, D::Error>
1525 where
1526 D: serde::Deserializer<'de>,
1527 {
1528 struct GeneratedVisitor;
1529 impl serde::de::Visitor<'_> for GeneratedVisitor {
1530 type Value = GeneratedField;
1531 fn expecting(
1532 &self,
1533 formatter: &mut std::fmt::Formatter<'_>,
1534 ) -> std::fmt::Result {
1535 write!(formatter, "expected one of: {:?}", & FIELDS)
1536 }
1537 #[allow(unused_variables)]
1538 fn visit_str<E>(
1539 self,
1540 value: &str,
1541 ) -> std::result::Result<GeneratedField, E>
1542 where
1543 E: serde::de::Error,
1544 {
1545 match value {
1546 "parent" => Ok(GeneratedField::Parent),
1547 "volume" => Ok(GeneratedField::Volume),
1548 "sourceUrl" | "source_url" => Ok(GeneratedField::SourceUrl),
1549 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
1550 _ => Ok(GeneratedField::__SkipField__),
1551 }
1552 }
1553 }
1554 deserializer.deserialize_identifier(GeneratedVisitor)
1555 }
1556 }
1557 struct GeneratedVisitor;
1558 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1559 type Value = ImportVolumeRequest;
1560 fn expecting(
1561 &self,
1562 formatter: &mut std::fmt::Formatter<'_>,
1563 ) -> std::fmt::Result {
1564 formatter.write_str("struct origincloud.pvs.v1beta1.ImportVolumeRequest")
1565 }
1566 fn visit_map<V>(
1567 self,
1568 mut map_: V,
1569 ) -> std::result::Result<ImportVolumeRequest, V::Error>
1570 where
1571 V: serde::de::MapAccess<'de>,
1572 {
1573 let mut parent__ = None;
1574 let mut volume__ = None;
1575 let mut source_url__ = None;
1576 let mut request_id__ = None;
1577 while let Some(k) = map_.next_key()? {
1578 match k {
1579 GeneratedField::Parent => {
1580 if parent__.is_some() {
1581 return Err(serde::de::Error::duplicate_field("parent"));
1582 }
1583 parent__ = Some(map_.next_value()?);
1584 }
1585 GeneratedField::Volume => {
1586 if volume__.is_some() {
1587 return Err(serde::de::Error::duplicate_field("volume"));
1588 }
1589 volume__ = map_.next_value()?;
1590 }
1591 GeneratedField::SourceUrl => {
1592 if source_url__.is_some() {
1593 return Err(serde::de::Error::duplicate_field("sourceUrl"));
1594 }
1595 source_url__ = Some(map_.next_value()?);
1596 }
1597 GeneratedField::RequestId => {
1598 if request_id__.is_some() {
1599 return Err(serde::de::Error::duplicate_field("requestId"));
1600 }
1601 request_id__ = Some(map_.next_value()?);
1602 }
1603 GeneratedField::__SkipField__ => {
1604 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1605 }
1606 }
1607 }
1608 Ok(ImportVolumeRequest {
1609 parent: parent__.unwrap_or_default(),
1610 volume: volume__,
1611 source_url: source_url__.unwrap_or_default(),
1612 request_id: request_id__.unwrap_or_default(),
1613 })
1614 }
1615 }
1616 deserializer
1617 .deserialize_struct(
1618 "origincloud.pvs.v1beta1.ImportVolumeRequest",
1619 FIELDS,
1620 GeneratedVisitor,
1621 )
1622 }
1623}
1624impl serde::Serialize for ListSnapshotsRequest {
1625 #[allow(deprecated)]
1626 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1627 where
1628 S: serde::Serializer,
1629 {
1630 use serde::ser::SerializeStruct;
1631 let mut len = 0;
1632 if !self.parent.is_empty() {
1633 len += 1;
1634 }
1635 if self.page_size != 0 {
1636 len += 1;
1637 }
1638 if !self.page_token.is_empty() {
1639 len += 1;
1640 }
1641 let mut struct_ser = serializer
1642 .serialize_struct("origincloud.pvs.v1beta1.ListSnapshotsRequest", len)?;
1643 if !self.parent.is_empty() {
1644 struct_ser.serialize_field("parent", &self.parent)?;
1645 }
1646 if self.page_size != 0 {
1647 struct_ser.serialize_field("pageSize", &self.page_size)?;
1648 }
1649 if !self.page_token.is_empty() {
1650 struct_ser.serialize_field("pageToken", &self.page_token)?;
1651 }
1652 struct_ser.end()
1653 }
1654}
1655impl<'de> serde::Deserialize<'de> for ListSnapshotsRequest {
1656 #[allow(deprecated)]
1657 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1658 where
1659 D: serde::Deserializer<'de>,
1660 {
1661 const FIELDS: &[&str] = &[
1662 "parent",
1663 "page_size",
1664 "pageSize",
1665 "page_token",
1666 "pageToken",
1667 ];
1668 #[allow(clippy::enum_variant_names)]
1669 enum GeneratedField {
1670 Parent,
1671 PageSize,
1672 PageToken,
1673 __SkipField__,
1674 }
1675 impl<'de> serde::Deserialize<'de> for GeneratedField {
1676 fn deserialize<D>(
1677 deserializer: D,
1678 ) -> std::result::Result<GeneratedField, D::Error>
1679 where
1680 D: serde::Deserializer<'de>,
1681 {
1682 struct GeneratedVisitor;
1683 impl serde::de::Visitor<'_> for GeneratedVisitor {
1684 type Value = GeneratedField;
1685 fn expecting(
1686 &self,
1687 formatter: &mut std::fmt::Formatter<'_>,
1688 ) -> std::fmt::Result {
1689 write!(formatter, "expected one of: {:?}", & FIELDS)
1690 }
1691 #[allow(unused_variables)]
1692 fn visit_str<E>(
1693 self,
1694 value: &str,
1695 ) -> std::result::Result<GeneratedField, E>
1696 where
1697 E: serde::de::Error,
1698 {
1699 match value {
1700 "parent" => Ok(GeneratedField::Parent),
1701 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
1702 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
1703 _ => Ok(GeneratedField::__SkipField__),
1704 }
1705 }
1706 }
1707 deserializer.deserialize_identifier(GeneratedVisitor)
1708 }
1709 }
1710 struct GeneratedVisitor;
1711 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1712 type Value = ListSnapshotsRequest;
1713 fn expecting(
1714 &self,
1715 formatter: &mut std::fmt::Formatter<'_>,
1716 ) -> std::fmt::Result {
1717 formatter
1718 .write_str("struct origincloud.pvs.v1beta1.ListSnapshotsRequest")
1719 }
1720 fn visit_map<V>(
1721 self,
1722 mut map_: V,
1723 ) -> std::result::Result<ListSnapshotsRequest, V::Error>
1724 where
1725 V: serde::de::MapAccess<'de>,
1726 {
1727 let mut parent__ = None;
1728 let mut page_size__ = None;
1729 let mut page_token__ = None;
1730 while let Some(k) = map_.next_key()? {
1731 match k {
1732 GeneratedField::Parent => {
1733 if parent__.is_some() {
1734 return Err(serde::de::Error::duplicate_field("parent"));
1735 }
1736 parent__ = Some(map_.next_value()?);
1737 }
1738 GeneratedField::PageSize => {
1739 if page_size__.is_some() {
1740 return Err(serde::de::Error::duplicate_field("pageSize"));
1741 }
1742 page_size__ = Some(
1743 map_
1744 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
1745 .0,
1746 );
1747 }
1748 GeneratedField::PageToken => {
1749 if page_token__.is_some() {
1750 return Err(serde::de::Error::duplicate_field("pageToken"));
1751 }
1752 page_token__ = Some(map_.next_value()?);
1753 }
1754 GeneratedField::__SkipField__ => {
1755 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1756 }
1757 }
1758 }
1759 Ok(ListSnapshotsRequest {
1760 parent: parent__.unwrap_or_default(),
1761 page_size: page_size__.unwrap_or_default(),
1762 page_token: page_token__.unwrap_or_default(),
1763 })
1764 }
1765 }
1766 deserializer
1767 .deserialize_struct(
1768 "origincloud.pvs.v1beta1.ListSnapshotsRequest",
1769 FIELDS,
1770 GeneratedVisitor,
1771 )
1772 }
1773}
1774impl serde::Serialize for ListSnapshotsResponse {
1775 #[allow(deprecated)]
1776 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1777 where
1778 S: serde::Serializer,
1779 {
1780 use serde::ser::SerializeStruct;
1781 let mut len = 0;
1782 if !self.snapshots.is_empty() {
1783 len += 1;
1784 }
1785 if !self.next_page_token.is_empty() {
1786 len += 1;
1787 }
1788 let mut struct_ser = serializer
1789 .serialize_struct("origincloud.pvs.v1beta1.ListSnapshotsResponse", len)?;
1790 if !self.snapshots.is_empty() {
1791 struct_ser.serialize_field("snapshots", &self.snapshots)?;
1792 }
1793 if !self.next_page_token.is_empty() {
1794 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
1795 }
1796 struct_ser.end()
1797 }
1798}
1799impl<'de> serde::Deserialize<'de> for ListSnapshotsResponse {
1800 #[allow(deprecated)]
1801 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1802 where
1803 D: serde::Deserializer<'de>,
1804 {
1805 const FIELDS: &[&str] = &["snapshots", "next_page_token", "nextPageToken"];
1806 #[allow(clippy::enum_variant_names)]
1807 enum GeneratedField {
1808 Snapshots,
1809 NextPageToken,
1810 __SkipField__,
1811 }
1812 impl<'de> serde::Deserialize<'de> for GeneratedField {
1813 fn deserialize<D>(
1814 deserializer: D,
1815 ) -> std::result::Result<GeneratedField, D::Error>
1816 where
1817 D: serde::Deserializer<'de>,
1818 {
1819 struct GeneratedVisitor;
1820 impl serde::de::Visitor<'_> for GeneratedVisitor {
1821 type Value = GeneratedField;
1822 fn expecting(
1823 &self,
1824 formatter: &mut std::fmt::Formatter<'_>,
1825 ) -> std::fmt::Result {
1826 write!(formatter, "expected one of: {:?}", & FIELDS)
1827 }
1828 #[allow(unused_variables)]
1829 fn visit_str<E>(
1830 self,
1831 value: &str,
1832 ) -> std::result::Result<GeneratedField, E>
1833 where
1834 E: serde::de::Error,
1835 {
1836 match value {
1837 "snapshots" => Ok(GeneratedField::Snapshots),
1838 "nextPageToken" | "next_page_token" => {
1839 Ok(GeneratedField::NextPageToken)
1840 }
1841 _ => Ok(GeneratedField::__SkipField__),
1842 }
1843 }
1844 }
1845 deserializer.deserialize_identifier(GeneratedVisitor)
1846 }
1847 }
1848 struct GeneratedVisitor;
1849 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1850 type Value = ListSnapshotsResponse;
1851 fn expecting(
1852 &self,
1853 formatter: &mut std::fmt::Formatter<'_>,
1854 ) -> std::fmt::Result {
1855 formatter
1856 .write_str("struct origincloud.pvs.v1beta1.ListSnapshotsResponse")
1857 }
1858 fn visit_map<V>(
1859 self,
1860 mut map_: V,
1861 ) -> std::result::Result<ListSnapshotsResponse, V::Error>
1862 where
1863 V: serde::de::MapAccess<'de>,
1864 {
1865 let mut snapshots__ = None;
1866 let mut next_page_token__ = None;
1867 while let Some(k) = map_.next_key()? {
1868 match k {
1869 GeneratedField::Snapshots => {
1870 if snapshots__.is_some() {
1871 return Err(serde::de::Error::duplicate_field("snapshots"));
1872 }
1873 snapshots__ = Some(map_.next_value()?);
1874 }
1875 GeneratedField::NextPageToken => {
1876 if next_page_token__.is_some() {
1877 return Err(
1878 serde::de::Error::duplicate_field("nextPageToken"),
1879 );
1880 }
1881 next_page_token__ = Some(map_.next_value()?);
1882 }
1883 GeneratedField::__SkipField__ => {
1884 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1885 }
1886 }
1887 }
1888 Ok(ListSnapshotsResponse {
1889 snapshots: snapshots__.unwrap_or_default(),
1890 next_page_token: next_page_token__.unwrap_or_default(),
1891 })
1892 }
1893 }
1894 deserializer
1895 .deserialize_struct(
1896 "origincloud.pvs.v1beta1.ListSnapshotsResponse",
1897 FIELDS,
1898 GeneratedVisitor,
1899 )
1900 }
1901}
1902impl serde::Serialize for ListStorageClassesRequest {
1903 #[allow(deprecated)]
1904 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1905 where
1906 S: serde::Serializer,
1907 {
1908 use serde::ser::SerializeStruct;
1909 let len = 0;
1910 let struct_ser = serializer
1911 .serialize_struct("origincloud.pvs.v1beta1.ListStorageClassesRequest", len)?;
1912 struct_ser.end()
1913 }
1914}
1915impl<'de> serde::Deserialize<'de> for ListStorageClassesRequest {
1916 #[allow(deprecated)]
1917 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1918 where
1919 D: serde::Deserializer<'de>,
1920 {
1921 const FIELDS: &[&str] = &[];
1922 #[allow(clippy::enum_variant_names)]
1923 enum GeneratedField {
1924 __SkipField__,
1925 }
1926 impl<'de> serde::Deserialize<'de> for GeneratedField {
1927 fn deserialize<D>(
1928 deserializer: D,
1929 ) -> std::result::Result<GeneratedField, D::Error>
1930 where
1931 D: serde::Deserializer<'de>,
1932 {
1933 struct GeneratedVisitor;
1934 impl serde::de::Visitor<'_> for GeneratedVisitor {
1935 type Value = GeneratedField;
1936 fn expecting(
1937 &self,
1938 formatter: &mut std::fmt::Formatter<'_>,
1939 ) -> std::fmt::Result {
1940 write!(formatter, "expected one of: {:?}", & FIELDS)
1941 }
1942 #[allow(unused_variables)]
1943 fn visit_str<E>(
1944 self,
1945 value: &str,
1946 ) -> std::result::Result<GeneratedField, E>
1947 where
1948 E: serde::de::Error,
1949 {
1950 Ok(GeneratedField::__SkipField__)
1951 }
1952 }
1953 deserializer.deserialize_identifier(GeneratedVisitor)
1954 }
1955 }
1956 struct GeneratedVisitor;
1957 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1958 type Value = ListStorageClassesRequest;
1959 fn expecting(
1960 &self,
1961 formatter: &mut std::fmt::Formatter<'_>,
1962 ) -> std::fmt::Result {
1963 formatter
1964 .write_str(
1965 "struct origincloud.pvs.v1beta1.ListStorageClassesRequest",
1966 )
1967 }
1968 fn visit_map<V>(
1969 self,
1970 mut map_: V,
1971 ) -> std::result::Result<ListStorageClassesRequest, V::Error>
1972 where
1973 V: serde::de::MapAccess<'de>,
1974 {
1975 while map_.next_key::<GeneratedField>()?.is_some() {
1976 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1977 }
1978 Ok(ListStorageClassesRequest {})
1979 }
1980 }
1981 deserializer
1982 .deserialize_struct(
1983 "origincloud.pvs.v1beta1.ListStorageClassesRequest",
1984 FIELDS,
1985 GeneratedVisitor,
1986 )
1987 }
1988}
1989impl serde::Serialize for ListStorageClassesResponse {
1990 #[allow(deprecated)]
1991 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1992 where
1993 S: serde::Serializer,
1994 {
1995 use serde::ser::SerializeStruct;
1996 let mut len = 0;
1997 if !self.storage_classes.is_empty() {
1998 len += 1;
1999 }
2000 let mut struct_ser = serializer
2001 .serialize_struct(
2002 "origincloud.pvs.v1beta1.ListStorageClassesResponse",
2003 len,
2004 )?;
2005 if !self.storage_classes.is_empty() {
2006 struct_ser.serialize_field("storageClasses", &self.storage_classes)?;
2007 }
2008 struct_ser.end()
2009 }
2010}
2011impl<'de> serde::Deserialize<'de> for ListStorageClassesResponse {
2012 #[allow(deprecated)]
2013 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2014 where
2015 D: serde::Deserializer<'de>,
2016 {
2017 const FIELDS: &[&str] = &["storage_classes", "storageClasses"];
2018 #[allow(clippy::enum_variant_names)]
2019 enum GeneratedField {
2020 StorageClasses,
2021 __SkipField__,
2022 }
2023 impl<'de> serde::Deserialize<'de> for GeneratedField {
2024 fn deserialize<D>(
2025 deserializer: D,
2026 ) -> std::result::Result<GeneratedField, D::Error>
2027 where
2028 D: serde::Deserializer<'de>,
2029 {
2030 struct GeneratedVisitor;
2031 impl serde::de::Visitor<'_> for GeneratedVisitor {
2032 type Value = GeneratedField;
2033 fn expecting(
2034 &self,
2035 formatter: &mut std::fmt::Formatter<'_>,
2036 ) -> std::fmt::Result {
2037 write!(formatter, "expected one of: {:?}", & FIELDS)
2038 }
2039 #[allow(unused_variables)]
2040 fn visit_str<E>(
2041 self,
2042 value: &str,
2043 ) -> std::result::Result<GeneratedField, E>
2044 where
2045 E: serde::de::Error,
2046 {
2047 match value {
2048 "storageClasses" | "storage_classes" => {
2049 Ok(GeneratedField::StorageClasses)
2050 }
2051 _ => Ok(GeneratedField::__SkipField__),
2052 }
2053 }
2054 }
2055 deserializer.deserialize_identifier(GeneratedVisitor)
2056 }
2057 }
2058 struct GeneratedVisitor;
2059 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2060 type Value = ListStorageClassesResponse;
2061 fn expecting(
2062 &self,
2063 formatter: &mut std::fmt::Formatter<'_>,
2064 ) -> std::fmt::Result {
2065 formatter
2066 .write_str(
2067 "struct origincloud.pvs.v1beta1.ListStorageClassesResponse",
2068 )
2069 }
2070 fn visit_map<V>(
2071 self,
2072 mut map_: V,
2073 ) -> std::result::Result<ListStorageClassesResponse, V::Error>
2074 where
2075 V: serde::de::MapAccess<'de>,
2076 {
2077 let mut storage_classes__ = None;
2078 while let Some(k) = map_.next_key()? {
2079 match k {
2080 GeneratedField::StorageClasses => {
2081 if storage_classes__.is_some() {
2082 return Err(
2083 serde::de::Error::duplicate_field("storageClasses"),
2084 );
2085 }
2086 storage_classes__ = Some(map_.next_value()?);
2087 }
2088 GeneratedField::__SkipField__ => {
2089 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2090 }
2091 }
2092 }
2093 Ok(ListStorageClassesResponse {
2094 storage_classes: storage_classes__.unwrap_or_default(),
2095 })
2096 }
2097 }
2098 deserializer
2099 .deserialize_struct(
2100 "origincloud.pvs.v1beta1.ListStorageClassesResponse",
2101 FIELDS,
2102 GeneratedVisitor,
2103 )
2104 }
2105}
2106impl serde::Serialize for ListVolumesRequest {
2107 #[allow(deprecated)]
2108 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2109 where
2110 S: serde::Serializer,
2111 {
2112 use serde::ser::SerializeStruct;
2113 let mut len = 0;
2114 if !self.parent.is_empty() {
2115 len += 1;
2116 }
2117 if self.page_size != 0 {
2118 len += 1;
2119 }
2120 if !self.page_token.is_empty() {
2121 len += 1;
2122 }
2123 let mut struct_ser = serializer
2124 .serialize_struct("origincloud.pvs.v1beta1.ListVolumesRequest", len)?;
2125 if !self.parent.is_empty() {
2126 struct_ser.serialize_field("parent", &self.parent)?;
2127 }
2128 if self.page_size != 0 {
2129 struct_ser.serialize_field("pageSize", &self.page_size)?;
2130 }
2131 if !self.page_token.is_empty() {
2132 struct_ser.serialize_field("pageToken", &self.page_token)?;
2133 }
2134 struct_ser.end()
2135 }
2136}
2137impl<'de> serde::Deserialize<'de> for ListVolumesRequest {
2138 #[allow(deprecated)]
2139 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2140 where
2141 D: serde::Deserializer<'de>,
2142 {
2143 const FIELDS: &[&str] = &[
2144 "parent",
2145 "page_size",
2146 "pageSize",
2147 "page_token",
2148 "pageToken",
2149 ];
2150 #[allow(clippy::enum_variant_names)]
2151 enum GeneratedField {
2152 Parent,
2153 PageSize,
2154 PageToken,
2155 __SkipField__,
2156 }
2157 impl<'de> serde::Deserialize<'de> for GeneratedField {
2158 fn deserialize<D>(
2159 deserializer: D,
2160 ) -> std::result::Result<GeneratedField, D::Error>
2161 where
2162 D: serde::Deserializer<'de>,
2163 {
2164 struct GeneratedVisitor;
2165 impl serde::de::Visitor<'_> for GeneratedVisitor {
2166 type Value = GeneratedField;
2167 fn expecting(
2168 &self,
2169 formatter: &mut std::fmt::Formatter<'_>,
2170 ) -> std::fmt::Result {
2171 write!(formatter, "expected one of: {:?}", & FIELDS)
2172 }
2173 #[allow(unused_variables)]
2174 fn visit_str<E>(
2175 self,
2176 value: &str,
2177 ) -> std::result::Result<GeneratedField, E>
2178 where
2179 E: serde::de::Error,
2180 {
2181 match value {
2182 "parent" => Ok(GeneratedField::Parent),
2183 "pageSize" | "page_size" => Ok(GeneratedField::PageSize),
2184 "pageToken" | "page_token" => Ok(GeneratedField::PageToken),
2185 _ => Ok(GeneratedField::__SkipField__),
2186 }
2187 }
2188 }
2189 deserializer.deserialize_identifier(GeneratedVisitor)
2190 }
2191 }
2192 struct GeneratedVisitor;
2193 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2194 type Value = ListVolumesRequest;
2195 fn expecting(
2196 &self,
2197 formatter: &mut std::fmt::Formatter<'_>,
2198 ) -> std::fmt::Result {
2199 formatter.write_str("struct origincloud.pvs.v1beta1.ListVolumesRequest")
2200 }
2201 fn visit_map<V>(
2202 self,
2203 mut map_: V,
2204 ) -> std::result::Result<ListVolumesRequest, V::Error>
2205 where
2206 V: serde::de::MapAccess<'de>,
2207 {
2208 let mut parent__ = None;
2209 let mut page_size__ = None;
2210 let mut page_token__ = None;
2211 while let Some(k) = map_.next_key()? {
2212 match k {
2213 GeneratedField::Parent => {
2214 if parent__.is_some() {
2215 return Err(serde::de::Error::duplicate_field("parent"));
2216 }
2217 parent__ = Some(map_.next_value()?);
2218 }
2219 GeneratedField::PageSize => {
2220 if page_size__.is_some() {
2221 return Err(serde::de::Error::duplicate_field("pageSize"));
2222 }
2223 page_size__ = Some(
2224 map_
2225 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2226 .0,
2227 );
2228 }
2229 GeneratedField::PageToken => {
2230 if page_token__.is_some() {
2231 return Err(serde::de::Error::duplicate_field("pageToken"));
2232 }
2233 page_token__ = Some(map_.next_value()?);
2234 }
2235 GeneratedField::__SkipField__ => {
2236 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2237 }
2238 }
2239 }
2240 Ok(ListVolumesRequest {
2241 parent: parent__.unwrap_or_default(),
2242 page_size: page_size__.unwrap_or_default(),
2243 page_token: page_token__.unwrap_or_default(),
2244 })
2245 }
2246 }
2247 deserializer
2248 .deserialize_struct(
2249 "origincloud.pvs.v1beta1.ListVolumesRequest",
2250 FIELDS,
2251 GeneratedVisitor,
2252 )
2253 }
2254}
2255impl serde::Serialize for ListVolumesResponse {
2256 #[allow(deprecated)]
2257 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2258 where
2259 S: serde::Serializer,
2260 {
2261 use serde::ser::SerializeStruct;
2262 let mut len = 0;
2263 if !self.volumes.is_empty() {
2264 len += 1;
2265 }
2266 if !self.next_page_token.is_empty() {
2267 len += 1;
2268 }
2269 let mut struct_ser = serializer
2270 .serialize_struct("origincloud.pvs.v1beta1.ListVolumesResponse", len)?;
2271 if !self.volumes.is_empty() {
2272 struct_ser.serialize_field("volumes", &self.volumes)?;
2273 }
2274 if !self.next_page_token.is_empty() {
2275 struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
2276 }
2277 struct_ser.end()
2278 }
2279}
2280impl<'de> serde::Deserialize<'de> for ListVolumesResponse {
2281 #[allow(deprecated)]
2282 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2283 where
2284 D: serde::Deserializer<'de>,
2285 {
2286 const FIELDS: &[&str] = &["volumes", "next_page_token", "nextPageToken"];
2287 #[allow(clippy::enum_variant_names)]
2288 enum GeneratedField {
2289 Volumes,
2290 NextPageToken,
2291 __SkipField__,
2292 }
2293 impl<'de> serde::Deserialize<'de> for GeneratedField {
2294 fn deserialize<D>(
2295 deserializer: D,
2296 ) -> std::result::Result<GeneratedField, D::Error>
2297 where
2298 D: serde::Deserializer<'de>,
2299 {
2300 struct GeneratedVisitor;
2301 impl serde::de::Visitor<'_> for GeneratedVisitor {
2302 type Value = GeneratedField;
2303 fn expecting(
2304 &self,
2305 formatter: &mut std::fmt::Formatter<'_>,
2306 ) -> std::fmt::Result {
2307 write!(formatter, "expected one of: {:?}", & FIELDS)
2308 }
2309 #[allow(unused_variables)]
2310 fn visit_str<E>(
2311 self,
2312 value: &str,
2313 ) -> std::result::Result<GeneratedField, E>
2314 where
2315 E: serde::de::Error,
2316 {
2317 match value {
2318 "volumes" => Ok(GeneratedField::Volumes),
2319 "nextPageToken" | "next_page_token" => {
2320 Ok(GeneratedField::NextPageToken)
2321 }
2322 _ => Ok(GeneratedField::__SkipField__),
2323 }
2324 }
2325 }
2326 deserializer.deserialize_identifier(GeneratedVisitor)
2327 }
2328 }
2329 struct GeneratedVisitor;
2330 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2331 type Value = ListVolumesResponse;
2332 fn expecting(
2333 &self,
2334 formatter: &mut std::fmt::Formatter<'_>,
2335 ) -> std::fmt::Result {
2336 formatter.write_str("struct origincloud.pvs.v1beta1.ListVolumesResponse")
2337 }
2338 fn visit_map<V>(
2339 self,
2340 mut map_: V,
2341 ) -> std::result::Result<ListVolumesResponse, V::Error>
2342 where
2343 V: serde::de::MapAccess<'de>,
2344 {
2345 let mut volumes__ = None;
2346 let mut next_page_token__ = None;
2347 while let Some(k) = map_.next_key()? {
2348 match k {
2349 GeneratedField::Volumes => {
2350 if volumes__.is_some() {
2351 return Err(serde::de::Error::duplicate_field("volumes"));
2352 }
2353 volumes__ = Some(map_.next_value()?);
2354 }
2355 GeneratedField::NextPageToken => {
2356 if next_page_token__.is_some() {
2357 return Err(
2358 serde::de::Error::duplicate_field("nextPageToken"),
2359 );
2360 }
2361 next_page_token__ = Some(map_.next_value()?);
2362 }
2363 GeneratedField::__SkipField__ => {
2364 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2365 }
2366 }
2367 }
2368 Ok(ListVolumesResponse {
2369 volumes: volumes__.unwrap_or_default(),
2370 next_page_token: next_page_token__.unwrap_or_default(),
2371 })
2372 }
2373 }
2374 deserializer
2375 .deserialize_struct(
2376 "origincloud.pvs.v1beta1.ListVolumesResponse",
2377 FIELDS,
2378 GeneratedVisitor,
2379 )
2380 }
2381}
2382impl serde::Serialize for ProtectSnapshotRequest {
2383 #[allow(deprecated)]
2384 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2385 where
2386 S: serde::Serializer,
2387 {
2388 use serde::ser::SerializeStruct;
2389 let mut len = 0;
2390 if !self.name.is_empty() {
2391 len += 1;
2392 }
2393 if !self.request_id.is_empty() {
2394 len += 1;
2395 }
2396 let mut struct_ser = serializer
2397 .serialize_struct("origincloud.pvs.v1beta1.ProtectSnapshotRequest", len)?;
2398 if !self.name.is_empty() {
2399 struct_ser.serialize_field("name", &self.name)?;
2400 }
2401 if !self.request_id.is_empty() {
2402 struct_ser.serialize_field("requestId", &self.request_id)?;
2403 }
2404 struct_ser.end()
2405 }
2406}
2407impl<'de> serde::Deserialize<'de> for ProtectSnapshotRequest {
2408 #[allow(deprecated)]
2409 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2410 where
2411 D: serde::Deserializer<'de>,
2412 {
2413 const FIELDS: &[&str] = &["name", "request_id", "requestId"];
2414 #[allow(clippy::enum_variant_names)]
2415 enum GeneratedField {
2416 Name,
2417 RequestId,
2418 __SkipField__,
2419 }
2420 impl<'de> serde::Deserialize<'de> for GeneratedField {
2421 fn deserialize<D>(
2422 deserializer: D,
2423 ) -> std::result::Result<GeneratedField, D::Error>
2424 where
2425 D: serde::Deserializer<'de>,
2426 {
2427 struct GeneratedVisitor;
2428 impl serde::de::Visitor<'_> for GeneratedVisitor {
2429 type Value = GeneratedField;
2430 fn expecting(
2431 &self,
2432 formatter: &mut std::fmt::Formatter<'_>,
2433 ) -> std::fmt::Result {
2434 write!(formatter, "expected one of: {:?}", & FIELDS)
2435 }
2436 #[allow(unused_variables)]
2437 fn visit_str<E>(
2438 self,
2439 value: &str,
2440 ) -> std::result::Result<GeneratedField, E>
2441 where
2442 E: serde::de::Error,
2443 {
2444 match value {
2445 "name" => Ok(GeneratedField::Name),
2446 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
2447 _ => Ok(GeneratedField::__SkipField__),
2448 }
2449 }
2450 }
2451 deserializer.deserialize_identifier(GeneratedVisitor)
2452 }
2453 }
2454 struct GeneratedVisitor;
2455 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2456 type Value = ProtectSnapshotRequest;
2457 fn expecting(
2458 &self,
2459 formatter: &mut std::fmt::Formatter<'_>,
2460 ) -> std::fmt::Result {
2461 formatter
2462 .write_str("struct origincloud.pvs.v1beta1.ProtectSnapshotRequest")
2463 }
2464 fn visit_map<V>(
2465 self,
2466 mut map_: V,
2467 ) -> std::result::Result<ProtectSnapshotRequest, V::Error>
2468 where
2469 V: serde::de::MapAccess<'de>,
2470 {
2471 let mut name__ = None;
2472 let mut request_id__ = None;
2473 while let Some(k) = map_.next_key()? {
2474 match k {
2475 GeneratedField::Name => {
2476 if name__.is_some() {
2477 return Err(serde::de::Error::duplicate_field("name"));
2478 }
2479 name__ = Some(map_.next_value()?);
2480 }
2481 GeneratedField::RequestId => {
2482 if request_id__.is_some() {
2483 return Err(serde::de::Error::duplicate_field("requestId"));
2484 }
2485 request_id__ = Some(map_.next_value()?);
2486 }
2487 GeneratedField::__SkipField__ => {
2488 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2489 }
2490 }
2491 }
2492 Ok(ProtectSnapshotRequest {
2493 name: name__.unwrap_or_default(),
2494 request_id: request_id__.unwrap_or_default(),
2495 })
2496 }
2497 }
2498 deserializer
2499 .deserialize_struct(
2500 "origincloud.pvs.v1beta1.ProtectSnapshotRequest",
2501 FIELDS,
2502 GeneratedVisitor,
2503 )
2504 }
2505}
2506impl serde::Serialize for Snapshot {
2507 #[allow(deprecated)]
2508 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2509 where
2510 S: serde::Serializer,
2511 {
2512 use serde::ser::SerializeStruct;
2513 let mut len = 0;
2514 if !self.name.is_empty() {
2515 len += 1;
2516 }
2517 if !self.urn.is_empty() {
2518 len += 1;
2519 }
2520 if !self.source_volume.is_empty() {
2521 len += 1;
2522 }
2523 if self.source_size_gib != 0 {
2524 len += 1;
2525 }
2526 if self.state != 0 {
2527 len += 1;
2528 }
2529 if !self.state_reason.is_empty() {
2530 len += 1;
2531 }
2532 if self.protection_state != 0 {
2533 len += 1;
2534 }
2535 if !self.protection_reason.is_empty() {
2536 len += 1;
2537 }
2538 if !self.creator.is_empty() {
2539 len += 1;
2540 }
2541 if !self.tags.is_empty() {
2542 len += 1;
2543 }
2544 let mut struct_ser = serializer
2545 .serialize_struct("origincloud.pvs.v1beta1.Snapshot", len)?;
2546 if !self.name.is_empty() {
2547 struct_ser.serialize_field("name", &self.name)?;
2548 }
2549 if !self.urn.is_empty() {
2550 struct_ser.serialize_field("urn", &self.urn)?;
2551 }
2552 if !self.source_volume.is_empty() {
2553 struct_ser.serialize_field("sourceVolume", &self.source_volume)?;
2554 }
2555 if self.source_size_gib != 0 {
2556 struct_ser.serialize_field("sourceSizeGib", &self.source_size_gib)?;
2557 }
2558 if self.state != 0 {
2559 let v = snapshot::State::try_from(self.state)
2560 .map_err(|_| serde::ser::Error::custom(
2561 format!("Invalid variant {}", self.state),
2562 ))?;
2563 struct_ser.serialize_field("state", &v)?;
2564 }
2565 if !self.state_reason.is_empty() {
2566 struct_ser.serialize_field("stateReason", &self.state_reason)?;
2567 }
2568 if self.protection_state != 0 {
2569 let v = snapshot::ProtectionState::try_from(self.protection_state)
2570 .map_err(|_| serde::ser::Error::custom(
2571 format!("Invalid variant {}", self.protection_state),
2572 ))?;
2573 struct_ser.serialize_field("protectionState", &v)?;
2574 }
2575 if !self.protection_reason.is_empty() {
2576 struct_ser.serialize_field("protectionReason", &self.protection_reason)?;
2577 }
2578 if !self.creator.is_empty() {
2579 struct_ser.serialize_field("creator", &self.creator)?;
2580 }
2581 if !self.tags.is_empty() {
2582 struct_ser.serialize_field("tags", &self.tags)?;
2583 }
2584 struct_ser.end()
2585 }
2586}
2587impl<'de> serde::Deserialize<'de> for Snapshot {
2588 #[allow(deprecated)]
2589 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2590 where
2591 D: serde::Deserializer<'de>,
2592 {
2593 const FIELDS: &[&str] = &[
2594 "name",
2595 "urn",
2596 "source_volume",
2597 "sourceVolume",
2598 "source_size_gib",
2599 "sourceSizeGib",
2600 "state",
2601 "state_reason",
2602 "stateReason",
2603 "protection_state",
2604 "protectionState",
2605 "protection_reason",
2606 "protectionReason",
2607 "creator",
2608 "tags",
2609 ];
2610 #[allow(clippy::enum_variant_names)]
2611 enum GeneratedField {
2612 Name,
2613 Urn,
2614 SourceVolume,
2615 SourceSizeGib,
2616 State,
2617 StateReason,
2618 ProtectionState,
2619 ProtectionReason,
2620 Creator,
2621 Tags,
2622 __SkipField__,
2623 }
2624 impl<'de> serde::Deserialize<'de> for GeneratedField {
2625 fn deserialize<D>(
2626 deserializer: D,
2627 ) -> std::result::Result<GeneratedField, D::Error>
2628 where
2629 D: serde::Deserializer<'de>,
2630 {
2631 struct GeneratedVisitor;
2632 impl serde::de::Visitor<'_> for GeneratedVisitor {
2633 type Value = GeneratedField;
2634 fn expecting(
2635 &self,
2636 formatter: &mut std::fmt::Formatter<'_>,
2637 ) -> std::fmt::Result {
2638 write!(formatter, "expected one of: {:?}", & FIELDS)
2639 }
2640 #[allow(unused_variables)]
2641 fn visit_str<E>(
2642 self,
2643 value: &str,
2644 ) -> std::result::Result<GeneratedField, E>
2645 where
2646 E: serde::de::Error,
2647 {
2648 match value {
2649 "name" => Ok(GeneratedField::Name),
2650 "urn" => Ok(GeneratedField::Urn),
2651 "sourceVolume" | "source_volume" => {
2652 Ok(GeneratedField::SourceVolume)
2653 }
2654 "sourceSizeGib" | "source_size_gib" => {
2655 Ok(GeneratedField::SourceSizeGib)
2656 }
2657 "state" => Ok(GeneratedField::State),
2658 "stateReason" | "state_reason" => {
2659 Ok(GeneratedField::StateReason)
2660 }
2661 "protectionState" | "protection_state" => {
2662 Ok(GeneratedField::ProtectionState)
2663 }
2664 "protectionReason" | "protection_reason" => {
2665 Ok(GeneratedField::ProtectionReason)
2666 }
2667 "creator" => Ok(GeneratedField::Creator),
2668 "tags" => Ok(GeneratedField::Tags),
2669 _ => Ok(GeneratedField::__SkipField__),
2670 }
2671 }
2672 }
2673 deserializer.deserialize_identifier(GeneratedVisitor)
2674 }
2675 }
2676 struct GeneratedVisitor;
2677 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
2678 type Value = Snapshot;
2679 fn expecting(
2680 &self,
2681 formatter: &mut std::fmt::Formatter<'_>,
2682 ) -> std::fmt::Result {
2683 formatter.write_str("struct origincloud.pvs.v1beta1.Snapshot")
2684 }
2685 fn visit_map<V>(self, mut map_: V) -> std::result::Result<Snapshot, V::Error>
2686 where
2687 V: serde::de::MapAccess<'de>,
2688 {
2689 let mut name__ = None;
2690 let mut urn__ = None;
2691 let mut source_volume__ = None;
2692 let mut source_size_gib__ = None;
2693 let mut state__ = None;
2694 let mut state_reason__ = None;
2695 let mut protection_state__ = None;
2696 let mut protection_reason__ = None;
2697 let mut creator__ = None;
2698 let mut tags__ = None;
2699 while let Some(k) = map_.next_key()? {
2700 match k {
2701 GeneratedField::Name => {
2702 if name__.is_some() {
2703 return Err(serde::de::Error::duplicate_field("name"));
2704 }
2705 name__ = Some(map_.next_value()?);
2706 }
2707 GeneratedField::Urn => {
2708 if urn__.is_some() {
2709 return Err(serde::de::Error::duplicate_field("urn"));
2710 }
2711 urn__ = Some(map_.next_value()?);
2712 }
2713 GeneratedField::SourceVolume => {
2714 if source_volume__.is_some() {
2715 return Err(
2716 serde::de::Error::duplicate_field("sourceVolume"),
2717 );
2718 }
2719 source_volume__ = Some(map_.next_value()?);
2720 }
2721 GeneratedField::SourceSizeGib => {
2722 if source_size_gib__.is_some() {
2723 return Err(
2724 serde::de::Error::duplicate_field("sourceSizeGib"),
2725 );
2726 }
2727 source_size_gib__ = Some(
2728 map_
2729 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
2730 .0,
2731 );
2732 }
2733 GeneratedField::State => {
2734 if state__.is_some() {
2735 return Err(serde::de::Error::duplicate_field("state"));
2736 }
2737 state__ = Some(map_.next_value::<snapshot::State>()? as i32);
2738 }
2739 GeneratedField::StateReason => {
2740 if state_reason__.is_some() {
2741 return Err(
2742 serde::de::Error::duplicate_field("stateReason"),
2743 );
2744 }
2745 state_reason__ = Some(map_.next_value()?);
2746 }
2747 GeneratedField::ProtectionState => {
2748 if protection_state__.is_some() {
2749 return Err(
2750 serde::de::Error::duplicate_field("protectionState"),
2751 );
2752 }
2753 protection_state__ = Some(
2754 map_.next_value::<snapshot::ProtectionState>()? as i32,
2755 );
2756 }
2757 GeneratedField::ProtectionReason => {
2758 if protection_reason__.is_some() {
2759 return Err(
2760 serde::de::Error::duplicate_field("protectionReason"),
2761 );
2762 }
2763 protection_reason__ = Some(map_.next_value()?);
2764 }
2765 GeneratedField::Creator => {
2766 if creator__.is_some() {
2767 return Err(serde::de::Error::duplicate_field("creator"));
2768 }
2769 creator__ = Some(map_.next_value()?);
2770 }
2771 GeneratedField::Tags => {
2772 if tags__.is_some() {
2773 return Err(serde::de::Error::duplicate_field("tags"));
2774 }
2775 tags__ = Some(
2776 map_.next_value::<std::collections::BTreeMap<_, _>>()?,
2777 );
2778 }
2779 GeneratedField::__SkipField__ => {
2780 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
2781 }
2782 }
2783 }
2784 Ok(Snapshot {
2785 name: name__.unwrap_or_default(),
2786 urn: urn__.unwrap_or_default(),
2787 source_volume: source_volume__.unwrap_or_default(),
2788 source_size_gib: source_size_gib__.unwrap_or_default(),
2789 state: state__.unwrap_or_default(),
2790 state_reason: state_reason__.unwrap_or_default(),
2791 protection_state: protection_state__.unwrap_or_default(),
2792 protection_reason: protection_reason__.unwrap_or_default(),
2793 creator: creator__.unwrap_or_default(),
2794 tags: tags__.unwrap_or_default(),
2795 })
2796 }
2797 }
2798 deserializer
2799 .deserialize_struct(
2800 "origincloud.pvs.v1beta1.Snapshot",
2801 FIELDS,
2802 GeneratedVisitor,
2803 )
2804 }
2805}
2806impl serde::Serialize for snapshot::ProtectionState {
2807 #[allow(deprecated)]
2808 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2809 where
2810 S: serde::Serializer,
2811 {
2812 let variant = match self {
2813 Self::Unspecified => "PROTECTION_STATE_UNSPECIFIED",
2814 Self::Unprotected => "UNPROTECTED",
2815 Self::Protecting => "PROTECTING",
2816 Self::Protected => "PROTECTED",
2817 Self::Unprotecting => "UNPROTECTING",
2818 Self::ProtectionFailed => "PROTECTION_FAILED",
2819 };
2820 serializer.serialize_str(variant)
2821 }
2822}
2823impl<'de> serde::Deserialize<'de> for snapshot::ProtectionState {
2824 #[allow(deprecated)]
2825 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2826 where
2827 D: serde::Deserializer<'de>,
2828 {
2829 const FIELDS: &[&str] = &[
2830 "PROTECTION_STATE_UNSPECIFIED",
2831 "UNPROTECTED",
2832 "PROTECTING",
2833 "PROTECTED",
2834 "UNPROTECTING",
2835 "PROTECTION_FAILED",
2836 ];
2837 struct GeneratedVisitor;
2838 impl serde::de::Visitor<'_> for GeneratedVisitor {
2839 type Value = snapshot::ProtectionState;
2840 fn expecting(
2841 &self,
2842 formatter: &mut std::fmt::Formatter<'_>,
2843 ) -> std::fmt::Result {
2844 write!(formatter, "expected one of: {:?}", & FIELDS)
2845 }
2846 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
2847 where
2848 E: serde::de::Error,
2849 {
2850 i32::try_from(v)
2851 .ok()
2852 .and_then(|x| {
2853 x
2854 .try_into()
2855 .ok()
2856 .or_else(|| Some(snapshot::ProtectionState::default()))
2857 })
2858 .ok_or_else(|| {
2859 serde::de::Error::invalid_value(
2860 serde::de::Unexpected::Signed(v),
2861 &self,
2862 )
2863 })
2864 }
2865 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
2866 where
2867 E: serde::de::Error,
2868 {
2869 i32::try_from(v)
2870 .ok()
2871 .and_then(|x| {
2872 x
2873 .try_into()
2874 .ok()
2875 .or_else(|| Some(snapshot::ProtectionState::default()))
2876 })
2877 .ok_or_else(|| {
2878 serde::de::Error::invalid_value(
2879 serde::de::Unexpected::Unsigned(v),
2880 &self,
2881 )
2882 })
2883 }
2884 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
2885 where
2886 E: serde::de::Error,
2887 {
2888 match value {
2889 "PROTECTION_STATE_UNSPECIFIED" => {
2890 Ok(snapshot::ProtectionState::Unspecified)
2891 }
2892 "UNPROTECTED" => Ok(snapshot::ProtectionState::Unprotected),
2893 "PROTECTING" => Ok(snapshot::ProtectionState::Protecting),
2894 "PROTECTED" => Ok(snapshot::ProtectionState::Protected),
2895 "UNPROTECTING" => Ok(snapshot::ProtectionState::Unprotecting),
2896 "PROTECTION_FAILED" => {
2897 Ok(snapshot::ProtectionState::ProtectionFailed)
2898 }
2899 _ => Ok(snapshot::ProtectionState::default()),
2900 }
2901 }
2902 }
2903 deserializer.deserialize_any(GeneratedVisitor)
2904 }
2905}
2906impl serde::Serialize for snapshot::State {
2907 #[allow(deprecated)]
2908 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2909 where
2910 S: serde::Serializer,
2911 {
2912 let variant = match self {
2913 Self::Unspecified => "STATE_UNSPECIFIED",
2914 Self::Pending => "PENDING",
2915 Self::Completed => "COMPLETED",
2916 Self::Deleting => "DELETING",
2917 Self::Deleted => "DELETED",
2918 Self::Error => "ERROR",
2919 };
2920 serializer.serialize_str(variant)
2921 }
2922}
2923impl<'de> serde::Deserialize<'de> for snapshot::State {
2924 #[allow(deprecated)]
2925 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
2926 where
2927 D: serde::Deserializer<'de>,
2928 {
2929 const FIELDS: &[&str] = &[
2930 "STATE_UNSPECIFIED",
2931 "PENDING",
2932 "COMPLETED",
2933 "DELETING",
2934 "DELETED",
2935 "ERROR",
2936 ];
2937 struct GeneratedVisitor;
2938 impl serde::de::Visitor<'_> for GeneratedVisitor {
2939 type Value = snapshot::State;
2940 fn expecting(
2941 &self,
2942 formatter: &mut std::fmt::Formatter<'_>,
2943 ) -> std::fmt::Result {
2944 write!(formatter, "expected one of: {:?}", & FIELDS)
2945 }
2946 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
2947 where
2948 E: serde::de::Error,
2949 {
2950 i32::try_from(v)
2951 .ok()
2952 .and_then(|x| {
2953 x.try_into().ok().or_else(|| Some(snapshot::State::default()))
2954 })
2955 .ok_or_else(|| {
2956 serde::de::Error::invalid_value(
2957 serde::de::Unexpected::Signed(v),
2958 &self,
2959 )
2960 })
2961 }
2962 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
2963 where
2964 E: serde::de::Error,
2965 {
2966 i32::try_from(v)
2967 .ok()
2968 .and_then(|x| {
2969 x.try_into().ok().or_else(|| Some(snapshot::State::default()))
2970 })
2971 .ok_or_else(|| {
2972 serde::de::Error::invalid_value(
2973 serde::de::Unexpected::Unsigned(v),
2974 &self,
2975 )
2976 })
2977 }
2978 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
2979 where
2980 E: serde::de::Error,
2981 {
2982 match value {
2983 "STATE_UNSPECIFIED" => Ok(snapshot::State::Unspecified),
2984 "PENDING" => Ok(snapshot::State::Pending),
2985 "COMPLETED" => Ok(snapshot::State::Completed),
2986 "DELETING" => Ok(snapshot::State::Deleting),
2987 "DELETED" => Ok(snapshot::State::Deleted),
2988 "ERROR" => Ok(snapshot::State::Error),
2989 _ => Ok(snapshot::State::default()),
2990 }
2991 }
2992 }
2993 deserializer.deserialize_any(GeneratedVisitor)
2994 }
2995}
2996impl serde::Serialize for StorageClass {
2997 #[allow(deprecated)]
2998 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
2999 where
3000 S: serde::Serializer,
3001 {
3002 use serde::ser::SerializeStruct;
3003 let mut len = 0;
3004 if !self.name.is_empty() {
3005 len += 1;
3006 }
3007 if !self.display_name.is_empty() {
3008 len += 1;
3009 }
3010 if self.media != 0 {
3011 len += 1;
3012 }
3013 if self.default_class {
3014 len += 1;
3015 }
3016 if self.available {
3017 len += 1;
3018 }
3019 if self.baseline_iops != 0 {
3020 len += 1;
3021 }
3022 if self.baseline_throughput_mibps != 0 {
3023 len += 1;
3024 }
3025 let mut struct_ser = serializer
3026 .serialize_struct("origincloud.pvs.v1beta1.StorageClass", len)?;
3027 if !self.name.is_empty() {
3028 struct_ser.serialize_field("name", &self.name)?;
3029 }
3030 if !self.display_name.is_empty() {
3031 struct_ser.serialize_field("displayName", &self.display_name)?;
3032 }
3033 if self.media != 0 {
3034 let v = storage_class::Media::try_from(self.media)
3035 .map_err(|_| serde::ser::Error::custom(
3036 format!("Invalid variant {}", self.media),
3037 ))?;
3038 struct_ser.serialize_field("media", &v)?;
3039 }
3040 if self.default_class {
3041 struct_ser.serialize_field("defaultClass", &self.default_class)?;
3042 }
3043 if self.available {
3044 struct_ser.serialize_field("available", &self.available)?;
3045 }
3046 if self.baseline_iops != 0 {
3047 struct_ser.serialize_field("baselineIops", &self.baseline_iops)?;
3048 }
3049 if self.baseline_throughput_mibps != 0 {
3050 struct_ser
3051 .serialize_field(
3052 "baselineThroughputMibps",
3053 &self.baseline_throughput_mibps,
3054 )?;
3055 }
3056 struct_ser.end()
3057 }
3058}
3059impl<'de> serde::Deserialize<'de> for StorageClass {
3060 #[allow(deprecated)]
3061 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3062 where
3063 D: serde::Deserializer<'de>,
3064 {
3065 const FIELDS: &[&str] = &[
3066 "name",
3067 "display_name",
3068 "displayName",
3069 "media",
3070 "default_class",
3071 "defaultClass",
3072 "available",
3073 "baseline_iops",
3074 "baselineIops",
3075 "baseline_throughput_mibps",
3076 "baselineThroughputMibps",
3077 ];
3078 #[allow(clippy::enum_variant_names)]
3079 enum GeneratedField {
3080 Name,
3081 DisplayName,
3082 Media,
3083 DefaultClass,
3084 Available,
3085 BaselineIops,
3086 BaselineThroughputMibps,
3087 __SkipField__,
3088 }
3089 impl<'de> serde::Deserialize<'de> for GeneratedField {
3090 fn deserialize<D>(
3091 deserializer: D,
3092 ) -> std::result::Result<GeneratedField, D::Error>
3093 where
3094 D: serde::Deserializer<'de>,
3095 {
3096 struct GeneratedVisitor;
3097 impl serde::de::Visitor<'_> for GeneratedVisitor {
3098 type Value = GeneratedField;
3099 fn expecting(
3100 &self,
3101 formatter: &mut std::fmt::Formatter<'_>,
3102 ) -> std::fmt::Result {
3103 write!(formatter, "expected one of: {:?}", & FIELDS)
3104 }
3105 #[allow(unused_variables)]
3106 fn visit_str<E>(
3107 self,
3108 value: &str,
3109 ) -> std::result::Result<GeneratedField, E>
3110 where
3111 E: serde::de::Error,
3112 {
3113 match value {
3114 "name" => Ok(GeneratedField::Name),
3115 "displayName" | "display_name" => {
3116 Ok(GeneratedField::DisplayName)
3117 }
3118 "media" => Ok(GeneratedField::Media),
3119 "defaultClass" | "default_class" => {
3120 Ok(GeneratedField::DefaultClass)
3121 }
3122 "available" => Ok(GeneratedField::Available),
3123 "baselineIops" | "baseline_iops" => {
3124 Ok(GeneratedField::BaselineIops)
3125 }
3126 "baselineThroughputMibps" | "baseline_throughput_mibps" => {
3127 Ok(GeneratedField::BaselineThroughputMibps)
3128 }
3129 _ => Ok(GeneratedField::__SkipField__),
3130 }
3131 }
3132 }
3133 deserializer.deserialize_identifier(GeneratedVisitor)
3134 }
3135 }
3136 struct GeneratedVisitor;
3137 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3138 type Value = StorageClass;
3139 fn expecting(
3140 &self,
3141 formatter: &mut std::fmt::Formatter<'_>,
3142 ) -> std::fmt::Result {
3143 formatter.write_str("struct origincloud.pvs.v1beta1.StorageClass")
3144 }
3145 fn visit_map<V>(
3146 self,
3147 mut map_: V,
3148 ) -> std::result::Result<StorageClass, V::Error>
3149 where
3150 V: serde::de::MapAccess<'de>,
3151 {
3152 let mut name__ = None;
3153 let mut display_name__ = None;
3154 let mut media__ = None;
3155 let mut default_class__ = None;
3156 let mut available__ = None;
3157 let mut baseline_iops__ = None;
3158 let mut baseline_throughput_mibps__ = None;
3159 while let Some(k) = map_.next_key()? {
3160 match k {
3161 GeneratedField::Name => {
3162 if name__.is_some() {
3163 return Err(serde::de::Error::duplicate_field("name"));
3164 }
3165 name__ = Some(map_.next_value()?);
3166 }
3167 GeneratedField::DisplayName => {
3168 if display_name__.is_some() {
3169 return Err(
3170 serde::de::Error::duplicate_field("displayName"),
3171 );
3172 }
3173 display_name__ = Some(map_.next_value()?);
3174 }
3175 GeneratedField::Media => {
3176 if media__.is_some() {
3177 return Err(serde::de::Error::duplicate_field("media"));
3178 }
3179 media__ = Some(
3180 map_.next_value::<storage_class::Media>()? as i32,
3181 );
3182 }
3183 GeneratedField::DefaultClass => {
3184 if default_class__.is_some() {
3185 return Err(
3186 serde::de::Error::duplicate_field("defaultClass"),
3187 );
3188 }
3189 default_class__ = Some(map_.next_value()?);
3190 }
3191 GeneratedField::Available => {
3192 if available__.is_some() {
3193 return Err(serde::de::Error::duplicate_field("available"));
3194 }
3195 available__ = Some(map_.next_value()?);
3196 }
3197 GeneratedField::BaselineIops => {
3198 if baseline_iops__.is_some() {
3199 return Err(
3200 serde::de::Error::duplicate_field("baselineIops"),
3201 );
3202 }
3203 baseline_iops__ = Some(
3204 map_
3205 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3206 .0,
3207 );
3208 }
3209 GeneratedField::BaselineThroughputMibps => {
3210 if baseline_throughput_mibps__.is_some() {
3211 return Err(
3212 serde::de::Error::duplicate_field("baselineThroughputMibps"),
3213 );
3214 }
3215 baseline_throughput_mibps__ = Some(
3216 map_
3217 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
3218 .0,
3219 );
3220 }
3221 GeneratedField::__SkipField__ => {
3222 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3223 }
3224 }
3225 }
3226 Ok(StorageClass {
3227 name: name__.unwrap_or_default(),
3228 display_name: display_name__.unwrap_or_default(),
3229 media: media__.unwrap_or_default(),
3230 default_class: default_class__.unwrap_or_default(),
3231 available: available__.unwrap_or_default(),
3232 baseline_iops: baseline_iops__.unwrap_or_default(),
3233 baseline_throughput_mibps: baseline_throughput_mibps__
3234 .unwrap_or_default(),
3235 })
3236 }
3237 }
3238 deserializer
3239 .deserialize_struct(
3240 "origincloud.pvs.v1beta1.StorageClass",
3241 FIELDS,
3242 GeneratedVisitor,
3243 )
3244 }
3245}
3246impl serde::Serialize for storage_class::Media {
3247 #[allow(deprecated)]
3248 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3249 where
3250 S: serde::Serializer,
3251 {
3252 let variant = match self {
3253 Self::Unspecified => "MEDIA_UNSPECIFIED",
3254 Self::Ssd => "SSD",
3255 Self::Hdd => "HDD",
3256 };
3257 serializer.serialize_str(variant)
3258 }
3259}
3260impl<'de> serde::Deserialize<'de> for storage_class::Media {
3261 #[allow(deprecated)]
3262 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3263 where
3264 D: serde::Deserializer<'de>,
3265 {
3266 const FIELDS: &[&str] = &["MEDIA_UNSPECIFIED", "SSD", "HDD"];
3267 struct GeneratedVisitor;
3268 impl serde::de::Visitor<'_> for GeneratedVisitor {
3269 type Value = storage_class::Media;
3270 fn expecting(
3271 &self,
3272 formatter: &mut std::fmt::Formatter<'_>,
3273 ) -> std::fmt::Result {
3274 write!(formatter, "expected one of: {:?}", & FIELDS)
3275 }
3276 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
3277 where
3278 E: serde::de::Error,
3279 {
3280 i32::try_from(v)
3281 .ok()
3282 .and_then(|x| {
3283 x
3284 .try_into()
3285 .ok()
3286 .or_else(|| Some(storage_class::Media::default()))
3287 })
3288 .ok_or_else(|| {
3289 serde::de::Error::invalid_value(
3290 serde::de::Unexpected::Signed(v),
3291 &self,
3292 )
3293 })
3294 }
3295 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
3296 where
3297 E: serde::de::Error,
3298 {
3299 i32::try_from(v)
3300 .ok()
3301 .and_then(|x| {
3302 x
3303 .try_into()
3304 .ok()
3305 .or_else(|| Some(storage_class::Media::default()))
3306 })
3307 .ok_or_else(|| {
3308 serde::de::Error::invalid_value(
3309 serde::de::Unexpected::Unsigned(v),
3310 &self,
3311 )
3312 })
3313 }
3314 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
3315 where
3316 E: serde::de::Error,
3317 {
3318 match value {
3319 "MEDIA_UNSPECIFIED" => Ok(storage_class::Media::Unspecified),
3320 "SSD" => Ok(storage_class::Media::Ssd),
3321 "HDD" => Ok(storage_class::Media::Hdd),
3322 _ => Ok(storage_class::Media::default()),
3323 }
3324 }
3325 }
3326 deserializer.deserialize_any(GeneratedVisitor)
3327 }
3328}
3329impl serde::Serialize for UnprotectSnapshotRequest {
3330 #[allow(deprecated)]
3331 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3332 where
3333 S: serde::Serializer,
3334 {
3335 use serde::ser::SerializeStruct;
3336 let mut len = 0;
3337 if !self.name.is_empty() {
3338 len += 1;
3339 }
3340 if !self.request_id.is_empty() {
3341 len += 1;
3342 }
3343 let mut struct_ser = serializer
3344 .serialize_struct("origincloud.pvs.v1beta1.UnprotectSnapshotRequest", len)?;
3345 if !self.name.is_empty() {
3346 struct_ser.serialize_field("name", &self.name)?;
3347 }
3348 if !self.request_id.is_empty() {
3349 struct_ser.serialize_field("requestId", &self.request_id)?;
3350 }
3351 struct_ser.end()
3352 }
3353}
3354impl<'de> serde::Deserialize<'de> for UnprotectSnapshotRequest {
3355 #[allow(deprecated)]
3356 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3357 where
3358 D: serde::Deserializer<'de>,
3359 {
3360 const FIELDS: &[&str] = &["name", "request_id", "requestId"];
3361 #[allow(clippy::enum_variant_names)]
3362 enum GeneratedField {
3363 Name,
3364 RequestId,
3365 __SkipField__,
3366 }
3367 impl<'de> serde::Deserialize<'de> for GeneratedField {
3368 fn deserialize<D>(
3369 deserializer: D,
3370 ) -> std::result::Result<GeneratedField, D::Error>
3371 where
3372 D: serde::Deserializer<'de>,
3373 {
3374 struct GeneratedVisitor;
3375 impl serde::de::Visitor<'_> for GeneratedVisitor {
3376 type Value = GeneratedField;
3377 fn expecting(
3378 &self,
3379 formatter: &mut std::fmt::Formatter<'_>,
3380 ) -> std::fmt::Result {
3381 write!(formatter, "expected one of: {:?}", & FIELDS)
3382 }
3383 #[allow(unused_variables)]
3384 fn visit_str<E>(
3385 self,
3386 value: &str,
3387 ) -> std::result::Result<GeneratedField, E>
3388 where
3389 E: serde::de::Error,
3390 {
3391 match value {
3392 "name" => Ok(GeneratedField::Name),
3393 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
3394 _ => Ok(GeneratedField::__SkipField__),
3395 }
3396 }
3397 }
3398 deserializer.deserialize_identifier(GeneratedVisitor)
3399 }
3400 }
3401 struct GeneratedVisitor;
3402 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3403 type Value = UnprotectSnapshotRequest;
3404 fn expecting(
3405 &self,
3406 formatter: &mut std::fmt::Formatter<'_>,
3407 ) -> std::fmt::Result {
3408 formatter
3409 .write_str("struct origincloud.pvs.v1beta1.UnprotectSnapshotRequest")
3410 }
3411 fn visit_map<V>(
3412 self,
3413 mut map_: V,
3414 ) -> std::result::Result<UnprotectSnapshotRequest, V::Error>
3415 where
3416 V: serde::de::MapAccess<'de>,
3417 {
3418 let mut name__ = None;
3419 let mut request_id__ = None;
3420 while let Some(k) = map_.next_key()? {
3421 match k {
3422 GeneratedField::Name => {
3423 if name__.is_some() {
3424 return Err(serde::de::Error::duplicate_field("name"));
3425 }
3426 name__ = Some(map_.next_value()?);
3427 }
3428 GeneratedField::RequestId => {
3429 if request_id__.is_some() {
3430 return Err(serde::de::Error::duplicate_field("requestId"));
3431 }
3432 request_id__ = Some(map_.next_value()?);
3433 }
3434 GeneratedField::__SkipField__ => {
3435 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3436 }
3437 }
3438 }
3439 Ok(UnprotectSnapshotRequest {
3440 name: name__.unwrap_or_default(),
3441 request_id: request_id__.unwrap_or_default(),
3442 })
3443 }
3444 }
3445 deserializer
3446 .deserialize_struct(
3447 "origincloud.pvs.v1beta1.UnprotectSnapshotRequest",
3448 FIELDS,
3449 GeneratedVisitor,
3450 )
3451 }
3452}
3453impl serde::Serialize for UpdateSnapshotRequest {
3454 #[allow(deprecated)]
3455 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3456 where
3457 S: serde::Serializer,
3458 {
3459 use serde::ser::SerializeStruct;
3460 let mut len = 0;
3461 if self.snapshot.is_some() {
3462 len += 1;
3463 }
3464 if self.update_mask.is_some() {
3465 len += 1;
3466 }
3467 let mut struct_ser = serializer
3468 .serialize_struct("origincloud.pvs.v1beta1.UpdateSnapshotRequest", len)?;
3469 if let Some(v) = self.snapshot.as_ref() {
3470 struct_ser.serialize_field("snapshot", v)?;
3471 }
3472 if let Some(v) = self.update_mask.as_ref() {
3473 struct_ser.serialize_field("updateMask", v)?;
3474 }
3475 struct_ser.end()
3476 }
3477}
3478impl<'de> serde::Deserialize<'de> for UpdateSnapshotRequest {
3479 #[allow(deprecated)]
3480 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3481 where
3482 D: serde::Deserializer<'de>,
3483 {
3484 const FIELDS: &[&str] = &["snapshot", "update_mask", "updateMask"];
3485 #[allow(clippy::enum_variant_names)]
3486 enum GeneratedField {
3487 Snapshot,
3488 UpdateMask,
3489 __SkipField__,
3490 }
3491 impl<'de> serde::Deserialize<'de> for GeneratedField {
3492 fn deserialize<D>(
3493 deserializer: D,
3494 ) -> std::result::Result<GeneratedField, D::Error>
3495 where
3496 D: serde::Deserializer<'de>,
3497 {
3498 struct GeneratedVisitor;
3499 impl serde::de::Visitor<'_> for GeneratedVisitor {
3500 type Value = GeneratedField;
3501 fn expecting(
3502 &self,
3503 formatter: &mut std::fmt::Formatter<'_>,
3504 ) -> std::fmt::Result {
3505 write!(formatter, "expected one of: {:?}", & FIELDS)
3506 }
3507 #[allow(unused_variables)]
3508 fn visit_str<E>(
3509 self,
3510 value: &str,
3511 ) -> std::result::Result<GeneratedField, E>
3512 where
3513 E: serde::de::Error,
3514 {
3515 match value {
3516 "snapshot" => Ok(GeneratedField::Snapshot),
3517 "updateMask" | "update_mask" => {
3518 Ok(GeneratedField::UpdateMask)
3519 }
3520 _ => Ok(GeneratedField::__SkipField__),
3521 }
3522 }
3523 }
3524 deserializer.deserialize_identifier(GeneratedVisitor)
3525 }
3526 }
3527 struct GeneratedVisitor;
3528 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3529 type Value = UpdateSnapshotRequest;
3530 fn expecting(
3531 &self,
3532 formatter: &mut std::fmt::Formatter<'_>,
3533 ) -> std::fmt::Result {
3534 formatter
3535 .write_str("struct origincloud.pvs.v1beta1.UpdateSnapshotRequest")
3536 }
3537 fn visit_map<V>(
3538 self,
3539 mut map_: V,
3540 ) -> std::result::Result<UpdateSnapshotRequest, V::Error>
3541 where
3542 V: serde::de::MapAccess<'de>,
3543 {
3544 let mut snapshot__ = None;
3545 let mut update_mask__ = None;
3546 while let Some(k) = map_.next_key()? {
3547 match k {
3548 GeneratedField::Snapshot => {
3549 if snapshot__.is_some() {
3550 return Err(serde::de::Error::duplicate_field("snapshot"));
3551 }
3552 snapshot__ = map_.next_value()?;
3553 }
3554 GeneratedField::UpdateMask => {
3555 if update_mask__.is_some() {
3556 return Err(serde::de::Error::duplicate_field("updateMask"));
3557 }
3558 update_mask__ = map_.next_value()?;
3559 }
3560 GeneratedField::__SkipField__ => {
3561 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3562 }
3563 }
3564 }
3565 Ok(UpdateSnapshotRequest {
3566 snapshot: snapshot__,
3567 update_mask: update_mask__,
3568 })
3569 }
3570 }
3571 deserializer
3572 .deserialize_struct(
3573 "origincloud.pvs.v1beta1.UpdateSnapshotRequest",
3574 FIELDS,
3575 GeneratedVisitor,
3576 )
3577 }
3578}
3579impl serde::Serialize for UpdateVolumeRequest {
3580 #[allow(deprecated)]
3581 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3582 where
3583 S: serde::Serializer,
3584 {
3585 use serde::ser::SerializeStruct;
3586 let mut len = 0;
3587 if self.volume.is_some() {
3588 len += 1;
3589 }
3590 if self.update_mask.is_some() {
3591 len += 1;
3592 }
3593 if !self.request_id.is_empty() {
3594 len += 1;
3595 }
3596 let mut struct_ser = serializer
3597 .serialize_struct("origincloud.pvs.v1beta1.UpdateVolumeRequest", len)?;
3598 if let Some(v) = self.volume.as_ref() {
3599 struct_ser.serialize_field("volume", v)?;
3600 }
3601 if let Some(v) = self.update_mask.as_ref() {
3602 struct_ser.serialize_field("updateMask", v)?;
3603 }
3604 if !self.request_id.is_empty() {
3605 struct_ser.serialize_field("requestId", &self.request_id)?;
3606 }
3607 struct_ser.end()
3608 }
3609}
3610impl<'de> serde::Deserialize<'de> for UpdateVolumeRequest {
3611 #[allow(deprecated)]
3612 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3613 where
3614 D: serde::Deserializer<'de>,
3615 {
3616 const FIELDS: &[&str] = &[
3617 "volume",
3618 "update_mask",
3619 "updateMask",
3620 "request_id",
3621 "requestId",
3622 ];
3623 #[allow(clippy::enum_variant_names)]
3624 enum GeneratedField {
3625 Volume,
3626 UpdateMask,
3627 RequestId,
3628 __SkipField__,
3629 }
3630 impl<'de> serde::Deserialize<'de> for GeneratedField {
3631 fn deserialize<D>(
3632 deserializer: D,
3633 ) -> std::result::Result<GeneratedField, D::Error>
3634 where
3635 D: serde::Deserializer<'de>,
3636 {
3637 struct GeneratedVisitor;
3638 impl serde::de::Visitor<'_> for GeneratedVisitor {
3639 type Value = GeneratedField;
3640 fn expecting(
3641 &self,
3642 formatter: &mut std::fmt::Formatter<'_>,
3643 ) -> std::fmt::Result {
3644 write!(formatter, "expected one of: {:?}", & FIELDS)
3645 }
3646 #[allow(unused_variables)]
3647 fn visit_str<E>(
3648 self,
3649 value: &str,
3650 ) -> std::result::Result<GeneratedField, E>
3651 where
3652 E: serde::de::Error,
3653 {
3654 match value {
3655 "volume" => Ok(GeneratedField::Volume),
3656 "updateMask" | "update_mask" => {
3657 Ok(GeneratedField::UpdateMask)
3658 }
3659 "requestId" | "request_id" => Ok(GeneratedField::RequestId),
3660 _ => Ok(GeneratedField::__SkipField__),
3661 }
3662 }
3663 }
3664 deserializer.deserialize_identifier(GeneratedVisitor)
3665 }
3666 }
3667 struct GeneratedVisitor;
3668 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3669 type Value = UpdateVolumeRequest;
3670 fn expecting(
3671 &self,
3672 formatter: &mut std::fmt::Formatter<'_>,
3673 ) -> std::fmt::Result {
3674 formatter.write_str("struct origincloud.pvs.v1beta1.UpdateVolumeRequest")
3675 }
3676 fn visit_map<V>(
3677 self,
3678 mut map_: V,
3679 ) -> std::result::Result<UpdateVolumeRequest, V::Error>
3680 where
3681 V: serde::de::MapAccess<'de>,
3682 {
3683 let mut volume__ = None;
3684 let mut update_mask__ = None;
3685 let mut request_id__ = None;
3686 while let Some(k) = map_.next_key()? {
3687 match k {
3688 GeneratedField::Volume => {
3689 if volume__.is_some() {
3690 return Err(serde::de::Error::duplicate_field("volume"));
3691 }
3692 volume__ = map_.next_value()?;
3693 }
3694 GeneratedField::UpdateMask => {
3695 if update_mask__.is_some() {
3696 return Err(serde::de::Error::duplicate_field("updateMask"));
3697 }
3698 update_mask__ = map_.next_value()?;
3699 }
3700 GeneratedField::RequestId => {
3701 if request_id__.is_some() {
3702 return Err(serde::de::Error::duplicate_field("requestId"));
3703 }
3704 request_id__ = Some(map_.next_value()?);
3705 }
3706 GeneratedField::__SkipField__ => {
3707 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
3708 }
3709 }
3710 }
3711 Ok(UpdateVolumeRequest {
3712 volume: volume__,
3713 update_mask: update_mask__,
3714 request_id: request_id__.unwrap_or_default(),
3715 })
3716 }
3717 }
3718 deserializer
3719 .deserialize_struct(
3720 "origincloud.pvs.v1beta1.UpdateVolumeRequest",
3721 FIELDS,
3722 GeneratedVisitor,
3723 )
3724 }
3725}
3726impl serde::Serialize for Volume {
3727 #[allow(deprecated)]
3728 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
3729 where
3730 S: serde::Serializer,
3731 {
3732 use serde::ser::SerializeStruct;
3733 let mut len = 0;
3734 if !self.name.is_empty() {
3735 len += 1;
3736 }
3737 if !self.urn.is_empty() {
3738 len += 1;
3739 }
3740 if self.size_gib != 0 {
3741 len += 1;
3742 }
3743 if !self.storage_class.is_empty() {
3744 len += 1;
3745 }
3746 if !self.source_snapshot.is_empty() {
3747 len += 1;
3748 }
3749 if self.state != 0 {
3750 len += 1;
3751 }
3752 if !self.state_reason.is_empty() {
3753 len += 1;
3754 }
3755 if !self.attachment.is_empty() {
3756 len += 1;
3757 }
3758 if self.resize_state != 0 {
3759 len += 1;
3760 }
3761 if !self.resize_reason.is_empty() {
3762 len += 1;
3763 }
3764 if self.pending_size_gib != 0 {
3765 len += 1;
3766 }
3767 if !self.retention_note.is_empty() {
3768 len += 1;
3769 }
3770 if self.iops != 0 {
3771 len += 1;
3772 }
3773 if self.throughput_mibps != 0 {
3774 len += 1;
3775 }
3776 if !self.creator.is_empty() {
3777 len += 1;
3778 }
3779 if !self.tags.is_empty() {
3780 len += 1;
3781 }
3782 let mut struct_ser = serializer
3783 .serialize_struct("origincloud.pvs.v1beta1.Volume", len)?;
3784 if !self.name.is_empty() {
3785 struct_ser.serialize_field("name", &self.name)?;
3786 }
3787 if !self.urn.is_empty() {
3788 struct_ser.serialize_field("urn", &self.urn)?;
3789 }
3790 if self.size_gib != 0 {
3791 struct_ser.serialize_field("sizeGib", &self.size_gib)?;
3792 }
3793 if !self.storage_class.is_empty() {
3794 struct_ser.serialize_field("storageClass", &self.storage_class)?;
3795 }
3796 if !self.source_snapshot.is_empty() {
3797 struct_ser.serialize_field("sourceSnapshot", &self.source_snapshot)?;
3798 }
3799 if self.state != 0 {
3800 let v = volume::State::try_from(self.state)
3801 .map_err(|_| serde::ser::Error::custom(
3802 format!("Invalid variant {}", self.state),
3803 ))?;
3804 struct_ser.serialize_field("state", &v)?;
3805 }
3806 if !self.state_reason.is_empty() {
3807 struct_ser.serialize_field("stateReason", &self.state_reason)?;
3808 }
3809 if !self.attachment.is_empty() {
3810 struct_ser.serialize_field("attachment", &self.attachment)?;
3811 }
3812 if self.resize_state != 0 {
3813 let v = volume::ResizeState::try_from(self.resize_state)
3814 .map_err(|_| serde::ser::Error::custom(
3815 format!("Invalid variant {}", self.resize_state),
3816 ))?;
3817 struct_ser.serialize_field("resizeState", &v)?;
3818 }
3819 if !self.resize_reason.is_empty() {
3820 struct_ser.serialize_field("resizeReason", &self.resize_reason)?;
3821 }
3822 if self.pending_size_gib != 0 {
3823 struct_ser.serialize_field("pendingSizeGib", &self.pending_size_gib)?;
3824 }
3825 if !self.retention_note.is_empty() {
3826 struct_ser.serialize_field("retentionNote", &self.retention_note)?;
3827 }
3828 if self.iops != 0 {
3829 struct_ser.serialize_field("iops", &self.iops)?;
3830 }
3831 if self.throughput_mibps != 0 {
3832 struct_ser.serialize_field("throughputMibps", &self.throughput_mibps)?;
3833 }
3834 if !self.creator.is_empty() {
3835 struct_ser.serialize_field("creator", &self.creator)?;
3836 }
3837 if !self.tags.is_empty() {
3838 struct_ser.serialize_field("tags", &self.tags)?;
3839 }
3840 struct_ser.end()
3841 }
3842}
3843impl<'de> serde::Deserialize<'de> for Volume {
3844 #[allow(deprecated)]
3845 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
3846 where
3847 D: serde::Deserializer<'de>,
3848 {
3849 const FIELDS: &[&str] = &[
3850 "name",
3851 "urn",
3852 "size_gib",
3853 "sizeGib",
3854 "storage_class",
3855 "storageClass",
3856 "source_snapshot",
3857 "sourceSnapshot",
3858 "state",
3859 "state_reason",
3860 "stateReason",
3861 "attachment",
3862 "resize_state",
3863 "resizeState",
3864 "resize_reason",
3865 "resizeReason",
3866 "pending_size_gib",
3867 "pendingSizeGib",
3868 "retention_note",
3869 "retentionNote",
3870 "iops",
3871 "throughput_mibps",
3872 "throughputMibps",
3873 "creator",
3874 "tags",
3875 ];
3876 #[allow(clippy::enum_variant_names)]
3877 enum GeneratedField {
3878 Name,
3879 Urn,
3880 SizeGib,
3881 StorageClass,
3882 SourceSnapshot,
3883 State,
3884 StateReason,
3885 Attachment,
3886 ResizeState,
3887 ResizeReason,
3888 PendingSizeGib,
3889 RetentionNote,
3890 Iops,
3891 ThroughputMibps,
3892 Creator,
3893 Tags,
3894 __SkipField__,
3895 }
3896 impl<'de> serde::Deserialize<'de> for GeneratedField {
3897 fn deserialize<D>(
3898 deserializer: D,
3899 ) -> std::result::Result<GeneratedField, D::Error>
3900 where
3901 D: serde::Deserializer<'de>,
3902 {
3903 struct GeneratedVisitor;
3904 impl serde::de::Visitor<'_> for GeneratedVisitor {
3905 type Value = GeneratedField;
3906 fn expecting(
3907 &self,
3908 formatter: &mut std::fmt::Formatter<'_>,
3909 ) -> std::fmt::Result {
3910 write!(formatter, "expected one of: {:?}", & FIELDS)
3911 }
3912 #[allow(unused_variables)]
3913 fn visit_str<E>(
3914 self,
3915 value: &str,
3916 ) -> std::result::Result<GeneratedField, E>
3917 where
3918 E: serde::de::Error,
3919 {
3920 match value {
3921 "name" => Ok(GeneratedField::Name),
3922 "urn" => Ok(GeneratedField::Urn),
3923 "sizeGib" | "size_gib" => Ok(GeneratedField::SizeGib),
3924 "storageClass" | "storage_class" => {
3925 Ok(GeneratedField::StorageClass)
3926 }
3927 "sourceSnapshot" | "source_snapshot" => {
3928 Ok(GeneratedField::SourceSnapshot)
3929 }
3930 "state" => Ok(GeneratedField::State),
3931 "stateReason" | "state_reason" => {
3932 Ok(GeneratedField::StateReason)
3933 }
3934 "attachment" => Ok(GeneratedField::Attachment),
3935 "resizeState" | "resize_state" => {
3936 Ok(GeneratedField::ResizeState)
3937 }
3938 "resizeReason" | "resize_reason" => {
3939 Ok(GeneratedField::ResizeReason)
3940 }
3941 "pendingSizeGib" | "pending_size_gib" => {
3942 Ok(GeneratedField::PendingSizeGib)
3943 }
3944 "retentionNote" | "retention_note" => {
3945 Ok(GeneratedField::RetentionNote)
3946 }
3947 "iops" => Ok(GeneratedField::Iops),
3948 "throughputMibps" | "throughput_mibps" => {
3949 Ok(GeneratedField::ThroughputMibps)
3950 }
3951 "creator" => Ok(GeneratedField::Creator),
3952 "tags" => Ok(GeneratedField::Tags),
3953 _ => Ok(GeneratedField::__SkipField__),
3954 }
3955 }
3956 }
3957 deserializer.deserialize_identifier(GeneratedVisitor)
3958 }
3959 }
3960 struct GeneratedVisitor;
3961 impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
3962 type Value = Volume;
3963 fn expecting(
3964 &self,
3965 formatter: &mut std::fmt::Formatter<'_>,
3966 ) -> std::fmt::Result {
3967 formatter.write_str("struct origincloud.pvs.v1beta1.Volume")
3968 }
3969 fn visit_map<V>(self, mut map_: V) -> std::result::Result<Volume, V::Error>
3970 where
3971 V: serde::de::MapAccess<'de>,
3972 {
3973 let mut name__ = None;
3974 let mut urn__ = None;
3975 let mut size_gib__ = None;
3976 let mut storage_class__ = None;
3977 let mut source_snapshot__ = None;
3978 let mut state__ = None;
3979 let mut state_reason__ = None;
3980 let mut attachment__ = None;
3981 let mut resize_state__ = None;
3982 let mut resize_reason__ = None;
3983 let mut pending_size_gib__ = None;
3984 let mut retention_note__ = None;
3985 let mut iops__ = None;
3986 let mut throughput_mibps__ = None;
3987 let mut creator__ = None;
3988 let mut tags__ = None;
3989 while let Some(k) = map_.next_key()? {
3990 match k {
3991 GeneratedField::Name => {
3992 if name__.is_some() {
3993 return Err(serde::de::Error::duplicate_field("name"));
3994 }
3995 name__ = Some(map_.next_value()?);
3996 }
3997 GeneratedField::Urn => {
3998 if urn__.is_some() {
3999 return Err(serde::de::Error::duplicate_field("urn"));
4000 }
4001 urn__ = Some(map_.next_value()?);
4002 }
4003 GeneratedField::SizeGib => {
4004 if size_gib__.is_some() {
4005 return Err(serde::de::Error::duplicate_field("sizeGib"));
4006 }
4007 size_gib__ = Some(
4008 map_
4009 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4010 .0,
4011 );
4012 }
4013 GeneratedField::StorageClass => {
4014 if storage_class__.is_some() {
4015 return Err(
4016 serde::de::Error::duplicate_field("storageClass"),
4017 );
4018 }
4019 storage_class__ = Some(map_.next_value()?);
4020 }
4021 GeneratedField::SourceSnapshot => {
4022 if source_snapshot__.is_some() {
4023 return Err(
4024 serde::de::Error::duplicate_field("sourceSnapshot"),
4025 );
4026 }
4027 source_snapshot__ = Some(map_.next_value()?);
4028 }
4029 GeneratedField::State => {
4030 if state__.is_some() {
4031 return Err(serde::de::Error::duplicate_field("state"));
4032 }
4033 state__ = Some(map_.next_value::<volume::State>()? as i32);
4034 }
4035 GeneratedField::StateReason => {
4036 if state_reason__.is_some() {
4037 return Err(
4038 serde::de::Error::duplicate_field("stateReason"),
4039 );
4040 }
4041 state_reason__ = Some(map_.next_value()?);
4042 }
4043 GeneratedField::Attachment => {
4044 if attachment__.is_some() {
4045 return Err(serde::de::Error::duplicate_field("attachment"));
4046 }
4047 attachment__ = Some(map_.next_value()?);
4048 }
4049 GeneratedField::ResizeState => {
4050 if resize_state__.is_some() {
4051 return Err(
4052 serde::de::Error::duplicate_field("resizeState"),
4053 );
4054 }
4055 resize_state__ = Some(
4056 map_.next_value::<volume::ResizeState>()? as i32,
4057 );
4058 }
4059 GeneratedField::ResizeReason => {
4060 if resize_reason__.is_some() {
4061 return Err(
4062 serde::de::Error::duplicate_field("resizeReason"),
4063 );
4064 }
4065 resize_reason__ = Some(map_.next_value()?);
4066 }
4067 GeneratedField::PendingSizeGib => {
4068 if pending_size_gib__.is_some() {
4069 return Err(
4070 serde::de::Error::duplicate_field("pendingSizeGib"),
4071 );
4072 }
4073 pending_size_gib__ = Some(
4074 map_
4075 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4076 .0,
4077 );
4078 }
4079 GeneratedField::RetentionNote => {
4080 if retention_note__.is_some() {
4081 return Err(
4082 serde::de::Error::duplicate_field("retentionNote"),
4083 );
4084 }
4085 retention_note__ = Some(map_.next_value()?);
4086 }
4087 GeneratedField::Iops => {
4088 if iops__.is_some() {
4089 return Err(serde::de::Error::duplicate_field("iops"));
4090 }
4091 iops__ = Some(
4092 map_
4093 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4094 .0,
4095 );
4096 }
4097 GeneratedField::ThroughputMibps => {
4098 if throughput_mibps__.is_some() {
4099 return Err(
4100 serde::de::Error::duplicate_field("throughputMibps"),
4101 );
4102 }
4103 throughput_mibps__ = Some(
4104 map_
4105 .next_value::<::pbjson::private::NumberDeserialize<_>>()?
4106 .0,
4107 );
4108 }
4109 GeneratedField::Creator => {
4110 if creator__.is_some() {
4111 return Err(serde::de::Error::duplicate_field("creator"));
4112 }
4113 creator__ = Some(map_.next_value()?);
4114 }
4115 GeneratedField::Tags => {
4116 if tags__.is_some() {
4117 return Err(serde::de::Error::duplicate_field("tags"));
4118 }
4119 tags__ = Some(
4120 map_.next_value::<std::collections::BTreeMap<_, _>>()?,
4121 );
4122 }
4123 GeneratedField::__SkipField__ => {
4124 let _ = map_.next_value::<serde::de::IgnoredAny>()?;
4125 }
4126 }
4127 }
4128 Ok(Volume {
4129 name: name__.unwrap_or_default(),
4130 urn: urn__.unwrap_or_default(),
4131 size_gib: size_gib__.unwrap_or_default(),
4132 storage_class: storage_class__.unwrap_or_default(),
4133 source_snapshot: source_snapshot__.unwrap_or_default(),
4134 state: state__.unwrap_or_default(),
4135 state_reason: state_reason__.unwrap_or_default(),
4136 attachment: attachment__.unwrap_or_default(),
4137 resize_state: resize_state__.unwrap_or_default(),
4138 resize_reason: resize_reason__.unwrap_or_default(),
4139 pending_size_gib: pending_size_gib__.unwrap_or_default(),
4140 retention_note: retention_note__.unwrap_or_default(),
4141 iops: iops__.unwrap_or_default(),
4142 throughput_mibps: throughput_mibps__.unwrap_or_default(),
4143 creator: creator__.unwrap_or_default(),
4144 tags: tags__.unwrap_or_default(),
4145 })
4146 }
4147 }
4148 deserializer
4149 .deserialize_struct(
4150 "origincloud.pvs.v1beta1.Volume",
4151 FIELDS,
4152 GeneratedVisitor,
4153 )
4154 }
4155}
4156impl serde::Serialize for volume::ResizeState {
4157 #[allow(deprecated)]
4158 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4159 where
4160 S: serde::Serializer,
4161 {
4162 let variant = match self {
4163 Self::Unspecified => "RESIZE_STATE_UNSPECIFIED",
4164 Self::ResizeCompleted => "RESIZE_COMPLETED",
4165 Self::Resizing => "RESIZING",
4166 Self::ResizeFailed => "RESIZE_FAILED",
4167 };
4168 serializer.serialize_str(variant)
4169 }
4170}
4171impl<'de> serde::Deserialize<'de> for volume::ResizeState {
4172 #[allow(deprecated)]
4173 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4174 where
4175 D: serde::Deserializer<'de>,
4176 {
4177 const FIELDS: &[&str] = &[
4178 "RESIZE_STATE_UNSPECIFIED",
4179 "RESIZE_COMPLETED",
4180 "RESIZING",
4181 "RESIZE_FAILED",
4182 ];
4183 struct GeneratedVisitor;
4184 impl serde::de::Visitor<'_> for GeneratedVisitor {
4185 type Value = volume::ResizeState;
4186 fn expecting(
4187 &self,
4188 formatter: &mut std::fmt::Formatter<'_>,
4189 ) -> std::fmt::Result {
4190 write!(formatter, "expected one of: {:?}", & FIELDS)
4191 }
4192 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
4193 where
4194 E: serde::de::Error,
4195 {
4196 i32::try_from(v)
4197 .ok()
4198 .and_then(|x| {
4199 x
4200 .try_into()
4201 .ok()
4202 .or_else(|| Some(volume::ResizeState::default()))
4203 })
4204 .ok_or_else(|| {
4205 serde::de::Error::invalid_value(
4206 serde::de::Unexpected::Signed(v),
4207 &self,
4208 )
4209 })
4210 }
4211 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
4212 where
4213 E: serde::de::Error,
4214 {
4215 i32::try_from(v)
4216 .ok()
4217 .and_then(|x| {
4218 x
4219 .try_into()
4220 .ok()
4221 .or_else(|| Some(volume::ResizeState::default()))
4222 })
4223 .ok_or_else(|| {
4224 serde::de::Error::invalid_value(
4225 serde::de::Unexpected::Unsigned(v),
4226 &self,
4227 )
4228 })
4229 }
4230 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
4231 where
4232 E: serde::de::Error,
4233 {
4234 match value {
4235 "RESIZE_STATE_UNSPECIFIED" => Ok(volume::ResizeState::Unspecified),
4236 "RESIZE_COMPLETED" => Ok(volume::ResizeState::ResizeCompleted),
4237 "RESIZING" => Ok(volume::ResizeState::Resizing),
4238 "RESIZE_FAILED" => Ok(volume::ResizeState::ResizeFailed),
4239 _ => Ok(volume::ResizeState::default()),
4240 }
4241 }
4242 }
4243 deserializer.deserialize_any(GeneratedVisitor)
4244 }
4245}
4246impl serde::Serialize for volume::State {
4247 #[allow(deprecated)]
4248 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
4249 where
4250 S: serde::Serializer,
4251 {
4252 let variant = match self {
4253 Self::Unspecified => "STATE_UNSPECIFIED",
4254 Self::Creating => "CREATING",
4255 Self::Available => "AVAILABLE",
4256 Self::InUse => "IN_USE",
4257 Self::Deleting => "DELETING",
4258 Self::Deleted => "DELETED",
4259 Self::Error => "ERROR",
4260 };
4261 serializer.serialize_str(variant)
4262 }
4263}
4264impl<'de> serde::Deserialize<'de> for volume::State {
4265 #[allow(deprecated)]
4266 fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
4267 where
4268 D: serde::Deserializer<'de>,
4269 {
4270 const FIELDS: &[&str] = &[
4271 "STATE_UNSPECIFIED",
4272 "CREATING",
4273 "AVAILABLE",
4274 "IN_USE",
4275 "DELETING",
4276 "DELETED",
4277 "ERROR",
4278 ];
4279 struct GeneratedVisitor;
4280 impl serde::de::Visitor<'_> for GeneratedVisitor {
4281 type Value = volume::State;
4282 fn expecting(
4283 &self,
4284 formatter: &mut std::fmt::Formatter<'_>,
4285 ) -> std::fmt::Result {
4286 write!(formatter, "expected one of: {:?}", & FIELDS)
4287 }
4288 fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
4289 where
4290 E: serde::de::Error,
4291 {
4292 i32::try_from(v)
4293 .ok()
4294 .and_then(|x| {
4295 x.try_into().ok().or_else(|| Some(volume::State::default()))
4296 })
4297 .ok_or_else(|| {
4298 serde::de::Error::invalid_value(
4299 serde::de::Unexpected::Signed(v),
4300 &self,
4301 )
4302 })
4303 }
4304 fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
4305 where
4306 E: serde::de::Error,
4307 {
4308 i32::try_from(v)
4309 .ok()
4310 .and_then(|x| {
4311 x.try_into().ok().or_else(|| Some(volume::State::default()))
4312 })
4313 .ok_or_else(|| {
4314 serde::de::Error::invalid_value(
4315 serde::de::Unexpected::Unsigned(v),
4316 &self,
4317 )
4318 })
4319 }
4320 fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
4321 where
4322 E: serde::de::Error,
4323 {
4324 match value {
4325 "STATE_UNSPECIFIED" => Ok(volume::State::Unspecified),
4326 "CREATING" => Ok(volume::State::Creating),
4327 "AVAILABLE" => Ok(volume::State::Available),
4328 "IN_USE" => Ok(volume::State::InUse),
4329 "DELETING" => Ok(volume::State::Deleting),
4330 "DELETED" => Ok(volume::State::Deleted),
4331 "ERROR" => Ok(volume::State::Error),
4332 _ => Ok(volume::State::default()),
4333 }
4334 }
4335 }
4336 deserializer.deserialize_any(GeneratedVisitor)
4337 }
4338}
4339#[derive(Clone, Debug)]
4344pub struct SnapshotClient {
4345 service: ::origincloud_core::Service,
4346}
4347impl SnapshotClient {
4348 pub fn new(client: &::origincloud_core::Client) -> Self {
4350 Self {
4351 service: client.service("pvs", true),
4352 }
4353 }
4354 pub fn service(&self) -> &::origincloud_core::Service {
4356 &self.service
4357 }
4358 pub async fn get_snapshot(
4360 &self,
4361 request: GetSnapshotRequest,
4362 ) -> ::core::result::Result<Snapshot, ::origincloud_core::Error> {
4363 let p0 = ::origincloud_core::path_value(
4364 "name",
4365 &request.name,
4366 "projects/*/zones/*/snapshots/*",
4367 )?;
4368 let query = ::origincloud_core::query(&request, &["name"])?;
4369 let call = ::origincloud_core::Request::new(
4370 ::origincloud_core::Method::GET,
4371 format!("/v1beta1/{p0}"),
4372 )
4373 .with_query(query)
4374 .idempotent();
4375 self.service.call(call).await
4376 }
4377 pub async fn list_snapshots(
4382 &self,
4383 request: ListSnapshotsRequest,
4384 ) -> ::core::result::Result<ListSnapshotsResponse, ::origincloud_core::Error> {
4385 let p0 = ::origincloud_core::path_value(
4386 "parent",
4387 &request.parent,
4388 "projects/*/zones/*",
4389 )?;
4390 let query = ::origincloud_core::query(&request, &["parent"])?;
4391 let call = ::origincloud_core::Request::new(
4392 ::origincloud_core::Method::GET,
4393 format!("/v1beta1/{p0}/snapshots"),
4394 )
4395 .with_query(query)
4396 .idempotent();
4397 self.service.call(call).await
4398 }
4399 pub fn all_snapshots(
4401 &self,
4402 request: ListSnapshotsRequest,
4403 ) -> ::origincloud_core::Pages<Snapshot> {
4404 let client = self.clone();
4405 ::origincloud_core::Pages::new(
4406 request,
4407 move |request: ListSnapshotsRequest| {
4408 let client = client.clone();
4409 async move {
4410 let page = client.list_snapshots(request).await?;
4411 Ok((page.snapshots, page.next_page_token))
4412 }
4413 },
4414 |request: &mut ListSnapshotsRequest, token: ::std::string::String| {
4415 request.page_token = token;
4416 },
4417 )
4418 }
4419 pub async fn create_snapshot(
4424 &self,
4425 mut request: CreateSnapshotRequest,
4426 ) -> ::core::result::Result<
4427 ::origincloud_core::Operation<Snapshot>,
4428 ::origincloud_core::Error,
4429 > {
4430 if request.request_id.is_empty() {
4431 request.request_id = ::origincloud_core::new_request_id();
4432 }
4433 let p0 = ::origincloud_core::path_value(
4434 "parent",
4435 &request.parent,
4436 "projects/*/zones/*",
4437 )?;
4438 let body = ::origincloud_core::json_body(
4439 request.snapshot.as_ref().unwrap_or(&::core::default::Default::default()),
4440 )?;
4441 let query = ::origincloud_core::query(&request, &["parent", "snapshot"])?;
4442 let call = ::origincloud_core::Request::new(
4443 ::origincloud_core::Method::POST,
4444 format!("/v1beta1/{p0}/snapshots"),
4445 )
4446 .with_body(body)
4447 .with_query(query)
4448 .idempotent();
4449 let operation = self.service.call(call).await?;
4450 Ok(
4451 ::origincloud_core::Operation::new(
4452 self.service.clone(),
4453 operation,
4454 "origincloud.pvs.v1beta1.Snapshot",
4455 ),
4456 )
4457 }
4458 pub async fn update_snapshot(
4460 &self,
4461 request: UpdateSnapshotRequest,
4462 ) -> ::core::result::Result<Snapshot, ::origincloud_core::Error> {
4463 let p0 = ::origincloud_core::path_value(
4464 "snapshot.name",
4465 request.snapshot.as_ref().map_or("", |m| m.name.as_str()),
4466 "projects/*/zones/*/snapshots/*",
4467 )?;
4468 let body = ::origincloud_core::json_body(
4469 request.snapshot.as_ref().unwrap_or(&::core::default::Default::default()),
4470 )?;
4471 let query = ::origincloud_core::query(&request, &["snapshot.name", "snapshot"])?;
4472 let call = ::origincloud_core::Request::new(
4473 ::origincloud_core::Method::PATCH,
4474 format!("/v1beta1/{p0}"),
4475 )
4476 .with_body(body)
4477 .with_query(query);
4478 self.service.call(call).await
4479 }
4480 pub async fn delete_snapshot(
4485 &self,
4486 mut request: DeleteSnapshotRequest,
4487 ) -> ::core::result::Result<
4488 ::origincloud_core::Operation<::origincloud_core::protobuf::Empty>,
4489 ::origincloud_core::Error,
4490 > {
4491 if request.request_id.is_empty() {
4492 request.request_id = ::origincloud_core::new_request_id();
4493 }
4494 let p0 = ::origincloud_core::path_value(
4495 "name",
4496 &request.name,
4497 "projects/*/zones/*/snapshots/*",
4498 )?;
4499 let query = ::origincloud_core::query(&request, &["name"])?;
4500 let call = ::origincloud_core::Request::new(
4501 ::origincloud_core::Method::DELETE,
4502 format!("/v1beta1/{p0}"),
4503 )
4504 .with_query(query)
4505 .idempotent();
4506 let operation = self.service.call(call).await?;
4507 Ok(
4508 ::origincloud_core::Operation::new(
4509 self.service.clone(),
4510 operation,
4511 "google.protobuf.Empty",
4512 ),
4513 )
4514 }
4515 pub async fn protect_snapshot(
4520 &self,
4521 mut request: ProtectSnapshotRequest,
4522 ) -> ::core::result::Result<
4523 ::origincloud_core::Operation<Snapshot>,
4524 ::origincloud_core::Error,
4525 > {
4526 if request.request_id.is_empty() {
4527 request.request_id = ::origincloud_core::new_request_id();
4528 }
4529 let p0 = ::origincloud_core::path_value(
4530 "name",
4531 &request.name,
4532 "projects/*/zones/*/snapshots/*",
4533 )?;
4534 let body = ::origincloud_core::json_body(&request)?;
4535 let call = ::origincloud_core::Request::new(
4536 ::origincloud_core::Method::POST,
4537 format!("/v1beta1/{p0}:protect"),
4538 )
4539 .with_body(body)
4540 .idempotent();
4541 let operation = self.service.call(call).await?;
4542 Ok(
4543 ::origincloud_core::Operation::new(
4544 self.service.clone(),
4545 operation,
4546 "origincloud.pvs.v1beta1.Snapshot",
4547 ),
4548 )
4549 }
4550 pub async fn unprotect_snapshot(
4557 &self,
4558 mut request: UnprotectSnapshotRequest,
4559 ) -> ::core::result::Result<
4560 ::origincloud_core::Operation<Snapshot>,
4561 ::origincloud_core::Error,
4562 > {
4563 if request.request_id.is_empty() {
4564 request.request_id = ::origincloud_core::new_request_id();
4565 }
4566 let p0 = ::origincloud_core::path_value(
4567 "name",
4568 &request.name,
4569 "projects/*/zones/*/snapshots/*",
4570 )?;
4571 let body = ::origincloud_core::json_body(&request)?;
4572 let call = ::origincloud_core::Request::new(
4573 ::origincloud_core::Method::POST,
4574 format!("/v1beta1/{p0}:unprotect"),
4575 )
4576 .with_body(body)
4577 .idempotent();
4578 let operation = self.service.call(call).await?;
4579 Ok(
4580 ::origincloud_core::Operation::new(
4581 self.service.clone(),
4582 operation,
4583 "origincloud.pvs.v1beta1.Snapshot",
4584 ),
4585 )
4586 }
4587}
4588#[derive(Clone, Debug)]
4594pub struct StorageClassClient {
4595 service: ::origincloud_core::Service,
4596}
4597impl StorageClassClient {
4598 pub fn new(client: &::origincloud_core::Client) -> Self {
4600 Self {
4601 service: client.service("pvs", true),
4602 }
4603 }
4604 pub fn service(&self) -> &::origincloud_core::Service {
4606 &self.service
4607 }
4608 pub async fn get_storage_class(
4610 &self,
4611 request: GetStorageClassRequest,
4612 ) -> ::core::result::Result<StorageClass, ::origincloud_core::Error> {
4613 let p0 = ::origincloud_core::path_value(
4614 "name",
4615 &request.name,
4616 "storageClasses/*",
4617 )?;
4618 let query = ::origincloud_core::query(&request, &["name"])?;
4619 let call = ::origincloud_core::Request::new(
4620 ::origincloud_core::Method::GET,
4621 format!("/v1beta1/{p0}"),
4622 )
4623 .with_query(query)
4624 .idempotent();
4625 self.service.call(call).await
4626 }
4627 pub async fn list_storage_classes(
4630 &self,
4631 request: ListStorageClassesRequest,
4632 ) -> ::core::result::Result<ListStorageClassesResponse, ::origincloud_core::Error> {
4633 let query = ::origincloud_core::query(&request, &[])?;
4634 let call = ::origincloud_core::Request::new(
4635 ::origincloud_core::Method::GET,
4636 ::std::string::String::from("/v1beta1/storageClasses"),
4637 )
4638 .with_query(query)
4639 .idempotent();
4640 self.service.call(call).await
4641 }
4642}
4643#[derive(Clone, Debug)]
4648pub struct VolumeClient {
4649 service: ::origincloud_core::Service,
4650}
4651impl VolumeClient {
4652 pub fn new(client: &::origincloud_core::Client) -> Self {
4654 Self {
4655 service: client.service("pvs", true),
4656 }
4657 }
4658 pub fn service(&self) -> &::origincloud_core::Service {
4660 &self.service
4661 }
4662 pub async fn get_volume(
4664 &self,
4665 request: GetVolumeRequest,
4666 ) -> ::core::result::Result<Volume, ::origincloud_core::Error> {
4667 let p0 = ::origincloud_core::path_value(
4668 "name",
4669 &request.name,
4670 "projects/*/zones/*/volumes/*",
4671 )?;
4672 let query = ::origincloud_core::query(&request, &["name"])?;
4673 let call = ::origincloud_core::Request::new(
4674 ::origincloud_core::Method::GET,
4675 format!("/v1beta1/{p0}"),
4676 )
4677 .with_query(query)
4678 .idempotent();
4679 self.service.call(call).await
4680 }
4681 pub async fn list_volumes(
4686 &self,
4687 request: ListVolumesRequest,
4688 ) -> ::core::result::Result<ListVolumesResponse, ::origincloud_core::Error> {
4689 let p0 = ::origincloud_core::path_value(
4690 "parent",
4691 &request.parent,
4692 "projects/*/zones/*",
4693 )?;
4694 let query = ::origincloud_core::query(&request, &["parent"])?;
4695 let call = ::origincloud_core::Request::new(
4696 ::origincloud_core::Method::GET,
4697 format!("/v1beta1/{p0}/volumes"),
4698 )
4699 .with_query(query)
4700 .idempotent();
4701 self.service.call(call).await
4702 }
4703 pub fn all_volumes(
4705 &self,
4706 request: ListVolumesRequest,
4707 ) -> ::origincloud_core::Pages<Volume> {
4708 let client = self.clone();
4709 ::origincloud_core::Pages::new(
4710 request,
4711 move |request: ListVolumesRequest| {
4712 let client = client.clone();
4713 async move {
4714 let page = client.list_volumes(request).await?;
4715 Ok((page.volumes, page.next_page_token))
4716 }
4717 },
4718 |request: &mut ListVolumesRequest, token: ::std::string::String| {
4719 request.page_token = token;
4720 },
4721 )
4722 }
4723 pub async fn create_volume(
4728 &self,
4729 mut request: CreateVolumeRequest,
4730 ) -> ::core::result::Result<
4731 ::origincloud_core::Operation<Volume>,
4732 ::origincloud_core::Error,
4733 > {
4734 if request.request_id.is_empty() {
4735 request.request_id = ::origincloud_core::new_request_id();
4736 }
4737 let p0 = ::origincloud_core::path_value(
4738 "parent",
4739 &request.parent,
4740 "projects/*/zones/*",
4741 )?;
4742 let body = ::origincloud_core::json_body(
4743 request.volume.as_ref().unwrap_or(&::core::default::Default::default()),
4744 )?;
4745 let query = ::origincloud_core::query(&request, &["parent", "volume"])?;
4746 let call = ::origincloud_core::Request::new(
4747 ::origincloud_core::Method::POST,
4748 format!("/v1beta1/{p0}/volumes"),
4749 )
4750 .with_body(body)
4751 .with_query(query)
4752 .idempotent();
4753 let operation = self.service.call(call).await?;
4754 Ok(
4755 ::origincloud_core::Operation::new(
4756 self.service.clone(),
4757 operation,
4758 "origincloud.pvs.v1beta1.Volume",
4759 ),
4760 )
4761 }
4762 pub async fn import_volume(
4767 &self,
4768 mut request: ImportVolumeRequest,
4769 ) -> ::core::result::Result<
4770 ::origincloud_core::Operation<Volume>,
4771 ::origincloud_core::Error,
4772 > {
4773 if request.request_id.is_empty() {
4774 request.request_id = ::origincloud_core::new_request_id();
4775 }
4776 let p0 = ::origincloud_core::path_value(
4777 "parent",
4778 &request.parent,
4779 "projects/*/zones/*",
4780 )?;
4781 let body = ::origincloud_core::json_body(&request)?;
4782 let call = ::origincloud_core::Request::new(
4783 ::origincloud_core::Method::POST,
4784 format!("/v1beta1/{p0}/volumes:import"),
4785 )
4786 .with_body(body)
4787 .idempotent();
4788 let operation = self.service.call(call).await?;
4789 Ok(
4790 ::origincloud_core::Operation::new(
4791 self.service.clone(),
4792 operation,
4793 "origincloud.pvs.v1beta1.Volume",
4794 ),
4795 )
4796 }
4797 pub async fn update_volume(
4803 &self,
4804 mut request: UpdateVolumeRequest,
4805 ) -> ::core::result::Result<
4806 ::origincloud_core::Operation<Volume>,
4807 ::origincloud_core::Error,
4808 > {
4809 if request.request_id.is_empty() {
4810 request.request_id = ::origincloud_core::new_request_id();
4811 }
4812 let p0 = ::origincloud_core::path_value(
4813 "volume.name",
4814 request.volume.as_ref().map_or("", |m| m.name.as_str()),
4815 "projects/*/zones/*/volumes/*",
4816 )?;
4817 let body = ::origincloud_core::json_body(
4818 request.volume.as_ref().unwrap_or(&::core::default::Default::default()),
4819 )?;
4820 let query = ::origincloud_core::query(&request, &["volume.name", "volume"])?;
4821 let call = ::origincloud_core::Request::new(
4822 ::origincloud_core::Method::PATCH,
4823 format!("/v1beta1/{p0}"),
4824 )
4825 .with_body(body)
4826 .with_query(query)
4827 .idempotent();
4828 let operation = self.service.call(call).await?;
4829 Ok(
4830 ::origincloud_core::Operation::new(
4831 self.service.clone(),
4832 operation,
4833 "origincloud.pvs.v1beta1.Volume",
4834 ),
4835 )
4836 }
4837 pub async fn delete_volume(
4842 &self,
4843 mut request: DeleteVolumeRequest,
4844 ) -> ::core::result::Result<
4845 ::origincloud_core::Operation<::origincloud_core::protobuf::Empty>,
4846 ::origincloud_core::Error,
4847 > {
4848 if request.request_id.is_empty() {
4849 request.request_id = ::origincloud_core::new_request_id();
4850 }
4851 let p0 = ::origincloud_core::path_value(
4852 "name",
4853 &request.name,
4854 "projects/*/zones/*/volumes/*",
4855 )?;
4856 let query = ::origincloud_core::query(&request, &["name"])?;
4857 let call = ::origincloud_core::Request::new(
4858 ::origincloud_core::Method::DELETE,
4859 format!("/v1beta1/{p0}"),
4860 )
4861 .with_query(query)
4862 .idempotent();
4863 let operation = self.service.call(call).await?;
4864 Ok(
4865 ::origincloud_core::Operation::new(
4866 self.service.clone(),
4867 operation,
4868 "google.protobuf.Empty",
4869 ),
4870 )
4871 }
4872}