google_cloud_rust_raw/spanner/admin/database/v1/
backup.rs

1// This file is generated by rust-protobuf 2.28.0. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `google/spanner/admin/database/v1/backup.proto`
21
22/// Generated files are compatible only with the same version
23/// of protobuf runtime.
24// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_28_0;
25
26#[derive(PartialEq,Clone,Default)]
27pub struct Backup {
28    // message fields
29    pub database: ::std::string::String,
30    pub version_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
31    pub expire_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
32    pub name: ::std::string::String,
33    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
34    pub size_bytes: i64,
35    pub state: Backup_State,
36    pub referencing_databases: ::protobuf::RepeatedField<::std::string::String>,
37    pub encryption_info: ::protobuf::SingularPtrField<super::common::EncryptionInfo>,
38    pub database_dialect: super::common::DatabaseDialect,
39    pub referencing_backups: ::protobuf::RepeatedField<::std::string::String>,
40    pub max_expire_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
41    // special fields
42    pub unknown_fields: ::protobuf::UnknownFields,
43    pub cached_size: ::protobuf::CachedSize,
44}
45
46impl<'a> ::std::default::Default for &'a Backup {
47    fn default() -> &'a Backup {
48        <Backup as ::protobuf::Message>::default_instance()
49    }
50}
51
52impl Backup {
53    pub fn new() -> Backup {
54        ::std::default::Default::default()
55    }
56
57    // string database = 2;
58
59
60    pub fn get_database(&self) -> &str {
61        &self.database
62    }
63    pub fn clear_database(&mut self) {
64        self.database.clear();
65    }
66
67    // Param is passed by value, moved
68    pub fn set_database(&mut self, v: ::std::string::String) {
69        self.database = v;
70    }
71
72    // Mutable pointer to the field.
73    // If field is not initialized, it is initialized with default value first.
74    pub fn mut_database(&mut self) -> &mut ::std::string::String {
75        &mut self.database
76    }
77
78    // Take field
79    pub fn take_database(&mut self) -> ::std::string::String {
80        ::std::mem::replace(&mut self.database, ::std::string::String::new())
81    }
82
83    // .google.protobuf.Timestamp version_time = 9;
84
85
86    pub fn get_version_time(&self) -> &::protobuf::well_known_types::Timestamp {
87        self.version_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
88    }
89    pub fn clear_version_time(&mut self) {
90        self.version_time.clear();
91    }
92
93    pub fn has_version_time(&self) -> bool {
94        self.version_time.is_some()
95    }
96
97    // Param is passed by value, moved
98    pub fn set_version_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
99        self.version_time = ::protobuf::SingularPtrField::some(v);
100    }
101
102    // Mutable pointer to the field.
103    // If field is not initialized, it is initialized with default value first.
104    pub fn mut_version_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
105        if self.version_time.is_none() {
106            self.version_time.set_default();
107        }
108        self.version_time.as_mut().unwrap()
109    }
110
111    // Take field
112    pub fn take_version_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
113        self.version_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
114    }
115
116    // .google.protobuf.Timestamp expire_time = 3;
117
118
119    pub fn get_expire_time(&self) -> &::protobuf::well_known_types::Timestamp {
120        self.expire_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
121    }
122    pub fn clear_expire_time(&mut self) {
123        self.expire_time.clear();
124    }
125
126    pub fn has_expire_time(&self) -> bool {
127        self.expire_time.is_some()
128    }
129
130    // Param is passed by value, moved
131    pub fn set_expire_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
132        self.expire_time = ::protobuf::SingularPtrField::some(v);
133    }
134
135    // Mutable pointer to the field.
136    // If field is not initialized, it is initialized with default value first.
137    pub fn mut_expire_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
138        if self.expire_time.is_none() {
139            self.expire_time.set_default();
140        }
141        self.expire_time.as_mut().unwrap()
142    }
143
144    // Take field
145    pub fn take_expire_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
146        self.expire_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
147    }
148
149    // string name = 1;
150
151
152    pub fn get_name(&self) -> &str {
153        &self.name
154    }
155    pub fn clear_name(&mut self) {
156        self.name.clear();
157    }
158
159    // Param is passed by value, moved
160    pub fn set_name(&mut self, v: ::std::string::String) {
161        self.name = v;
162    }
163
164    // Mutable pointer to the field.
165    // If field is not initialized, it is initialized with default value first.
166    pub fn mut_name(&mut self) -> &mut ::std::string::String {
167        &mut self.name
168    }
169
170    // Take field
171    pub fn take_name(&mut self) -> ::std::string::String {
172        ::std::mem::replace(&mut self.name, ::std::string::String::new())
173    }
174
175    // .google.protobuf.Timestamp create_time = 4;
176
177
178    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
179        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
180    }
181    pub fn clear_create_time(&mut self) {
182        self.create_time.clear();
183    }
184
185    pub fn has_create_time(&self) -> bool {
186        self.create_time.is_some()
187    }
188
189    // Param is passed by value, moved
190    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
191        self.create_time = ::protobuf::SingularPtrField::some(v);
192    }
193
194    // Mutable pointer to the field.
195    // If field is not initialized, it is initialized with default value first.
196    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
197        if self.create_time.is_none() {
198            self.create_time.set_default();
199        }
200        self.create_time.as_mut().unwrap()
201    }
202
203    // Take field
204    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
205        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
206    }
207
208    // int64 size_bytes = 5;
209
210
211    pub fn get_size_bytes(&self) -> i64 {
212        self.size_bytes
213    }
214    pub fn clear_size_bytes(&mut self) {
215        self.size_bytes = 0;
216    }
217
218    // Param is passed by value, moved
219    pub fn set_size_bytes(&mut self, v: i64) {
220        self.size_bytes = v;
221    }
222
223    // .google.spanner.admin.database.v1.Backup.State state = 6;
224
225
226    pub fn get_state(&self) -> Backup_State {
227        self.state
228    }
229    pub fn clear_state(&mut self) {
230        self.state = Backup_State::STATE_UNSPECIFIED;
231    }
232
233    // Param is passed by value, moved
234    pub fn set_state(&mut self, v: Backup_State) {
235        self.state = v;
236    }
237
238    // repeated string referencing_databases = 7;
239
240
241    pub fn get_referencing_databases(&self) -> &[::std::string::String] {
242        &self.referencing_databases
243    }
244    pub fn clear_referencing_databases(&mut self) {
245        self.referencing_databases.clear();
246    }
247
248    // Param is passed by value, moved
249    pub fn set_referencing_databases(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
250        self.referencing_databases = v;
251    }
252
253    // Mutable pointer to the field.
254    pub fn mut_referencing_databases(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
255        &mut self.referencing_databases
256    }
257
258    // Take field
259    pub fn take_referencing_databases(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
260        ::std::mem::replace(&mut self.referencing_databases, ::protobuf::RepeatedField::new())
261    }
262
263    // .google.spanner.admin.database.v1.EncryptionInfo encryption_info = 8;
264
265
266    pub fn get_encryption_info(&self) -> &super::common::EncryptionInfo {
267        self.encryption_info.as_ref().unwrap_or_else(|| <super::common::EncryptionInfo as ::protobuf::Message>::default_instance())
268    }
269    pub fn clear_encryption_info(&mut self) {
270        self.encryption_info.clear();
271    }
272
273    pub fn has_encryption_info(&self) -> bool {
274        self.encryption_info.is_some()
275    }
276
277    // Param is passed by value, moved
278    pub fn set_encryption_info(&mut self, v: super::common::EncryptionInfo) {
279        self.encryption_info = ::protobuf::SingularPtrField::some(v);
280    }
281
282    // Mutable pointer to the field.
283    // If field is not initialized, it is initialized with default value first.
284    pub fn mut_encryption_info(&mut self) -> &mut super::common::EncryptionInfo {
285        if self.encryption_info.is_none() {
286            self.encryption_info.set_default();
287        }
288        self.encryption_info.as_mut().unwrap()
289    }
290
291    // Take field
292    pub fn take_encryption_info(&mut self) -> super::common::EncryptionInfo {
293        self.encryption_info.take().unwrap_or_else(|| super::common::EncryptionInfo::new())
294    }
295
296    // .google.spanner.admin.database.v1.DatabaseDialect database_dialect = 10;
297
298
299    pub fn get_database_dialect(&self) -> super::common::DatabaseDialect {
300        self.database_dialect
301    }
302    pub fn clear_database_dialect(&mut self) {
303        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
304    }
305
306    // Param is passed by value, moved
307    pub fn set_database_dialect(&mut self, v: super::common::DatabaseDialect) {
308        self.database_dialect = v;
309    }
310
311    // repeated string referencing_backups = 11;
312
313
314    pub fn get_referencing_backups(&self) -> &[::std::string::String] {
315        &self.referencing_backups
316    }
317    pub fn clear_referencing_backups(&mut self) {
318        self.referencing_backups.clear();
319    }
320
321    // Param is passed by value, moved
322    pub fn set_referencing_backups(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
323        self.referencing_backups = v;
324    }
325
326    // Mutable pointer to the field.
327    pub fn mut_referencing_backups(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
328        &mut self.referencing_backups
329    }
330
331    // Take field
332    pub fn take_referencing_backups(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
333        ::std::mem::replace(&mut self.referencing_backups, ::protobuf::RepeatedField::new())
334    }
335
336    // .google.protobuf.Timestamp max_expire_time = 12;
337
338
339    pub fn get_max_expire_time(&self) -> &::protobuf::well_known_types::Timestamp {
340        self.max_expire_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
341    }
342    pub fn clear_max_expire_time(&mut self) {
343        self.max_expire_time.clear();
344    }
345
346    pub fn has_max_expire_time(&self) -> bool {
347        self.max_expire_time.is_some()
348    }
349
350    // Param is passed by value, moved
351    pub fn set_max_expire_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
352        self.max_expire_time = ::protobuf::SingularPtrField::some(v);
353    }
354
355    // Mutable pointer to the field.
356    // If field is not initialized, it is initialized with default value first.
357    pub fn mut_max_expire_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
358        if self.max_expire_time.is_none() {
359            self.max_expire_time.set_default();
360        }
361        self.max_expire_time.as_mut().unwrap()
362    }
363
364    // Take field
365    pub fn take_max_expire_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
366        self.max_expire_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
367    }
368}
369
370impl ::protobuf::Message for Backup {
371    fn is_initialized(&self) -> bool {
372        for v in &self.version_time {
373            if !v.is_initialized() {
374                return false;
375            }
376        };
377        for v in &self.expire_time {
378            if !v.is_initialized() {
379                return false;
380            }
381        };
382        for v in &self.create_time {
383            if !v.is_initialized() {
384                return false;
385            }
386        };
387        for v in &self.encryption_info {
388            if !v.is_initialized() {
389                return false;
390            }
391        };
392        for v in &self.max_expire_time {
393            if !v.is_initialized() {
394                return false;
395            }
396        };
397        true
398    }
399
400    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
401        while !is.eof()? {
402            let (field_number, wire_type) = is.read_tag_unpack()?;
403            match field_number {
404                2 => {
405                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
406                },
407                9 => {
408                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.version_time)?;
409                },
410                3 => {
411                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.expire_time)?;
412                },
413                1 => {
414                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
415                },
416                4 => {
417                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
418                },
419                5 => {
420                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
421                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
422                    }
423                    let tmp = is.read_int64()?;
424                    self.size_bytes = tmp;
425                },
426                6 => {
427                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.state, 6, &mut self.unknown_fields)?
428                },
429                7 => {
430                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.referencing_databases)?;
431                },
432                8 => {
433                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_info)?;
434                },
435                10 => {
436                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.database_dialect, 10, &mut self.unknown_fields)?
437                },
438                11 => {
439                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.referencing_backups)?;
440                },
441                12 => {
442                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.max_expire_time)?;
443                },
444                _ => {
445                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
446                },
447            };
448        }
449        ::std::result::Result::Ok(())
450    }
451
452    // Compute sizes of nested messages
453    #[allow(unused_variables)]
454    fn compute_size(&self) -> u32 {
455        let mut my_size = 0;
456        if !self.database.is_empty() {
457            my_size += ::protobuf::rt::string_size(2, &self.database);
458        }
459        if let Some(ref v) = self.version_time.as_ref() {
460            let len = v.compute_size();
461            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
462        }
463        if let Some(ref v) = self.expire_time.as_ref() {
464            let len = v.compute_size();
465            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
466        }
467        if !self.name.is_empty() {
468            my_size += ::protobuf::rt::string_size(1, &self.name);
469        }
470        if let Some(ref v) = self.create_time.as_ref() {
471            let len = v.compute_size();
472            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
473        }
474        if self.size_bytes != 0 {
475            my_size += ::protobuf::rt::value_size(5, self.size_bytes, ::protobuf::wire_format::WireTypeVarint);
476        }
477        if self.state != Backup_State::STATE_UNSPECIFIED {
478            my_size += ::protobuf::rt::enum_size(6, self.state);
479        }
480        for value in &self.referencing_databases {
481            my_size += ::protobuf::rt::string_size(7, &value);
482        };
483        if let Some(ref v) = self.encryption_info.as_ref() {
484            let len = v.compute_size();
485            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
486        }
487        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
488            my_size += ::protobuf::rt::enum_size(10, self.database_dialect);
489        }
490        for value in &self.referencing_backups {
491            my_size += ::protobuf::rt::string_size(11, &value);
492        };
493        if let Some(ref v) = self.max_expire_time.as_ref() {
494            let len = v.compute_size();
495            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
496        }
497        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
498        self.cached_size.set(my_size);
499        my_size
500    }
501
502    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
503        if !self.database.is_empty() {
504            os.write_string(2, &self.database)?;
505        }
506        if let Some(ref v) = self.version_time.as_ref() {
507            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
508            os.write_raw_varint32(v.get_cached_size())?;
509            v.write_to_with_cached_sizes(os)?;
510        }
511        if let Some(ref v) = self.expire_time.as_ref() {
512            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
513            os.write_raw_varint32(v.get_cached_size())?;
514            v.write_to_with_cached_sizes(os)?;
515        }
516        if !self.name.is_empty() {
517            os.write_string(1, &self.name)?;
518        }
519        if let Some(ref v) = self.create_time.as_ref() {
520            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
521            os.write_raw_varint32(v.get_cached_size())?;
522            v.write_to_with_cached_sizes(os)?;
523        }
524        if self.size_bytes != 0 {
525            os.write_int64(5, self.size_bytes)?;
526        }
527        if self.state != Backup_State::STATE_UNSPECIFIED {
528            os.write_enum(6, ::protobuf::ProtobufEnum::value(&self.state))?;
529        }
530        for v in &self.referencing_databases {
531            os.write_string(7, &v)?;
532        };
533        if let Some(ref v) = self.encryption_info.as_ref() {
534            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
535            os.write_raw_varint32(v.get_cached_size())?;
536            v.write_to_with_cached_sizes(os)?;
537        }
538        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
539            os.write_enum(10, ::protobuf::ProtobufEnum::value(&self.database_dialect))?;
540        }
541        for v in &self.referencing_backups {
542            os.write_string(11, &v)?;
543        };
544        if let Some(ref v) = self.max_expire_time.as_ref() {
545            os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)?;
546            os.write_raw_varint32(v.get_cached_size())?;
547            v.write_to_with_cached_sizes(os)?;
548        }
549        os.write_unknown_fields(self.get_unknown_fields())?;
550        ::std::result::Result::Ok(())
551    }
552
553    fn get_cached_size(&self) -> u32 {
554        self.cached_size.get()
555    }
556
557    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
558        &self.unknown_fields
559    }
560
561    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
562        &mut self.unknown_fields
563    }
564
565    fn as_any(&self) -> &dyn (::std::any::Any) {
566        self as &dyn (::std::any::Any)
567    }
568    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
569        self as &mut dyn (::std::any::Any)
570    }
571    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
572        self
573    }
574
575    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
576        Self::descriptor_static()
577    }
578
579    fn new() -> Backup {
580        Backup::new()
581    }
582
583    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
584        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
585        descriptor.get(|| {
586            let mut fields = ::std::vec::Vec::new();
587            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
588                "database",
589                |m: &Backup| { &m.database },
590                |m: &mut Backup| { &mut m.database },
591            ));
592            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
593                "version_time",
594                |m: &Backup| { &m.version_time },
595                |m: &mut Backup| { &mut m.version_time },
596            ));
597            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
598                "expire_time",
599                |m: &Backup| { &m.expire_time },
600                |m: &mut Backup| { &mut m.expire_time },
601            ));
602            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
603                "name",
604                |m: &Backup| { &m.name },
605                |m: &mut Backup| { &mut m.name },
606            ));
607            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
608                "create_time",
609                |m: &Backup| { &m.create_time },
610                |m: &mut Backup| { &mut m.create_time },
611            ));
612            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
613                "size_bytes",
614                |m: &Backup| { &m.size_bytes },
615                |m: &mut Backup| { &mut m.size_bytes },
616            ));
617            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Backup_State>>(
618                "state",
619                |m: &Backup| { &m.state },
620                |m: &mut Backup| { &mut m.state },
621            ));
622            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
623                "referencing_databases",
624                |m: &Backup| { &m.referencing_databases },
625                |m: &mut Backup| { &mut m.referencing_databases },
626            ));
627            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::EncryptionInfo>>(
628                "encryption_info",
629                |m: &Backup| { &m.encryption_info },
630                |m: &mut Backup| { &mut m.encryption_info },
631            ));
632            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::common::DatabaseDialect>>(
633                "database_dialect",
634                |m: &Backup| { &m.database_dialect },
635                |m: &mut Backup| { &mut m.database_dialect },
636            ));
637            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
638                "referencing_backups",
639                |m: &Backup| { &m.referencing_backups },
640                |m: &mut Backup| { &mut m.referencing_backups },
641            ));
642            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
643                "max_expire_time",
644                |m: &Backup| { &m.max_expire_time },
645                |m: &mut Backup| { &mut m.max_expire_time },
646            ));
647            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Backup>(
648                "Backup",
649                fields,
650                file_descriptor_proto()
651            )
652        })
653    }
654
655    fn default_instance() -> &'static Backup {
656        static instance: ::protobuf::rt::LazyV2<Backup> = ::protobuf::rt::LazyV2::INIT;
657        instance.get(Backup::new)
658    }
659}
660
661impl ::protobuf::Clear for Backup {
662    fn clear(&mut self) {
663        self.database.clear();
664        self.version_time.clear();
665        self.expire_time.clear();
666        self.name.clear();
667        self.create_time.clear();
668        self.size_bytes = 0;
669        self.state = Backup_State::STATE_UNSPECIFIED;
670        self.referencing_databases.clear();
671        self.encryption_info.clear();
672        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
673        self.referencing_backups.clear();
674        self.max_expire_time.clear();
675        self.unknown_fields.clear();
676    }
677}
678
679impl ::std::fmt::Debug for Backup {
680    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
681        ::protobuf::text_format::fmt(self, f)
682    }
683}
684
685impl ::protobuf::reflect::ProtobufValue for Backup {
686    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
687        ::protobuf::reflect::ReflectValueRef::Message(self)
688    }
689}
690
691#[derive(Clone,PartialEq,Eq,Debug,Hash)]
692pub enum Backup_State {
693    STATE_UNSPECIFIED = 0,
694    CREATING = 1,
695    READY = 2,
696}
697
698impl ::protobuf::ProtobufEnum for Backup_State {
699    fn value(&self) -> i32 {
700        *self as i32
701    }
702
703    fn from_i32(value: i32) -> ::std::option::Option<Backup_State> {
704        match value {
705            0 => ::std::option::Option::Some(Backup_State::STATE_UNSPECIFIED),
706            1 => ::std::option::Option::Some(Backup_State::CREATING),
707            2 => ::std::option::Option::Some(Backup_State::READY),
708            _ => ::std::option::Option::None
709        }
710    }
711
712    fn values() -> &'static [Self] {
713        static values: &'static [Backup_State] = &[
714            Backup_State::STATE_UNSPECIFIED,
715            Backup_State::CREATING,
716            Backup_State::READY,
717        ];
718        values
719    }
720
721    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
722        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
723        descriptor.get(|| {
724            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Backup_State>("Backup.State", file_descriptor_proto())
725        })
726    }
727}
728
729impl ::std::marker::Copy for Backup_State {
730}
731
732impl ::std::default::Default for Backup_State {
733    fn default() -> Self {
734        Backup_State::STATE_UNSPECIFIED
735    }
736}
737
738impl ::protobuf::reflect::ProtobufValue for Backup_State {
739    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
740        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
741    }
742}
743
744#[derive(PartialEq,Clone,Default)]
745pub struct CreateBackupRequest {
746    // message fields
747    pub parent: ::std::string::String,
748    pub backup_id: ::std::string::String,
749    pub backup: ::protobuf::SingularPtrField<Backup>,
750    pub encryption_config: ::protobuf::SingularPtrField<CreateBackupEncryptionConfig>,
751    // special fields
752    pub unknown_fields: ::protobuf::UnknownFields,
753    pub cached_size: ::protobuf::CachedSize,
754}
755
756impl<'a> ::std::default::Default for &'a CreateBackupRequest {
757    fn default() -> &'a CreateBackupRequest {
758        <CreateBackupRequest as ::protobuf::Message>::default_instance()
759    }
760}
761
762impl CreateBackupRequest {
763    pub fn new() -> CreateBackupRequest {
764        ::std::default::Default::default()
765    }
766
767    // string parent = 1;
768
769
770    pub fn get_parent(&self) -> &str {
771        &self.parent
772    }
773    pub fn clear_parent(&mut self) {
774        self.parent.clear();
775    }
776
777    // Param is passed by value, moved
778    pub fn set_parent(&mut self, v: ::std::string::String) {
779        self.parent = v;
780    }
781
782    // Mutable pointer to the field.
783    // If field is not initialized, it is initialized with default value first.
784    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
785        &mut self.parent
786    }
787
788    // Take field
789    pub fn take_parent(&mut self) -> ::std::string::String {
790        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
791    }
792
793    // string backup_id = 2;
794
795
796    pub fn get_backup_id(&self) -> &str {
797        &self.backup_id
798    }
799    pub fn clear_backup_id(&mut self) {
800        self.backup_id.clear();
801    }
802
803    // Param is passed by value, moved
804    pub fn set_backup_id(&mut self, v: ::std::string::String) {
805        self.backup_id = v;
806    }
807
808    // Mutable pointer to the field.
809    // If field is not initialized, it is initialized with default value first.
810    pub fn mut_backup_id(&mut self) -> &mut ::std::string::String {
811        &mut self.backup_id
812    }
813
814    // Take field
815    pub fn take_backup_id(&mut self) -> ::std::string::String {
816        ::std::mem::replace(&mut self.backup_id, ::std::string::String::new())
817    }
818
819    // .google.spanner.admin.database.v1.Backup backup = 3;
820
821
822    pub fn get_backup(&self) -> &Backup {
823        self.backup.as_ref().unwrap_or_else(|| <Backup as ::protobuf::Message>::default_instance())
824    }
825    pub fn clear_backup(&mut self) {
826        self.backup.clear();
827    }
828
829    pub fn has_backup(&self) -> bool {
830        self.backup.is_some()
831    }
832
833    // Param is passed by value, moved
834    pub fn set_backup(&mut self, v: Backup) {
835        self.backup = ::protobuf::SingularPtrField::some(v);
836    }
837
838    // Mutable pointer to the field.
839    // If field is not initialized, it is initialized with default value first.
840    pub fn mut_backup(&mut self) -> &mut Backup {
841        if self.backup.is_none() {
842            self.backup.set_default();
843        }
844        self.backup.as_mut().unwrap()
845    }
846
847    // Take field
848    pub fn take_backup(&mut self) -> Backup {
849        self.backup.take().unwrap_or_else(|| Backup::new())
850    }
851
852    // .google.spanner.admin.database.v1.CreateBackupEncryptionConfig encryption_config = 4;
853
854
855    pub fn get_encryption_config(&self) -> &CreateBackupEncryptionConfig {
856        self.encryption_config.as_ref().unwrap_or_else(|| <CreateBackupEncryptionConfig as ::protobuf::Message>::default_instance())
857    }
858    pub fn clear_encryption_config(&mut self) {
859        self.encryption_config.clear();
860    }
861
862    pub fn has_encryption_config(&self) -> bool {
863        self.encryption_config.is_some()
864    }
865
866    // Param is passed by value, moved
867    pub fn set_encryption_config(&mut self, v: CreateBackupEncryptionConfig) {
868        self.encryption_config = ::protobuf::SingularPtrField::some(v);
869    }
870
871    // Mutable pointer to the field.
872    // If field is not initialized, it is initialized with default value first.
873    pub fn mut_encryption_config(&mut self) -> &mut CreateBackupEncryptionConfig {
874        if self.encryption_config.is_none() {
875            self.encryption_config.set_default();
876        }
877        self.encryption_config.as_mut().unwrap()
878    }
879
880    // Take field
881    pub fn take_encryption_config(&mut self) -> CreateBackupEncryptionConfig {
882        self.encryption_config.take().unwrap_or_else(|| CreateBackupEncryptionConfig::new())
883    }
884}
885
886impl ::protobuf::Message for CreateBackupRequest {
887    fn is_initialized(&self) -> bool {
888        for v in &self.backup {
889            if !v.is_initialized() {
890                return false;
891            }
892        };
893        for v in &self.encryption_config {
894            if !v.is_initialized() {
895                return false;
896            }
897        };
898        true
899    }
900
901    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
902        while !is.eof()? {
903            let (field_number, wire_type) = is.read_tag_unpack()?;
904            match field_number {
905                1 => {
906                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
907                },
908                2 => {
909                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.backup_id)?;
910                },
911                3 => {
912                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.backup)?;
913                },
914                4 => {
915                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_config)?;
916                },
917                _ => {
918                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
919                },
920            };
921        }
922        ::std::result::Result::Ok(())
923    }
924
925    // Compute sizes of nested messages
926    #[allow(unused_variables)]
927    fn compute_size(&self) -> u32 {
928        let mut my_size = 0;
929        if !self.parent.is_empty() {
930            my_size += ::protobuf::rt::string_size(1, &self.parent);
931        }
932        if !self.backup_id.is_empty() {
933            my_size += ::protobuf::rt::string_size(2, &self.backup_id);
934        }
935        if let Some(ref v) = self.backup.as_ref() {
936            let len = v.compute_size();
937            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
938        }
939        if let Some(ref v) = self.encryption_config.as_ref() {
940            let len = v.compute_size();
941            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
942        }
943        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
944        self.cached_size.set(my_size);
945        my_size
946    }
947
948    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
949        if !self.parent.is_empty() {
950            os.write_string(1, &self.parent)?;
951        }
952        if !self.backup_id.is_empty() {
953            os.write_string(2, &self.backup_id)?;
954        }
955        if let Some(ref v) = self.backup.as_ref() {
956            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
957            os.write_raw_varint32(v.get_cached_size())?;
958            v.write_to_with_cached_sizes(os)?;
959        }
960        if let Some(ref v) = self.encryption_config.as_ref() {
961            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
962            os.write_raw_varint32(v.get_cached_size())?;
963            v.write_to_with_cached_sizes(os)?;
964        }
965        os.write_unknown_fields(self.get_unknown_fields())?;
966        ::std::result::Result::Ok(())
967    }
968
969    fn get_cached_size(&self) -> u32 {
970        self.cached_size.get()
971    }
972
973    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
974        &self.unknown_fields
975    }
976
977    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
978        &mut self.unknown_fields
979    }
980
981    fn as_any(&self) -> &dyn (::std::any::Any) {
982        self as &dyn (::std::any::Any)
983    }
984    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
985        self as &mut dyn (::std::any::Any)
986    }
987    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
988        self
989    }
990
991    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
992        Self::descriptor_static()
993    }
994
995    fn new() -> CreateBackupRequest {
996        CreateBackupRequest::new()
997    }
998
999    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1000        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1001        descriptor.get(|| {
1002            let mut fields = ::std::vec::Vec::new();
1003            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1004                "parent",
1005                |m: &CreateBackupRequest| { &m.parent },
1006                |m: &mut CreateBackupRequest| { &mut m.parent },
1007            ));
1008            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1009                "backup_id",
1010                |m: &CreateBackupRequest| { &m.backup_id },
1011                |m: &mut CreateBackupRequest| { &mut m.backup_id },
1012            ));
1013            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Backup>>(
1014                "backup",
1015                |m: &CreateBackupRequest| { &m.backup },
1016                |m: &mut CreateBackupRequest| { &mut m.backup },
1017            ));
1018            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CreateBackupEncryptionConfig>>(
1019                "encryption_config",
1020                |m: &CreateBackupRequest| { &m.encryption_config },
1021                |m: &mut CreateBackupRequest| { &mut m.encryption_config },
1022            ));
1023            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateBackupRequest>(
1024                "CreateBackupRequest",
1025                fields,
1026                file_descriptor_proto()
1027            )
1028        })
1029    }
1030
1031    fn default_instance() -> &'static CreateBackupRequest {
1032        static instance: ::protobuf::rt::LazyV2<CreateBackupRequest> = ::protobuf::rt::LazyV2::INIT;
1033        instance.get(CreateBackupRequest::new)
1034    }
1035}
1036
1037impl ::protobuf::Clear for CreateBackupRequest {
1038    fn clear(&mut self) {
1039        self.parent.clear();
1040        self.backup_id.clear();
1041        self.backup.clear();
1042        self.encryption_config.clear();
1043        self.unknown_fields.clear();
1044    }
1045}
1046
1047impl ::std::fmt::Debug for CreateBackupRequest {
1048    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1049        ::protobuf::text_format::fmt(self, f)
1050    }
1051}
1052
1053impl ::protobuf::reflect::ProtobufValue for CreateBackupRequest {
1054    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1055        ::protobuf::reflect::ReflectValueRef::Message(self)
1056    }
1057}
1058
1059#[derive(PartialEq,Clone,Default)]
1060pub struct CreateBackupMetadata {
1061    // message fields
1062    pub name: ::std::string::String,
1063    pub database: ::std::string::String,
1064    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
1065    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1066    // special fields
1067    pub unknown_fields: ::protobuf::UnknownFields,
1068    pub cached_size: ::protobuf::CachedSize,
1069}
1070
1071impl<'a> ::std::default::Default for &'a CreateBackupMetadata {
1072    fn default() -> &'a CreateBackupMetadata {
1073        <CreateBackupMetadata as ::protobuf::Message>::default_instance()
1074    }
1075}
1076
1077impl CreateBackupMetadata {
1078    pub fn new() -> CreateBackupMetadata {
1079        ::std::default::Default::default()
1080    }
1081
1082    // string name = 1;
1083
1084
1085    pub fn get_name(&self) -> &str {
1086        &self.name
1087    }
1088    pub fn clear_name(&mut self) {
1089        self.name.clear();
1090    }
1091
1092    // Param is passed by value, moved
1093    pub fn set_name(&mut self, v: ::std::string::String) {
1094        self.name = v;
1095    }
1096
1097    // Mutable pointer to the field.
1098    // If field is not initialized, it is initialized with default value first.
1099    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1100        &mut self.name
1101    }
1102
1103    // Take field
1104    pub fn take_name(&mut self) -> ::std::string::String {
1105        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1106    }
1107
1108    // string database = 2;
1109
1110
1111    pub fn get_database(&self) -> &str {
1112        &self.database
1113    }
1114    pub fn clear_database(&mut self) {
1115        self.database.clear();
1116    }
1117
1118    // Param is passed by value, moved
1119    pub fn set_database(&mut self, v: ::std::string::String) {
1120        self.database = v;
1121    }
1122
1123    // Mutable pointer to the field.
1124    // If field is not initialized, it is initialized with default value first.
1125    pub fn mut_database(&mut self) -> &mut ::std::string::String {
1126        &mut self.database
1127    }
1128
1129    // Take field
1130    pub fn take_database(&mut self) -> ::std::string::String {
1131        ::std::mem::replace(&mut self.database, ::std::string::String::new())
1132    }
1133
1134    // .google.spanner.admin.database.v1.OperationProgress progress = 3;
1135
1136
1137    pub fn get_progress(&self) -> &super::common::OperationProgress {
1138        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
1139    }
1140    pub fn clear_progress(&mut self) {
1141        self.progress.clear();
1142    }
1143
1144    pub fn has_progress(&self) -> bool {
1145        self.progress.is_some()
1146    }
1147
1148    // Param is passed by value, moved
1149    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
1150        self.progress = ::protobuf::SingularPtrField::some(v);
1151    }
1152
1153    // Mutable pointer to the field.
1154    // If field is not initialized, it is initialized with default value first.
1155    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
1156        if self.progress.is_none() {
1157            self.progress.set_default();
1158        }
1159        self.progress.as_mut().unwrap()
1160    }
1161
1162    // Take field
1163    pub fn take_progress(&mut self) -> super::common::OperationProgress {
1164        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
1165    }
1166
1167    // .google.protobuf.Timestamp cancel_time = 4;
1168
1169
1170    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
1171        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1172    }
1173    pub fn clear_cancel_time(&mut self) {
1174        self.cancel_time.clear();
1175    }
1176
1177    pub fn has_cancel_time(&self) -> bool {
1178        self.cancel_time.is_some()
1179    }
1180
1181    // Param is passed by value, moved
1182    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1183        self.cancel_time = ::protobuf::SingularPtrField::some(v);
1184    }
1185
1186    // Mutable pointer to the field.
1187    // If field is not initialized, it is initialized with default value first.
1188    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1189        if self.cancel_time.is_none() {
1190            self.cancel_time.set_default();
1191        }
1192        self.cancel_time.as_mut().unwrap()
1193    }
1194
1195    // Take field
1196    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1197        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1198    }
1199}
1200
1201impl ::protobuf::Message for CreateBackupMetadata {
1202    fn is_initialized(&self) -> bool {
1203        for v in &self.progress {
1204            if !v.is_initialized() {
1205                return false;
1206            }
1207        };
1208        for v in &self.cancel_time {
1209            if !v.is_initialized() {
1210                return false;
1211            }
1212        };
1213        true
1214    }
1215
1216    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1217        while !is.eof()? {
1218            let (field_number, wire_type) = is.read_tag_unpack()?;
1219            match field_number {
1220                1 => {
1221                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1222                },
1223                2 => {
1224                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
1225                },
1226                3 => {
1227                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
1228                },
1229                4 => {
1230                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
1231                },
1232                _ => {
1233                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1234                },
1235            };
1236        }
1237        ::std::result::Result::Ok(())
1238    }
1239
1240    // Compute sizes of nested messages
1241    #[allow(unused_variables)]
1242    fn compute_size(&self) -> u32 {
1243        let mut my_size = 0;
1244        if !self.name.is_empty() {
1245            my_size += ::protobuf::rt::string_size(1, &self.name);
1246        }
1247        if !self.database.is_empty() {
1248            my_size += ::protobuf::rt::string_size(2, &self.database);
1249        }
1250        if let Some(ref v) = self.progress.as_ref() {
1251            let len = v.compute_size();
1252            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1253        }
1254        if let Some(ref v) = self.cancel_time.as_ref() {
1255            let len = v.compute_size();
1256            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1257        }
1258        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1259        self.cached_size.set(my_size);
1260        my_size
1261    }
1262
1263    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1264        if !self.name.is_empty() {
1265            os.write_string(1, &self.name)?;
1266        }
1267        if !self.database.is_empty() {
1268            os.write_string(2, &self.database)?;
1269        }
1270        if let Some(ref v) = self.progress.as_ref() {
1271            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1272            os.write_raw_varint32(v.get_cached_size())?;
1273            v.write_to_with_cached_sizes(os)?;
1274        }
1275        if let Some(ref v) = self.cancel_time.as_ref() {
1276            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1277            os.write_raw_varint32(v.get_cached_size())?;
1278            v.write_to_with_cached_sizes(os)?;
1279        }
1280        os.write_unknown_fields(self.get_unknown_fields())?;
1281        ::std::result::Result::Ok(())
1282    }
1283
1284    fn get_cached_size(&self) -> u32 {
1285        self.cached_size.get()
1286    }
1287
1288    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1289        &self.unknown_fields
1290    }
1291
1292    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1293        &mut self.unknown_fields
1294    }
1295
1296    fn as_any(&self) -> &dyn (::std::any::Any) {
1297        self as &dyn (::std::any::Any)
1298    }
1299    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1300        self as &mut dyn (::std::any::Any)
1301    }
1302    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1303        self
1304    }
1305
1306    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1307        Self::descriptor_static()
1308    }
1309
1310    fn new() -> CreateBackupMetadata {
1311        CreateBackupMetadata::new()
1312    }
1313
1314    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1315        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1316        descriptor.get(|| {
1317            let mut fields = ::std::vec::Vec::new();
1318            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1319                "name",
1320                |m: &CreateBackupMetadata| { &m.name },
1321                |m: &mut CreateBackupMetadata| { &mut m.name },
1322            ));
1323            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1324                "database",
1325                |m: &CreateBackupMetadata| { &m.database },
1326                |m: &mut CreateBackupMetadata| { &mut m.database },
1327            ));
1328            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
1329                "progress",
1330                |m: &CreateBackupMetadata| { &m.progress },
1331                |m: &mut CreateBackupMetadata| { &mut m.progress },
1332            ));
1333            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
1334                "cancel_time",
1335                |m: &CreateBackupMetadata| { &m.cancel_time },
1336                |m: &mut CreateBackupMetadata| { &mut m.cancel_time },
1337            ));
1338            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateBackupMetadata>(
1339                "CreateBackupMetadata",
1340                fields,
1341                file_descriptor_proto()
1342            )
1343        })
1344    }
1345
1346    fn default_instance() -> &'static CreateBackupMetadata {
1347        static instance: ::protobuf::rt::LazyV2<CreateBackupMetadata> = ::protobuf::rt::LazyV2::INIT;
1348        instance.get(CreateBackupMetadata::new)
1349    }
1350}
1351
1352impl ::protobuf::Clear for CreateBackupMetadata {
1353    fn clear(&mut self) {
1354        self.name.clear();
1355        self.database.clear();
1356        self.progress.clear();
1357        self.cancel_time.clear();
1358        self.unknown_fields.clear();
1359    }
1360}
1361
1362impl ::std::fmt::Debug for CreateBackupMetadata {
1363    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1364        ::protobuf::text_format::fmt(self, f)
1365    }
1366}
1367
1368impl ::protobuf::reflect::ProtobufValue for CreateBackupMetadata {
1369    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1370        ::protobuf::reflect::ReflectValueRef::Message(self)
1371    }
1372}
1373
1374#[derive(PartialEq,Clone,Default)]
1375pub struct CopyBackupRequest {
1376    // message fields
1377    pub parent: ::std::string::String,
1378    pub backup_id: ::std::string::String,
1379    pub source_backup: ::std::string::String,
1380    pub expire_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1381    pub encryption_config: ::protobuf::SingularPtrField<CopyBackupEncryptionConfig>,
1382    // special fields
1383    pub unknown_fields: ::protobuf::UnknownFields,
1384    pub cached_size: ::protobuf::CachedSize,
1385}
1386
1387impl<'a> ::std::default::Default for &'a CopyBackupRequest {
1388    fn default() -> &'a CopyBackupRequest {
1389        <CopyBackupRequest as ::protobuf::Message>::default_instance()
1390    }
1391}
1392
1393impl CopyBackupRequest {
1394    pub fn new() -> CopyBackupRequest {
1395        ::std::default::Default::default()
1396    }
1397
1398    // string parent = 1;
1399
1400
1401    pub fn get_parent(&self) -> &str {
1402        &self.parent
1403    }
1404    pub fn clear_parent(&mut self) {
1405        self.parent.clear();
1406    }
1407
1408    // Param is passed by value, moved
1409    pub fn set_parent(&mut self, v: ::std::string::String) {
1410        self.parent = v;
1411    }
1412
1413    // Mutable pointer to the field.
1414    // If field is not initialized, it is initialized with default value first.
1415    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
1416        &mut self.parent
1417    }
1418
1419    // Take field
1420    pub fn take_parent(&mut self) -> ::std::string::String {
1421        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
1422    }
1423
1424    // string backup_id = 2;
1425
1426
1427    pub fn get_backup_id(&self) -> &str {
1428        &self.backup_id
1429    }
1430    pub fn clear_backup_id(&mut self) {
1431        self.backup_id.clear();
1432    }
1433
1434    // Param is passed by value, moved
1435    pub fn set_backup_id(&mut self, v: ::std::string::String) {
1436        self.backup_id = v;
1437    }
1438
1439    // Mutable pointer to the field.
1440    // If field is not initialized, it is initialized with default value first.
1441    pub fn mut_backup_id(&mut self) -> &mut ::std::string::String {
1442        &mut self.backup_id
1443    }
1444
1445    // Take field
1446    pub fn take_backup_id(&mut self) -> ::std::string::String {
1447        ::std::mem::replace(&mut self.backup_id, ::std::string::String::new())
1448    }
1449
1450    // string source_backup = 3;
1451
1452
1453    pub fn get_source_backup(&self) -> &str {
1454        &self.source_backup
1455    }
1456    pub fn clear_source_backup(&mut self) {
1457        self.source_backup.clear();
1458    }
1459
1460    // Param is passed by value, moved
1461    pub fn set_source_backup(&mut self, v: ::std::string::String) {
1462        self.source_backup = v;
1463    }
1464
1465    // Mutable pointer to the field.
1466    // If field is not initialized, it is initialized with default value first.
1467    pub fn mut_source_backup(&mut self) -> &mut ::std::string::String {
1468        &mut self.source_backup
1469    }
1470
1471    // Take field
1472    pub fn take_source_backup(&mut self) -> ::std::string::String {
1473        ::std::mem::replace(&mut self.source_backup, ::std::string::String::new())
1474    }
1475
1476    // .google.protobuf.Timestamp expire_time = 4;
1477
1478
1479    pub fn get_expire_time(&self) -> &::protobuf::well_known_types::Timestamp {
1480        self.expire_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1481    }
1482    pub fn clear_expire_time(&mut self) {
1483        self.expire_time.clear();
1484    }
1485
1486    pub fn has_expire_time(&self) -> bool {
1487        self.expire_time.is_some()
1488    }
1489
1490    // Param is passed by value, moved
1491    pub fn set_expire_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1492        self.expire_time = ::protobuf::SingularPtrField::some(v);
1493    }
1494
1495    // Mutable pointer to the field.
1496    // If field is not initialized, it is initialized with default value first.
1497    pub fn mut_expire_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1498        if self.expire_time.is_none() {
1499            self.expire_time.set_default();
1500        }
1501        self.expire_time.as_mut().unwrap()
1502    }
1503
1504    // Take field
1505    pub fn take_expire_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1506        self.expire_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1507    }
1508
1509    // .google.spanner.admin.database.v1.CopyBackupEncryptionConfig encryption_config = 5;
1510
1511
1512    pub fn get_encryption_config(&self) -> &CopyBackupEncryptionConfig {
1513        self.encryption_config.as_ref().unwrap_or_else(|| <CopyBackupEncryptionConfig as ::protobuf::Message>::default_instance())
1514    }
1515    pub fn clear_encryption_config(&mut self) {
1516        self.encryption_config.clear();
1517    }
1518
1519    pub fn has_encryption_config(&self) -> bool {
1520        self.encryption_config.is_some()
1521    }
1522
1523    // Param is passed by value, moved
1524    pub fn set_encryption_config(&mut self, v: CopyBackupEncryptionConfig) {
1525        self.encryption_config = ::protobuf::SingularPtrField::some(v);
1526    }
1527
1528    // Mutable pointer to the field.
1529    // If field is not initialized, it is initialized with default value first.
1530    pub fn mut_encryption_config(&mut self) -> &mut CopyBackupEncryptionConfig {
1531        if self.encryption_config.is_none() {
1532            self.encryption_config.set_default();
1533        }
1534        self.encryption_config.as_mut().unwrap()
1535    }
1536
1537    // Take field
1538    pub fn take_encryption_config(&mut self) -> CopyBackupEncryptionConfig {
1539        self.encryption_config.take().unwrap_or_else(|| CopyBackupEncryptionConfig::new())
1540    }
1541}
1542
1543impl ::protobuf::Message for CopyBackupRequest {
1544    fn is_initialized(&self) -> bool {
1545        for v in &self.expire_time {
1546            if !v.is_initialized() {
1547                return false;
1548            }
1549        };
1550        for v in &self.encryption_config {
1551            if !v.is_initialized() {
1552                return false;
1553            }
1554        };
1555        true
1556    }
1557
1558    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1559        while !is.eof()? {
1560            let (field_number, wire_type) = is.read_tag_unpack()?;
1561            match field_number {
1562                1 => {
1563                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1564                },
1565                2 => {
1566                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.backup_id)?;
1567                },
1568                3 => {
1569                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.source_backup)?;
1570                },
1571                4 => {
1572                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.expire_time)?;
1573                },
1574                5 => {
1575                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_config)?;
1576                },
1577                _ => {
1578                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1579                },
1580            };
1581        }
1582        ::std::result::Result::Ok(())
1583    }
1584
1585    // Compute sizes of nested messages
1586    #[allow(unused_variables)]
1587    fn compute_size(&self) -> u32 {
1588        let mut my_size = 0;
1589        if !self.parent.is_empty() {
1590            my_size += ::protobuf::rt::string_size(1, &self.parent);
1591        }
1592        if !self.backup_id.is_empty() {
1593            my_size += ::protobuf::rt::string_size(2, &self.backup_id);
1594        }
1595        if !self.source_backup.is_empty() {
1596            my_size += ::protobuf::rt::string_size(3, &self.source_backup);
1597        }
1598        if let Some(ref v) = self.expire_time.as_ref() {
1599            let len = v.compute_size();
1600            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1601        }
1602        if let Some(ref v) = self.encryption_config.as_ref() {
1603            let len = v.compute_size();
1604            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1605        }
1606        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1607        self.cached_size.set(my_size);
1608        my_size
1609    }
1610
1611    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1612        if !self.parent.is_empty() {
1613            os.write_string(1, &self.parent)?;
1614        }
1615        if !self.backup_id.is_empty() {
1616            os.write_string(2, &self.backup_id)?;
1617        }
1618        if !self.source_backup.is_empty() {
1619            os.write_string(3, &self.source_backup)?;
1620        }
1621        if let Some(ref v) = self.expire_time.as_ref() {
1622            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1623            os.write_raw_varint32(v.get_cached_size())?;
1624            v.write_to_with_cached_sizes(os)?;
1625        }
1626        if let Some(ref v) = self.encryption_config.as_ref() {
1627            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1628            os.write_raw_varint32(v.get_cached_size())?;
1629            v.write_to_with_cached_sizes(os)?;
1630        }
1631        os.write_unknown_fields(self.get_unknown_fields())?;
1632        ::std::result::Result::Ok(())
1633    }
1634
1635    fn get_cached_size(&self) -> u32 {
1636        self.cached_size.get()
1637    }
1638
1639    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1640        &self.unknown_fields
1641    }
1642
1643    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1644        &mut self.unknown_fields
1645    }
1646
1647    fn as_any(&self) -> &dyn (::std::any::Any) {
1648        self as &dyn (::std::any::Any)
1649    }
1650    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1651        self as &mut dyn (::std::any::Any)
1652    }
1653    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1654        self
1655    }
1656
1657    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1658        Self::descriptor_static()
1659    }
1660
1661    fn new() -> CopyBackupRequest {
1662        CopyBackupRequest::new()
1663    }
1664
1665    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1666        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1667        descriptor.get(|| {
1668            let mut fields = ::std::vec::Vec::new();
1669            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1670                "parent",
1671                |m: &CopyBackupRequest| { &m.parent },
1672                |m: &mut CopyBackupRequest| { &mut m.parent },
1673            ));
1674            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1675                "backup_id",
1676                |m: &CopyBackupRequest| { &m.backup_id },
1677                |m: &mut CopyBackupRequest| { &mut m.backup_id },
1678            ));
1679            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1680                "source_backup",
1681                |m: &CopyBackupRequest| { &m.source_backup },
1682                |m: &mut CopyBackupRequest| { &mut m.source_backup },
1683            ));
1684            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
1685                "expire_time",
1686                |m: &CopyBackupRequest| { &m.expire_time },
1687                |m: &mut CopyBackupRequest| { &mut m.expire_time },
1688            ));
1689            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CopyBackupEncryptionConfig>>(
1690                "encryption_config",
1691                |m: &CopyBackupRequest| { &m.encryption_config },
1692                |m: &mut CopyBackupRequest| { &mut m.encryption_config },
1693            ));
1694            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CopyBackupRequest>(
1695                "CopyBackupRequest",
1696                fields,
1697                file_descriptor_proto()
1698            )
1699        })
1700    }
1701
1702    fn default_instance() -> &'static CopyBackupRequest {
1703        static instance: ::protobuf::rt::LazyV2<CopyBackupRequest> = ::protobuf::rt::LazyV2::INIT;
1704        instance.get(CopyBackupRequest::new)
1705    }
1706}
1707
1708impl ::protobuf::Clear for CopyBackupRequest {
1709    fn clear(&mut self) {
1710        self.parent.clear();
1711        self.backup_id.clear();
1712        self.source_backup.clear();
1713        self.expire_time.clear();
1714        self.encryption_config.clear();
1715        self.unknown_fields.clear();
1716    }
1717}
1718
1719impl ::std::fmt::Debug for CopyBackupRequest {
1720    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1721        ::protobuf::text_format::fmt(self, f)
1722    }
1723}
1724
1725impl ::protobuf::reflect::ProtobufValue for CopyBackupRequest {
1726    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1727        ::protobuf::reflect::ReflectValueRef::Message(self)
1728    }
1729}
1730
1731#[derive(PartialEq,Clone,Default)]
1732pub struct CopyBackupMetadata {
1733    // message fields
1734    pub name: ::std::string::String,
1735    pub source_backup: ::std::string::String,
1736    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
1737    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1738    // special fields
1739    pub unknown_fields: ::protobuf::UnknownFields,
1740    pub cached_size: ::protobuf::CachedSize,
1741}
1742
1743impl<'a> ::std::default::Default for &'a CopyBackupMetadata {
1744    fn default() -> &'a CopyBackupMetadata {
1745        <CopyBackupMetadata as ::protobuf::Message>::default_instance()
1746    }
1747}
1748
1749impl CopyBackupMetadata {
1750    pub fn new() -> CopyBackupMetadata {
1751        ::std::default::Default::default()
1752    }
1753
1754    // string name = 1;
1755
1756
1757    pub fn get_name(&self) -> &str {
1758        &self.name
1759    }
1760    pub fn clear_name(&mut self) {
1761        self.name.clear();
1762    }
1763
1764    // Param is passed by value, moved
1765    pub fn set_name(&mut self, v: ::std::string::String) {
1766        self.name = v;
1767    }
1768
1769    // Mutable pointer to the field.
1770    // If field is not initialized, it is initialized with default value first.
1771    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1772        &mut self.name
1773    }
1774
1775    // Take field
1776    pub fn take_name(&mut self) -> ::std::string::String {
1777        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1778    }
1779
1780    // string source_backup = 2;
1781
1782
1783    pub fn get_source_backup(&self) -> &str {
1784        &self.source_backup
1785    }
1786    pub fn clear_source_backup(&mut self) {
1787        self.source_backup.clear();
1788    }
1789
1790    // Param is passed by value, moved
1791    pub fn set_source_backup(&mut self, v: ::std::string::String) {
1792        self.source_backup = v;
1793    }
1794
1795    // Mutable pointer to the field.
1796    // If field is not initialized, it is initialized with default value first.
1797    pub fn mut_source_backup(&mut self) -> &mut ::std::string::String {
1798        &mut self.source_backup
1799    }
1800
1801    // Take field
1802    pub fn take_source_backup(&mut self) -> ::std::string::String {
1803        ::std::mem::replace(&mut self.source_backup, ::std::string::String::new())
1804    }
1805
1806    // .google.spanner.admin.database.v1.OperationProgress progress = 3;
1807
1808
1809    pub fn get_progress(&self) -> &super::common::OperationProgress {
1810        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
1811    }
1812    pub fn clear_progress(&mut self) {
1813        self.progress.clear();
1814    }
1815
1816    pub fn has_progress(&self) -> bool {
1817        self.progress.is_some()
1818    }
1819
1820    // Param is passed by value, moved
1821    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
1822        self.progress = ::protobuf::SingularPtrField::some(v);
1823    }
1824
1825    // Mutable pointer to the field.
1826    // If field is not initialized, it is initialized with default value first.
1827    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
1828        if self.progress.is_none() {
1829            self.progress.set_default();
1830        }
1831        self.progress.as_mut().unwrap()
1832    }
1833
1834    // Take field
1835    pub fn take_progress(&mut self) -> super::common::OperationProgress {
1836        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
1837    }
1838
1839    // .google.protobuf.Timestamp cancel_time = 4;
1840
1841
1842    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
1843        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1844    }
1845    pub fn clear_cancel_time(&mut self) {
1846        self.cancel_time.clear();
1847    }
1848
1849    pub fn has_cancel_time(&self) -> bool {
1850        self.cancel_time.is_some()
1851    }
1852
1853    // Param is passed by value, moved
1854    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1855        self.cancel_time = ::protobuf::SingularPtrField::some(v);
1856    }
1857
1858    // Mutable pointer to the field.
1859    // If field is not initialized, it is initialized with default value first.
1860    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1861        if self.cancel_time.is_none() {
1862            self.cancel_time.set_default();
1863        }
1864        self.cancel_time.as_mut().unwrap()
1865    }
1866
1867    // Take field
1868    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1869        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1870    }
1871}
1872
1873impl ::protobuf::Message for CopyBackupMetadata {
1874    fn is_initialized(&self) -> bool {
1875        for v in &self.progress {
1876            if !v.is_initialized() {
1877                return false;
1878            }
1879        };
1880        for v in &self.cancel_time {
1881            if !v.is_initialized() {
1882                return false;
1883            }
1884        };
1885        true
1886    }
1887
1888    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1889        while !is.eof()? {
1890            let (field_number, wire_type) = is.read_tag_unpack()?;
1891            match field_number {
1892                1 => {
1893                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1894                },
1895                2 => {
1896                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.source_backup)?;
1897                },
1898                3 => {
1899                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
1900                },
1901                4 => {
1902                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
1903                },
1904                _ => {
1905                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1906                },
1907            };
1908        }
1909        ::std::result::Result::Ok(())
1910    }
1911
1912    // Compute sizes of nested messages
1913    #[allow(unused_variables)]
1914    fn compute_size(&self) -> u32 {
1915        let mut my_size = 0;
1916        if !self.name.is_empty() {
1917            my_size += ::protobuf::rt::string_size(1, &self.name);
1918        }
1919        if !self.source_backup.is_empty() {
1920            my_size += ::protobuf::rt::string_size(2, &self.source_backup);
1921        }
1922        if let Some(ref v) = self.progress.as_ref() {
1923            let len = v.compute_size();
1924            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1925        }
1926        if let Some(ref v) = self.cancel_time.as_ref() {
1927            let len = v.compute_size();
1928            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1929        }
1930        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1931        self.cached_size.set(my_size);
1932        my_size
1933    }
1934
1935    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1936        if !self.name.is_empty() {
1937            os.write_string(1, &self.name)?;
1938        }
1939        if !self.source_backup.is_empty() {
1940            os.write_string(2, &self.source_backup)?;
1941        }
1942        if let Some(ref v) = self.progress.as_ref() {
1943            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1944            os.write_raw_varint32(v.get_cached_size())?;
1945            v.write_to_with_cached_sizes(os)?;
1946        }
1947        if let Some(ref v) = self.cancel_time.as_ref() {
1948            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1949            os.write_raw_varint32(v.get_cached_size())?;
1950            v.write_to_with_cached_sizes(os)?;
1951        }
1952        os.write_unknown_fields(self.get_unknown_fields())?;
1953        ::std::result::Result::Ok(())
1954    }
1955
1956    fn get_cached_size(&self) -> u32 {
1957        self.cached_size.get()
1958    }
1959
1960    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1961        &self.unknown_fields
1962    }
1963
1964    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1965        &mut self.unknown_fields
1966    }
1967
1968    fn as_any(&self) -> &dyn (::std::any::Any) {
1969        self as &dyn (::std::any::Any)
1970    }
1971    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1972        self as &mut dyn (::std::any::Any)
1973    }
1974    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1975        self
1976    }
1977
1978    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1979        Self::descriptor_static()
1980    }
1981
1982    fn new() -> CopyBackupMetadata {
1983        CopyBackupMetadata::new()
1984    }
1985
1986    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1987        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1988        descriptor.get(|| {
1989            let mut fields = ::std::vec::Vec::new();
1990            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1991                "name",
1992                |m: &CopyBackupMetadata| { &m.name },
1993                |m: &mut CopyBackupMetadata| { &mut m.name },
1994            ));
1995            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1996                "source_backup",
1997                |m: &CopyBackupMetadata| { &m.source_backup },
1998                |m: &mut CopyBackupMetadata| { &mut m.source_backup },
1999            ));
2000            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
2001                "progress",
2002                |m: &CopyBackupMetadata| { &m.progress },
2003                |m: &mut CopyBackupMetadata| { &mut m.progress },
2004            ));
2005            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
2006                "cancel_time",
2007                |m: &CopyBackupMetadata| { &m.cancel_time },
2008                |m: &mut CopyBackupMetadata| { &mut m.cancel_time },
2009            ));
2010            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CopyBackupMetadata>(
2011                "CopyBackupMetadata",
2012                fields,
2013                file_descriptor_proto()
2014            )
2015        })
2016    }
2017
2018    fn default_instance() -> &'static CopyBackupMetadata {
2019        static instance: ::protobuf::rt::LazyV2<CopyBackupMetadata> = ::protobuf::rt::LazyV2::INIT;
2020        instance.get(CopyBackupMetadata::new)
2021    }
2022}
2023
2024impl ::protobuf::Clear for CopyBackupMetadata {
2025    fn clear(&mut self) {
2026        self.name.clear();
2027        self.source_backup.clear();
2028        self.progress.clear();
2029        self.cancel_time.clear();
2030        self.unknown_fields.clear();
2031    }
2032}
2033
2034impl ::std::fmt::Debug for CopyBackupMetadata {
2035    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2036        ::protobuf::text_format::fmt(self, f)
2037    }
2038}
2039
2040impl ::protobuf::reflect::ProtobufValue for CopyBackupMetadata {
2041    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2042        ::protobuf::reflect::ReflectValueRef::Message(self)
2043    }
2044}
2045
2046#[derive(PartialEq,Clone,Default)]
2047pub struct UpdateBackupRequest {
2048    // message fields
2049    pub backup: ::protobuf::SingularPtrField<Backup>,
2050    pub update_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
2051    // special fields
2052    pub unknown_fields: ::protobuf::UnknownFields,
2053    pub cached_size: ::protobuf::CachedSize,
2054}
2055
2056impl<'a> ::std::default::Default for &'a UpdateBackupRequest {
2057    fn default() -> &'a UpdateBackupRequest {
2058        <UpdateBackupRequest as ::protobuf::Message>::default_instance()
2059    }
2060}
2061
2062impl UpdateBackupRequest {
2063    pub fn new() -> UpdateBackupRequest {
2064        ::std::default::Default::default()
2065    }
2066
2067    // .google.spanner.admin.database.v1.Backup backup = 1;
2068
2069
2070    pub fn get_backup(&self) -> &Backup {
2071        self.backup.as_ref().unwrap_or_else(|| <Backup as ::protobuf::Message>::default_instance())
2072    }
2073    pub fn clear_backup(&mut self) {
2074        self.backup.clear();
2075    }
2076
2077    pub fn has_backup(&self) -> bool {
2078        self.backup.is_some()
2079    }
2080
2081    // Param is passed by value, moved
2082    pub fn set_backup(&mut self, v: Backup) {
2083        self.backup = ::protobuf::SingularPtrField::some(v);
2084    }
2085
2086    // Mutable pointer to the field.
2087    // If field is not initialized, it is initialized with default value first.
2088    pub fn mut_backup(&mut self) -> &mut Backup {
2089        if self.backup.is_none() {
2090            self.backup.set_default();
2091        }
2092        self.backup.as_mut().unwrap()
2093    }
2094
2095    // Take field
2096    pub fn take_backup(&mut self) -> Backup {
2097        self.backup.take().unwrap_or_else(|| Backup::new())
2098    }
2099
2100    // .google.protobuf.FieldMask update_mask = 2;
2101
2102
2103    pub fn get_update_mask(&self) -> &::protobuf::well_known_types::FieldMask {
2104        self.update_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
2105    }
2106    pub fn clear_update_mask(&mut self) {
2107        self.update_mask.clear();
2108    }
2109
2110    pub fn has_update_mask(&self) -> bool {
2111        self.update_mask.is_some()
2112    }
2113
2114    // Param is passed by value, moved
2115    pub fn set_update_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
2116        self.update_mask = ::protobuf::SingularPtrField::some(v);
2117    }
2118
2119    // Mutable pointer to the field.
2120    // If field is not initialized, it is initialized with default value first.
2121    pub fn mut_update_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
2122        if self.update_mask.is_none() {
2123            self.update_mask.set_default();
2124        }
2125        self.update_mask.as_mut().unwrap()
2126    }
2127
2128    // Take field
2129    pub fn take_update_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
2130        self.update_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
2131    }
2132}
2133
2134impl ::protobuf::Message for UpdateBackupRequest {
2135    fn is_initialized(&self) -> bool {
2136        for v in &self.backup {
2137            if !v.is_initialized() {
2138                return false;
2139            }
2140        };
2141        for v in &self.update_mask {
2142            if !v.is_initialized() {
2143                return false;
2144            }
2145        };
2146        true
2147    }
2148
2149    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2150        while !is.eof()? {
2151            let (field_number, wire_type) = is.read_tag_unpack()?;
2152            match field_number {
2153                1 => {
2154                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.backup)?;
2155                },
2156                2 => {
2157                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_mask)?;
2158                },
2159                _ => {
2160                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2161                },
2162            };
2163        }
2164        ::std::result::Result::Ok(())
2165    }
2166
2167    // Compute sizes of nested messages
2168    #[allow(unused_variables)]
2169    fn compute_size(&self) -> u32 {
2170        let mut my_size = 0;
2171        if let Some(ref v) = self.backup.as_ref() {
2172            let len = v.compute_size();
2173            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2174        }
2175        if let Some(ref v) = self.update_mask.as_ref() {
2176            let len = v.compute_size();
2177            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2178        }
2179        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2180        self.cached_size.set(my_size);
2181        my_size
2182    }
2183
2184    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2185        if let Some(ref v) = self.backup.as_ref() {
2186            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2187            os.write_raw_varint32(v.get_cached_size())?;
2188            v.write_to_with_cached_sizes(os)?;
2189        }
2190        if let Some(ref v) = self.update_mask.as_ref() {
2191            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2192            os.write_raw_varint32(v.get_cached_size())?;
2193            v.write_to_with_cached_sizes(os)?;
2194        }
2195        os.write_unknown_fields(self.get_unknown_fields())?;
2196        ::std::result::Result::Ok(())
2197    }
2198
2199    fn get_cached_size(&self) -> u32 {
2200        self.cached_size.get()
2201    }
2202
2203    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2204        &self.unknown_fields
2205    }
2206
2207    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2208        &mut self.unknown_fields
2209    }
2210
2211    fn as_any(&self) -> &dyn (::std::any::Any) {
2212        self as &dyn (::std::any::Any)
2213    }
2214    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2215        self as &mut dyn (::std::any::Any)
2216    }
2217    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2218        self
2219    }
2220
2221    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2222        Self::descriptor_static()
2223    }
2224
2225    fn new() -> UpdateBackupRequest {
2226        UpdateBackupRequest::new()
2227    }
2228
2229    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2230        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2231        descriptor.get(|| {
2232            let mut fields = ::std::vec::Vec::new();
2233            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Backup>>(
2234                "backup",
2235                |m: &UpdateBackupRequest| { &m.backup },
2236                |m: &mut UpdateBackupRequest| { &mut m.backup },
2237            ));
2238            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
2239                "update_mask",
2240                |m: &UpdateBackupRequest| { &m.update_mask },
2241                |m: &mut UpdateBackupRequest| { &mut m.update_mask },
2242            ));
2243            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateBackupRequest>(
2244                "UpdateBackupRequest",
2245                fields,
2246                file_descriptor_proto()
2247            )
2248        })
2249    }
2250
2251    fn default_instance() -> &'static UpdateBackupRequest {
2252        static instance: ::protobuf::rt::LazyV2<UpdateBackupRequest> = ::protobuf::rt::LazyV2::INIT;
2253        instance.get(UpdateBackupRequest::new)
2254    }
2255}
2256
2257impl ::protobuf::Clear for UpdateBackupRequest {
2258    fn clear(&mut self) {
2259        self.backup.clear();
2260        self.update_mask.clear();
2261        self.unknown_fields.clear();
2262    }
2263}
2264
2265impl ::std::fmt::Debug for UpdateBackupRequest {
2266    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2267        ::protobuf::text_format::fmt(self, f)
2268    }
2269}
2270
2271impl ::protobuf::reflect::ProtobufValue for UpdateBackupRequest {
2272    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2273        ::protobuf::reflect::ReflectValueRef::Message(self)
2274    }
2275}
2276
2277#[derive(PartialEq,Clone,Default)]
2278pub struct GetBackupRequest {
2279    // message fields
2280    pub name: ::std::string::String,
2281    // special fields
2282    pub unknown_fields: ::protobuf::UnknownFields,
2283    pub cached_size: ::protobuf::CachedSize,
2284}
2285
2286impl<'a> ::std::default::Default for &'a GetBackupRequest {
2287    fn default() -> &'a GetBackupRequest {
2288        <GetBackupRequest as ::protobuf::Message>::default_instance()
2289    }
2290}
2291
2292impl GetBackupRequest {
2293    pub fn new() -> GetBackupRequest {
2294        ::std::default::Default::default()
2295    }
2296
2297    // string name = 1;
2298
2299
2300    pub fn get_name(&self) -> &str {
2301        &self.name
2302    }
2303    pub fn clear_name(&mut self) {
2304        self.name.clear();
2305    }
2306
2307    // Param is passed by value, moved
2308    pub fn set_name(&mut self, v: ::std::string::String) {
2309        self.name = v;
2310    }
2311
2312    // Mutable pointer to the field.
2313    // If field is not initialized, it is initialized with default value first.
2314    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2315        &mut self.name
2316    }
2317
2318    // Take field
2319    pub fn take_name(&mut self) -> ::std::string::String {
2320        ::std::mem::replace(&mut self.name, ::std::string::String::new())
2321    }
2322}
2323
2324impl ::protobuf::Message for GetBackupRequest {
2325    fn is_initialized(&self) -> bool {
2326        true
2327    }
2328
2329    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2330        while !is.eof()? {
2331            let (field_number, wire_type) = is.read_tag_unpack()?;
2332            match field_number {
2333                1 => {
2334                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2335                },
2336                _ => {
2337                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2338                },
2339            };
2340        }
2341        ::std::result::Result::Ok(())
2342    }
2343
2344    // Compute sizes of nested messages
2345    #[allow(unused_variables)]
2346    fn compute_size(&self) -> u32 {
2347        let mut my_size = 0;
2348        if !self.name.is_empty() {
2349            my_size += ::protobuf::rt::string_size(1, &self.name);
2350        }
2351        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2352        self.cached_size.set(my_size);
2353        my_size
2354    }
2355
2356    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2357        if !self.name.is_empty() {
2358            os.write_string(1, &self.name)?;
2359        }
2360        os.write_unknown_fields(self.get_unknown_fields())?;
2361        ::std::result::Result::Ok(())
2362    }
2363
2364    fn get_cached_size(&self) -> u32 {
2365        self.cached_size.get()
2366    }
2367
2368    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2369        &self.unknown_fields
2370    }
2371
2372    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2373        &mut self.unknown_fields
2374    }
2375
2376    fn as_any(&self) -> &dyn (::std::any::Any) {
2377        self as &dyn (::std::any::Any)
2378    }
2379    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2380        self as &mut dyn (::std::any::Any)
2381    }
2382    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2383        self
2384    }
2385
2386    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2387        Self::descriptor_static()
2388    }
2389
2390    fn new() -> GetBackupRequest {
2391        GetBackupRequest::new()
2392    }
2393
2394    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2395        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2396        descriptor.get(|| {
2397            let mut fields = ::std::vec::Vec::new();
2398            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2399                "name",
2400                |m: &GetBackupRequest| { &m.name },
2401                |m: &mut GetBackupRequest| { &mut m.name },
2402            ));
2403            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetBackupRequest>(
2404                "GetBackupRequest",
2405                fields,
2406                file_descriptor_proto()
2407            )
2408        })
2409    }
2410
2411    fn default_instance() -> &'static GetBackupRequest {
2412        static instance: ::protobuf::rt::LazyV2<GetBackupRequest> = ::protobuf::rt::LazyV2::INIT;
2413        instance.get(GetBackupRequest::new)
2414    }
2415}
2416
2417impl ::protobuf::Clear for GetBackupRequest {
2418    fn clear(&mut self) {
2419        self.name.clear();
2420        self.unknown_fields.clear();
2421    }
2422}
2423
2424impl ::std::fmt::Debug for GetBackupRequest {
2425    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2426        ::protobuf::text_format::fmt(self, f)
2427    }
2428}
2429
2430impl ::protobuf::reflect::ProtobufValue for GetBackupRequest {
2431    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2432        ::protobuf::reflect::ReflectValueRef::Message(self)
2433    }
2434}
2435
2436#[derive(PartialEq,Clone,Default)]
2437pub struct DeleteBackupRequest {
2438    // message fields
2439    pub name: ::std::string::String,
2440    // special fields
2441    pub unknown_fields: ::protobuf::UnknownFields,
2442    pub cached_size: ::protobuf::CachedSize,
2443}
2444
2445impl<'a> ::std::default::Default for &'a DeleteBackupRequest {
2446    fn default() -> &'a DeleteBackupRequest {
2447        <DeleteBackupRequest as ::protobuf::Message>::default_instance()
2448    }
2449}
2450
2451impl DeleteBackupRequest {
2452    pub fn new() -> DeleteBackupRequest {
2453        ::std::default::Default::default()
2454    }
2455
2456    // string name = 1;
2457
2458
2459    pub fn get_name(&self) -> &str {
2460        &self.name
2461    }
2462    pub fn clear_name(&mut self) {
2463        self.name.clear();
2464    }
2465
2466    // Param is passed by value, moved
2467    pub fn set_name(&mut self, v: ::std::string::String) {
2468        self.name = v;
2469    }
2470
2471    // Mutable pointer to the field.
2472    // If field is not initialized, it is initialized with default value first.
2473    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2474        &mut self.name
2475    }
2476
2477    // Take field
2478    pub fn take_name(&mut self) -> ::std::string::String {
2479        ::std::mem::replace(&mut self.name, ::std::string::String::new())
2480    }
2481}
2482
2483impl ::protobuf::Message for DeleteBackupRequest {
2484    fn is_initialized(&self) -> bool {
2485        true
2486    }
2487
2488    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2489        while !is.eof()? {
2490            let (field_number, wire_type) = is.read_tag_unpack()?;
2491            match field_number {
2492                1 => {
2493                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2494                },
2495                _ => {
2496                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2497                },
2498            };
2499        }
2500        ::std::result::Result::Ok(())
2501    }
2502
2503    // Compute sizes of nested messages
2504    #[allow(unused_variables)]
2505    fn compute_size(&self) -> u32 {
2506        let mut my_size = 0;
2507        if !self.name.is_empty() {
2508            my_size += ::protobuf::rt::string_size(1, &self.name);
2509        }
2510        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2511        self.cached_size.set(my_size);
2512        my_size
2513    }
2514
2515    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2516        if !self.name.is_empty() {
2517            os.write_string(1, &self.name)?;
2518        }
2519        os.write_unknown_fields(self.get_unknown_fields())?;
2520        ::std::result::Result::Ok(())
2521    }
2522
2523    fn get_cached_size(&self) -> u32 {
2524        self.cached_size.get()
2525    }
2526
2527    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2528        &self.unknown_fields
2529    }
2530
2531    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2532        &mut self.unknown_fields
2533    }
2534
2535    fn as_any(&self) -> &dyn (::std::any::Any) {
2536        self as &dyn (::std::any::Any)
2537    }
2538    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2539        self as &mut dyn (::std::any::Any)
2540    }
2541    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2542        self
2543    }
2544
2545    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2546        Self::descriptor_static()
2547    }
2548
2549    fn new() -> DeleteBackupRequest {
2550        DeleteBackupRequest::new()
2551    }
2552
2553    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2554        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2555        descriptor.get(|| {
2556            let mut fields = ::std::vec::Vec::new();
2557            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2558                "name",
2559                |m: &DeleteBackupRequest| { &m.name },
2560                |m: &mut DeleteBackupRequest| { &mut m.name },
2561            ));
2562            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteBackupRequest>(
2563                "DeleteBackupRequest",
2564                fields,
2565                file_descriptor_proto()
2566            )
2567        })
2568    }
2569
2570    fn default_instance() -> &'static DeleteBackupRequest {
2571        static instance: ::protobuf::rt::LazyV2<DeleteBackupRequest> = ::protobuf::rt::LazyV2::INIT;
2572        instance.get(DeleteBackupRequest::new)
2573    }
2574}
2575
2576impl ::protobuf::Clear for DeleteBackupRequest {
2577    fn clear(&mut self) {
2578        self.name.clear();
2579        self.unknown_fields.clear();
2580    }
2581}
2582
2583impl ::std::fmt::Debug for DeleteBackupRequest {
2584    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2585        ::protobuf::text_format::fmt(self, f)
2586    }
2587}
2588
2589impl ::protobuf::reflect::ProtobufValue for DeleteBackupRequest {
2590    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2591        ::protobuf::reflect::ReflectValueRef::Message(self)
2592    }
2593}
2594
2595#[derive(PartialEq,Clone,Default)]
2596pub struct ListBackupsRequest {
2597    // message fields
2598    pub parent: ::std::string::String,
2599    pub filter: ::std::string::String,
2600    pub page_size: i32,
2601    pub page_token: ::std::string::String,
2602    // special fields
2603    pub unknown_fields: ::protobuf::UnknownFields,
2604    pub cached_size: ::protobuf::CachedSize,
2605}
2606
2607impl<'a> ::std::default::Default for &'a ListBackupsRequest {
2608    fn default() -> &'a ListBackupsRequest {
2609        <ListBackupsRequest as ::protobuf::Message>::default_instance()
2610    }
2611}
2612
2613impl ListBackupsRequest {
2614    pub fn new() -> ListBackupsRequest {
2615        ::std::default::Default::default()
2616    }
2617
2618    // string parent = 1;
2619
2620
2621    pub fn get_parent(&self) -> &str {
2622        &self.parent
2623    }
2624    pub fn clear_parent(&mut self) {
2625        self.parent.clear();
2626    }
2627
2628    // Param is passed by value, moved
2629    pub fn set_parent(&mut self, v: ::std::string::String) {
2630        self.parent = v;
2631    }
2632
2633    // Mutable pointer to the field.
2634    // If field is not initialized, it is initialized with default value first.
2635    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
2636        &mut self.parent
2637    }
2638
2639    // Take field
2640    pub fn take_parent(&mut self) -> ::std::string::String {
2641        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
2642    }
2643
2644    // string filter = 2;
2645
2646
2647    pub fn get_filter(&self) -> &str {
2648        &self.filter
2649    }
2650    pub fn clear_filter(&mut self) {
2651        self.filter.clear();
2652    }
2653
2654    // Param is passed by value, moved
2655    pub fn set_filter(&mut self, v: ::std::string::String) {
2656        self.filter = v;
2657    }
2658
2659    // Mutable pointer to the field.
2660    // If field is not initialized, it is initialized with default value first.
2661    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
2662        &mut self.filter
2663    }
2664
2665    // Take field
2666    pub fn take_filter(&mut self) -> ::std::string::String {
2667        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
2668    }
2669
2670    // int32 page_size = 3;
2671
2672
2673    pub fn get_page_size(&self) -> i32 {
2674        self.page_size
2675    }
2676    pub fn clear_page_size(&mut self) {
2677        self.page_size = 0;
2678    }
2679
2680    // Param is passed by value, moved
2681    pub fn set_page_size(&mut self, v: i32) {
2682        self.page_size = v;
2683    }
2684
2685    // string page_token = 4;
2686
2687
2688    pub fn get_page_token(&self) -> &str {
2689        &self.page_token
2690    }
2691    pub fn clear_page_token(&mut self) {
2692        self.page_token.clear();
2693    }
2694
2695    // Param is passed by value, moved
2696    pub fn set_page_token(&mut self, v: ::std::string::String) {
2697        self.page_token = v;
2698    }
2699
2700    // Mutable pointer to the field.
2701    // If field is not initialized, it is initialized with default value first.
2702    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
2703        &mut self.page_token
2704    }
2705
2706    // Take field
2707    pub fn take_page_token(&mut self) -> ::std::string::String {
2708        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
2709    }
2710}
2711
2712impl ::protobuf::Message for ListBackupsRequest {
2713    fn is_initialized(&self) -> bool {
2714        true
2715    }
2716
2717    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2718        while !is.eof()? {
2719            let (field_number, wire_type) = is.read_tag_unpack()?;
2720            match field_number {
2721                1 => {
2722                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
2723                },
2724                2 => {
2725                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
2726                },
2727                3 => {
2728                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2729                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2730                    }
2731                    let tmp = is.read_int32()?;
2732                    self.page_size = tmp;
2733                },
2734                4 => {
2735                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
2736                },
2737                _ => {
2738                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2739                },
2740            };
2741        }
2742        ::std::result::Result::Ok(())
2743    }
2744
2745    // Compute sizes of nested messages
2746    #[allow(unused_variables)]
2747    fn compute_size(&self) -> u32 {
2748        let mut my_size = 0;
2749        if !self.parent.is_empty() {
2750            my_size += ::protobuf::rt::string_size(1, &self.parent);
2751        }
2752        if !self.filter.is_empty() {
2753            my_size += ::protobuf::rt::string_size(2, &self.filter);
2754        }
2755        if self.page_size != 0 {
2756            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
2757        }
2758        if !self.page_token.is_empty() {
2759            my_size += ::protobuf::rt::string_size(4, &self.page_token);
2760        }
2761        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2762        self.cached_size.set(my_size);
2763        my_size
2764    }
2765
2766    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2767        if !self.parent.is_empty() {
2768            os.write_string(1, &self.parent)?;
2769        }
2770        if !self.filter.is_empty() {
2771            os.write_string(2, &self.filter)?;
2772        }
2773        if self.page_size != 0 {
2774            os.write_int32(3, self.page_size)?;
2775        }
2776        if !self.page_token.is_empty() {
2777            os.write_string(4, &self.page_token)?;
2778        }
2779        os.write_unknown_fields(self.get_unknown_fields())?;
2780        ::std::result::Result::Ok(())
2781    }
2782
2783    fn get_cached_size(&self) -> u32 {
2784        self.cached_size.get()
2785    }
2786
2787    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2788        &self.unknown_fields
2789    }
2790
2791    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2792        &mut self.unknown_fields
2793    }
2794
2795    fn as_any(&self) -> &dyn (::std::any::Any) {
2796        self as &dyn (::std::any::Any)
2797    }
2798    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2799        self as &mut dyn (::std::any::Any)
2800    }
2801    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2802        self
2803    }
2804
2805    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2806        Self::descriptor_static()
2807    }
2808
2809    fn new() -> ListBackupsRequest {
2810        ListBackupsRequest::new()
2811    }
2812
2813    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2814        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2815        descriptor.get(|| {
2816            let mut fields = ::std::vec::Vec::new();
2817            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2818                "parent",
2819                |m: &ListBackupsRequest| { &m.parent },
2820                |m: &mut ListBackupsRequest| { &mut m.parent },
2821            ));
2822            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2823                "filter",
2824                |m: &ListBackupsRequest| { &m.filter },
2825                |m: &mut ListBackupsRequest| { &mut m.filter },
2826            ));
2827            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2828                "page_size",
2829                |m: &ListBackupsRequest| { &m.page_size },
2830                |m: &mut ListBackupsRequest| { &mut m.page_size },
2831            ));
2832            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2833                "page_token",
2834                |m: &ListBackupsRequest| { &m.page_token },
2835                |m: &mut ListBackupsRequest| { &mut m.page_token },
2836            ));
2837            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListBackupsRequest>(
2838                "ListBackupsRequest",
2839                fields,
2840                file_descriptor_proto()
2841            )
2842        })
2843    }
2844
2845    fn default_instance() -> &'static ListBackupsRequest {
2846        static instance: ::protobuf::rt::LazyV2<ListBackupsRequest> = ::protobuf::rt::LazyV2::INIT;
2847        instance.get(ListBackupsRequest::new)
2848    }
2849}
2850
2851impl ::protobuf::Clear for ListBackupsRequest {
2852    fn clear(&mut self) {
2853        self.parent.clear();
2854        self.filter.clear();
2855        self.page_size = 0;
2856        self.page_token.clear();
2857        self.unknown_fields.clear();
2858    }
2859}
2860
2861impl ::std::fmt::Debug for ListBackupsRequest {
2862    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2863        ::protobuf::text_format::fmt(self, f)
2864    }
2865}
2866
2867impl ::protobuf::reflect::ProtobufValue for ListBackupsRequest {
2868    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2869        ::protobuf::reflect::ReflectValueRef::Message(self)
2870    }
2871}
2872
2873#[derive(PartialEq,Clone,Default)]
2874pub struct ListBackupsResponse {
2875    // message fields
2876    pub backups: ::protobuf::RepeatedField<Backup>,
2877    pub next_page_token: ::std::string::String,
2878    // special fields
2879    pub unknown_fields: ::protobuf::UnknownFields,
2880    pub cached_size: ::protobuf::CachedSize,
2881}
2882
2883impl<'a> ::std::default::Default for &'a ListBackupsResponse {
2884    fn default() -> &'a ListBackupsResponse {
2885        <ListBackupsResponse as ::protobuf::Message>::default_instance()
2886    }
2887}
2888
2889impl ListBackupsResponse {
2890    pub fn new() -> ListBackupsResponse {
2891        ::std::default::Default::default()
2892    }
2893
2894    // repeated .google.spanner.admin.database.v1.Backup backups = 1;
2895
2896
2897    pub fn get_backups(&self) -> &[Backup] {
2898        &self.backups
2899    }
2900    pub fn clear_backups(&mut self) {
2901        self.backups.clear();
2902    }
2903
2904    // Param is passed by value, moved
2905    pub fn set_backups(&mut self, v: ::protobuf::RepeatedField<Backup>) {
2906        self.backups = v;
2907    }
2908
2909    // Mutable pointer to the field.
2910    pub fn mut_backups(&mut self) -> &mut ::protobuf::RepeatedField<Backup> {
2911        &mut self.backups
2912    }
2913
2914    // Take field
2915    pub fn take_backups(&mut self) -> ::protobuf::RepeatedField<Backup> {
2916        ::std::mem::replace(&mut self.backups, ::protobuf::RepeatedField::new())
2917    }
2918
2919    // string next_page_token = 2;
2920
2921
2922    pub fn get_next_page_token(&self) -> &str {
2923        &self.next_page_token
2924    }
2925    pub fn clear_next_page_token(&mut self) {
2926        self.next_page_token.clear();
2927    }
2928
2929    // Param is passed by value, moved
2930    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
2931        self.next_page_token = v;
2932    }
2933
2934    // Mutable pointer to the field.
2935    // If field is not initialized, it is initialized with default value first.
2936    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
2937        &mut self.next_page_token
2938    }
2939
2940    // Take field
2941    pub fn take_next_page_token(&mut self) -> ::std::string::String {
2942        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
2943    }
2944}
2945
2946impl ::protobuf::Message for ListBackupsResponse {
2947    fn is_initialized(&self) -> bool {
2948        for v in &self.backups {
2949            if !v.is_initialized() {
2950                return false;
2951            }
2952        };
2953        true
2954    }
2955
2956    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2957        while !is.eof()? {
2958            let (field_number, wire_type) = is.read_tag_unpack()?;
2959            match field_number {
2960                1 => {
2961                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.backups)?;
2962                },
2963                2 => {
2964                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
2965                },
2966                _ => {
2967                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2968                },
2969            };
2970        }
2971        ::std::result::Result::Ok(())
2972    }
2973
2974    // Compute sizes of nested messages
2975    #[allow(unused_variables)]
2976    fn compute_size(&self) -> u32 {
2977        let mut my_size = 0;
2978        for value in &self.backups {
2979            let len = value.compute_size();
2980            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2981        };
2982        if !self.next_page_token.is_empty() {
2983            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
2984        }
2985        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2986        self.cached_size.set(my_size);
2987        my_size
2988    }
2989
2990    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2991        for v in &self.backups {
2992            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2993            os.write_raw_varint32(v.get_cached_size())?;
2994            v.write_to_with_cached_sizes(os)?;
2995        };
2996        if !self.next_page_token.is_empty() {
2997            os.write_string(2, &self.next_page_token)?;
2998        }
2999        os.write_unknown_fields(self.get_unknown_fields())?;
3000        ::std::result::Result::Ok(())
3001    }
3002
3003    fn get_cached_size(&self) -> u32 {
3004        self.cached_size.get()
3005    }
3006
3007    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3008        &self.unknown_fields
3009    }
3010
3011    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3012        &mut self.unknown_fields
3013    }
3014
3015    fn as_any(&self) -> &dyn (::std::any::Any) {
3016        self as &dyn (::std::any::Any)
3017    }
3018    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3019        self as &mut dyn (::std::any::Any)
3020    }
3021    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3022        self
3023    }
3024
3025    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3026        Self::descriptor_static()
3027    }
3028
3029    fn new() -> ListBackupsResponse {
3030        ListBackupsResponse::new()
3031    }
3032
3033    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3034        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3035        descriptor.get(|| {
3036            let mut fields = ::std::vec::Vec::new();
3037            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Backup>>(
3038                "backups",
3039                |m: &ListBackupsResponse| { &m.backups },
3040                |m: &mut ListBackupsResponse| { &mut m.backups },
3041            ));
3042            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3043                "next_page_token",
3044                |m: &ListBackupsResponse| { &m.next_page_token },
3045                |m: &mut ListBackupsResponse| { &mut m.next_page_token },
3046            ));
3047            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListBackupsResponse>(
3048                "ListBackupsResponse",
3049                fields,
3050                file_descriptor_proto()
3051            )
3052        })
3053    }
3054
3055    fn default_instance() -> &'static ListBackupsResponse {
3056        static instance: ::protobuf::rt::LazyV2<ListBackupsResponse> = ::protobuf::rt::LazyV2::INIT;
3057        instance.get(ListBackupsResponse::new)
3058    }
3059}
3060
3061impl ::protobuf::Clear for ListBackupsResponse {
3062    fn clear(&mut self) {
3063        self.backups.clear();
3064        self.next_page_token.clear();
3065        self.unknown_fields.clear();
3066    }
3067}
3068
3069impl ::std::fmt::Debug for ListBackupsResponse {
3070    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3071        ::protobuf::text_format::fmt(self, f)
3072    }
3073}
3074
3075impl ::protobuf::reflect::ProtobufValue for ListBackupsResponse {
3076    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3077        ::protobuf::reflect::ReflectValueRef::Message(self)
3078    }
3079}
3080
3081#[derive(PartialEq,Clone,Default)]
3082pub struct ListBackupOperationsRequest {
3083    // message fields
3084    pub parent: ::std::string::String,
3085    pub filter: ::std::string::String,
3086    pub page_size: i32,
3087    pub page_token: ::std::string::String,
3088    // special fields
3089    pub unknown_fields: ::protobuf::UnknownFields,
3090    pub cached_size: ::protobuf::CachedSize,
3091}
3092
3093impl<'a> ::std::default::Default for &'a ListBackupOperationsRequest {
3094    fn default() -> &'a ListBackupOperationsRequest {
3095        <ListBackupOperationsRequest as ::protobuf::Message>::default_instance()
3096    }
3097}
3098
3099impl ListBackupOperationsRequest {
3100    pub fn new() -> ListBackupOperationsRequest {
3101        ::std::default::Default::default()
3102    }
3103
3104    // string parent = 1;
3105
3106
3107    pub fn get_parent(&self) -> &str {
3108        &self.parent
3109    }
3110    pub fn clear_parent(&mut self) {
3111        self.parent.clear();
3112    }
3113
3114    // Param is passed by value, moved
3115    pub fn set_parent(&mut self, v: ::std::string::String) {
3116        self.parent = v;
3117    }
3118
3119    // Mutable pointer to the field.
3120    // If field is not initialized, it is initialized with default value first.
3121    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
3122        &mut self.parent
3123    }
3124
3125    // Take field
3126    pub fn take_parent(&mut self) -> ::std::string::String {
3127        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
3128    }
3129
3130    // string filter = 2;
3131
3132
3133    pub fn get_filter(&self) -> &str {
3134        &self.filter
3135    }
3136    pub fn clear_filter(&mut self) {
3137        self.filter.clear();
3138    }
3139
3140    // Param is passed by value, moved
3141    pub fn set_filter(&mut self, v: ::std::string::String) {
3142        self.filter = v;
3143    }
3144
3145    // Mutable pointer to the field.
3146    // If field is not initialized, it is initialized with default value first.
3147    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
3148        &mut self.filter
3149    }
3150
3151    // Take field
3152    pub fn take_filter(&mut self) -> ::std::string::String {
3153        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
3154    }
3155
3156    // int32 page_size = 3;
3157
3158
3159    pub fn get_page_size(&self) -> i32 {
3160        self.page_size
3161    }
3162    pub fn clear_page_size(&mut self) {
3163        self.page_size = 0;
3164    }
3165
3166    // Param is passed by value, moved
3167    pub fn set_page_size(&mut self, v: i32) {
3168        self.page_size = v;
3169    }
3170
3171    // string page_token = 4;
3172
3173
3174    pub fn get_page_token(&self) -> &str {
3175        &self.page_token
3176    }
3177    pub fn clear_page_token(&mut self) {
3178        self.page_token.clear();
3179    }
3180
3181    // Param is passed by value, moved
3182    pub fn set_page_token(&mut self, v: ::std::string::String) {
3183        self.page_token = v;
3184    }
3185
3186    // Mutable pointer to the field.
3187    // If field is not initialized, it is initialized with default value first.
3188    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
3189        &mut self.page_token
3190    }
3191
3192    // Take field
3193    pub fn take_page_token(&mut self) -> ::std::string::String {
3194        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
3195    }
3196}
3197
3198impl ::protobuf::Message for ListBackupOperationsRequest {
3199    fn is_initialized(&self) -> bool {
3200        true
3201    }
3202
3203    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3204        while !is.eof()? {
3205            let (field_number, wire_type) = is.read_tag_unpack()?;
3206            match field_number {
3207                1 => {
3208                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
3209                },
3210                2 => {
3211                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
3212                },
3213                3 => {
3214                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3215                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3216                    }
3217                    let tmp = is.read_int32()?;
3218                    self.page_size = tmp;
3219                },
3220                4 => {
3221                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
3222                },
3223                _ => {
3224                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3225                },
3226            };
3227        }
3228        ::std::result::Result::Ok(())
3229    }
3230
3231    // Compute sizes of nested messages
3232    #[allow(unused_variables)]
3233    fn compute_size(&self) -> u32 {
3234        let mut my_size = 0;
3235        if !self.parent.is_empty() {
3236            my_size += ::protobuf::rt::string_size(1, &self.parent);
3237        }
3238        if !self.filter.is_empty() {
3239            my_size += ::protobuf::rt::string_size(2, &self.filter);
3240        }
3241        if self.page_size != 0 {
3242            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
3243        }
3244        if !self.page_token.is_empty() {
3245            my_size += ::protobuf::rt::string_size(4, &self.page_token);
3246        }
3247        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3248        self.cached_size.set(my_size);
3249        my_size
3250    }
3251
3252    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3253        if !self.parent.is_empty() {
3254            os.write_string(1, &self.parent)?;
3255        }
3256        if !self.filter.is_empty() {
3257            os.write_string(2, &self.filter)?;
3258        }
3259        if self.page_size != 0 {
3260            os.write_int32(3, self.page_size)?;
3261        }
3262        if !self.page_token.is_empty() {
3263            os.write_string(4, &self.page_token)?;
3264        }
3265        os.write_unknown_fields(self.get_unknown_fields())?;
3266        ::std::result::Result::Ok(())
3267    }
3268
3269    fn get_cached_size(&self) -> u32 {
3270        self.cached_size.get()
3271    }
3272
3273    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3274        &self.unknown_fields
3275    }
3276
3277    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3278        &mut self.unknown_fields
3279    }
3280
3281    fn as_any(&self) -> &dyn (::std::any::Any) {
3282        self as &dyn (::std::any::Any)
3283    }
3284    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3285        self as &mut dyn (::std::any::Any)
3286    }
3287    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3288        self
3289    }
3290
3291    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3292        Self::descriptor_static()
3293    }
3294
3295    fn new() -> ListBackupOperationsRequest {
3296        ListBackupOperationsRequest::new()
3297    }
3298
3299    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3300        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3301        descriptor.get(|| {
3302            let mut fields = ::std::vec::Vec::new();
3303            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3304                "parent",
3305                |m: &ListBackupOperationsRequest| { &m.parent },
3306                |m: &mut ListBackupOperationsRequest| { &mut m.parent },
3307            ));
3308            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3309                "filter",
3310                |m: &ListBackupOperationsRequest| { &m.filter },
3311                |m: &mut ListBackupOperationsRequest| { &mut m.filter },
3312            ));
3313            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3314                "page_size",
3315                |m: &ListBackupOperationsRequest| { &m.page_size },
3316                |m: &mut ListBackupOperationsRequest| { &mut m.page_size },
3317            ));
3318            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3319                "page_token",
3320                |m: &ListBackupOperationsRequest| { &m.page_token },
3321                |m: &mut ListBackupOperationsRequest| { &mut m.page_token },
3322            ));
3323            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListBackupOperationsRequest>(
3324                "ListBackupOperationsRequest",
3325                fields,
3326                file_descriptor_proto()
3327            )
3328        })
3329    }
3330
3331    fn default_instance() -> &'static ListBackupOperationsRequest {
3332        static instance: ::protobuf::rt::LazyV2<ListBackupOperationsRequest> = ::protobuf::rt::LazyV2::INIT;
3333        instance.get(ListBackupOperationsRequest::new)
3334    }
3335}
3336
3337impl ::protobuf::Clear for ListBackupOperationsRequest {
3338    fn clear(&mut self) {
3339        self.parent.clear();
3340        self.filter.clear();
3341        self.page_size = 0;
3342        self.page_token.clear();
3343        self.unknown_fields.clear();
3344    }
3345}
3346
3347impl ::std::fmt::Debug for ListBackupOperationsRequest {
3348    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3349        ::protobuf::text_format::fmt(self, f)
3350    }
3351}
3352
3353impl ::protobuf::reflect::ProtobufValue for ListBackupOperationsRequest {
3354    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3355        ::protobuf::reflect::ReflectValueRef::Message(self)
3356    }
3357}
3358
3359#[derive(PartialEq,Clone,Default)]
3360pub struct ListBackupOperationsResponse {
3361    // message fields
3362    pub operations: ::protobuf::RepeatedField<super::operations::Operation>,
3363    pub next_page_token: ::std::string::String,
3364    // special fields
3365    pub unknown_fields: ::protobuf::UnknownFields,
3366    pub cached_size: ::protobuf::CachedSize,
3367}
3368
3369impl<'a> ::std::default::Default for &'a ListBackupOperationsResponse {
3370    fn default() -> &'a ListBackupOperationsResponse {
3371        <ListBackupOperationsResponse as ::protobuf::Message>::default_instance()
3372    }
3373}
3374
3375impl ListBackupOperationsResponse {
3376    pub fn new() -> ListBackupOperationsResponse {
3377        ::std::default::Default::default()
3378    }
3379
3380    // repeated .google.longrunning.Operation operations = 1;
3381
3382
3383    pub fn get_operations(&self) -> &[super::operations::Operation] {
3384        &self.operations
3385    }
3386    pub fn clear_operations(&mut self) {
3387        self.operations.clear();
3388    }
3389
3390    // Param is passed by value, moved
3391    pub fn set_operations(&mut self, v: ::protobuf::RepeatedField<super::operations::Operation>) {
3392        self.operations = v;
3393    }
3394
3395    // Mutable pointer to the field.
3396    pub fn mut_operations(&mut self) -> &mut ::protobuf::RepeatedField<super::operations::Operation> {
3397        &mut self.operations
3398    }
3399
3400    // Take field
3401    pub fn take_operations(&mut self) -> ::protobuf::RepeatedField<super::operations::Operation> {
3402        ::std::mem::replace(&mut self.operations, ::protobuf::RepeatedField::new())
3403    }
3404
3405    // string next_page_token = 2;
3406
3407
3408    pub fn get_next_page_token(&self) -> &str {
3409        &self.next_page_token
3410    }
3411    pub fn clear_next_page_token(&mut self) {
3412        self.next_page_token.clear();
3413    }
3414
3415    // Param is passed by value, moved
3416    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
3417        self.next_page_token = v;
3418    }
3419
3420    // Mutable pointer to the field.
3421    // If field is not initialized, it is initialized with default value first.
3422    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
3423        &mut self.next_page_token
3424    }
3425
3426    // Take field
3427    pub fn take_next_page_token(&mut self) -> ::std::string::String {
3428        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
3429    }
3430}
3431
3432impl ::protobuf::Message for ListBackupOperationsResponse {
3433    fn is_initialized(&self) -> bool {
3434        for v in &self.operations {
3435            if !v.is_initialized() {
3436                return false;
3437            }
3438        };
3439        true
3440    }
3441
3442    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3443        while !is.eof()? {
3444            let (field_number, wire_type) = is.read_tag_unpack()?;
3445            match field_number {
3446                1 => {
3447                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.operations)?;
3448                },
3449                2 => {
3450                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
3451                },
3452                _ => {
3453                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3454                },
3455            };
3456        }
3457        ::std::result::Result::Ok(())
3458    }
3459
3460    // Compute sizes of nested messages
3461    #[allow(unused_variables)]
3462    fn compute_size(&self) -> u32 {
3463        let mut my_size = 0;
3464        for value in &self.operations {
3465            let len = value.compute_size();
3466            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3467        };
3468        if !self.next_page_token.is_empty() {
3469            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
3470        }
3471        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3472        self.cached_size.set(my_size);
3473        my_size
3474    }
3475
3476    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3477        for v in &self.operations {
3478            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3479            os.write_raw_varint32(v.get_cached_size())?;
3480            v.write_to_with_cached_sizes(os)?;
3481        };
3482        if !self.next_page_token.is_empty() {
3483            os.write_string(2, &self.next_page_token)?;
3484        }
3485        os.write_unknown_fields(self.get_unknown_fields())?;
3486        ::std::result::Result::Ok(())
3487    }
3488
3489    fn get_cached_size(&self) -> u32 {
3490        self.cached_size.get()
3491    }
3492
3493    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3494        &self.unknown_fields
3495    }
3496
3497    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3498        &mut self.unknown_fields
3499    }
3500
3501    fn as_any(&self) -> &dyn (::std::any::Any) {
3502        self as &dyn (::std::any::Any)
3503    }
3504    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3505        self as &mut dyn (::std::any::Any)
3506    }
3507    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3508        self
3509    }
3510
3511    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3512        Self::descriptor_static()
3513    }
3514
3515    fn new() -> ListBackupOperationsResponse {
3516        ListBackupOperationsResponse::new()
3517    }
3518
3519    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3520        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3521        descriptor.get(|| {
3522            let mut fields = ::std::vec::Vec::new();
3523            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::operations::Operation>>(
3524                "operations",
3525                |m: &ListBackupOperationsResponse| { &m.operations },
3526                |m: &mut ListBackupOperationsResponse| { &mut m.operations },
3527            ));
3528            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3529                "next_page_token",
3530                |m: &ListBackupOperationsResponse| { &m.next_page_token },
3531                |m: &mut ListBackupOperationsResponse| { &mut m.next_page_token },
3532            ));
3533            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListBackupOperationsResponse>(
3534                "ListBackupOperationsResponse",
3535                fields,
3536                file_descriptor_proto()
3537            )
3538        })
3539    }
3540
3541    fn default_instance() -> &'static ListBackupOperationsResponse {
3542        static instance: ::protobuf::rt::LazyV2<ListBackupOperationsResponse> = ::protobuf::rt::LazyV2::INIT;
3543        instance.get(ListBackupOperationsResponse::new)
3544    }
3545}
3546
3547impl ::protobuf::Clear for ListBackupOperationsResponse {
3548    fn clear(&mut self) {
3549        self.operations.clear();
3550        self.next_page_token.clear();
3551        self.unknown_fields.clear();
3552    }
3553}
3554
3555impl ::std::fmt::Debug for ListBackupOperationsResponse {
3556    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3557        ::protobuf::text_format::fmt(self, f)
3558    }
3559}
3560
3561impl ::protobuf::reflect::ProtobufValue for ListBackupOperationsResponse {
3562    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3563        ::protobuf::reflect::ReflectValueRef::Message(self)
3564    }
3565}
3566
3567#[derive(PartialEq,Clone,Default)]
3568pub struct BackupInfo {
3569    // message fields
3570    pub backup: ::std::string::String,
3571    pub version_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
3572    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
3573    pub source_database: ::std::string::String,
3574    // special fields
3575    pub unknown_fields: ::protobuf::UnknownFields,
3576    pub cached_size: ::protobuf::CachedSize,
3577}
3578
3579impl<'a> ::std::default::Default for &'a BackupInfo {
3580    fn default() -> &'a BackupInfo {
3581        <BackupInfo as ::protobuf::Message>::default_instance()
3582    }
3583}
3584
3585impl BackupInfo {
3586    pub fn new() -> BackupInfo {
3587        ::std::default::Default::default()
3588    }
3589
3590    // string backup = 1;
3591
3592
3593    pub fn get_backup(&self) -> &str {
3594        &self.backup
3595    }
3596    pub fn clear_backup(&mut self) {
3597        self.backup.clear();
3598    }
3599
3600    // Param is passed by value, moved
3601    pub fn set_backup(&mut self, v: ::std::string::String) {
3602        self.backup = v;
3603    }
3604
3605    // Mutable pointer to the field.
3606    // If field is not initialized, it is initialized with default value first.
3607    pub fn mut_backup(&mut self) -> &mut ::std::string::String {
3608        &mut self.backup
3609    }
3610
3611    // Take field
3612    pub fn take_backup(&mut self) -> ::std::string::String {
3613        ::std::mem::replace(&mut self.backup, ::std::string::String::new())
3614    }
3615
3616    // .google.protobuf.Timestamp version_time = 4;
3617
3618
3619    pub fn get_version_time(&self) -> &::protobuf::well_known_types::Timestamp {
3620        self.version_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
3621    }
3622    pub fn clear_version_time(&mut self) {
3623        self.version_time.clear();
3624    }
3625
3626    pub fn has_version_time(&self) -> bool {
3627        self.version_time.is_some()
3628    }
3629
3630    // Param is passed by value, moved
3631    pub fn set_version_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
3632        self.version_time = ::protobuf::SingularPtrField::some(v);
3633    }
3634
3635    // Mutable pointer to the field.
3636    // If field is not initialized, it is initialized with default value first.
3637    pub fn mut_version_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
3638        if self.version_time.is_none() {
3639            self.version_time.set_default();
3640        }
3641        self.version_time.as_mut().unwrap()
3642    }
3643
3644    // Take field
3645    pub fn take_version_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
3646        self.version_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
3647    }
3648
3649    // .google.protobuf.Timestamp create_time = 2;
3650
3651
3652    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
3653        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
3654    }
3655    pub fn clear_create_time(&mut self) {
3656        self.create_time.clear();
3657    }
3658
3659    pub fn has_create_time(&self) -> bool {
3660        self.create_time.is_some()
3661    }
3662
3663    // Param is passed by value, moved
3664    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
3665        self.create_time = ::protobuf::SingularPtrField::some(v);
3666    }
3667
3668    // Mutable pointer to the field.
3669    // If field is not initialized, it is initialized with default value first.
3670    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
3671        if self.create_time.is_none() {
3672            self.create_time.set_default();
3673        }
3674        self.create_time.as_mut().unwrap()
3675    }
3676
3677    // Take field
3678    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
3679        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
3680    }
3681
3682    // string source_database = 3;
3683
3684
3685    pub fn get_source_database(&self) -> &str {
3686        &self.source_database
3687    }
3688    pub fn clear_source_database(&mut self) {
3689        self.source_database.clear();
3690    }
3691
3692    // Param is passed by value, moved
3693    pub fn set_source_database(&mut self, v: ::std::string::String) {
3694        self.source_database = v;
3695    }
3696
3697    // Mutable pointer to the field.
3698    // If field is not initialized, it is initialized with default value first.
3699    pub fn mut_source_database(&mut self) -> &mut ::std::string::String {
3700        &mut self.source_database
3701    }
3702
3703    // Take field
3704    pub fn take_source_database(&mut self) -> ::std::string::String {
3705        ::std::mem::replace(&mut self.source_database, ::std::string::String::new())
3706    }
3707}
3708
3709impl ::protobuf::Message for BackupInfo {
3710    fn is_initialized(&self) -> bool {
3711        for v in &self.version_time {
3712            if !v.is_initialized() {
3713                return false;
3714            }
3715        };
3716        for v in &self.create_time {
3717            if !v.is_initialized() {
3718                return false;
3719            }
3720        };
3721        true
3722    }
3723
3724    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3725        while !is.eof()? {
3726            let (field_number, wire_type) = is.read_tag_unpack()?;
3727            match field_number {
3728                1 => {
3729                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.backup)?;
3730                },
3731                4 => {
3732                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.version_time)?;
3733                },
3734                2 => {
3735                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
3736                },
3737                3 => {
3738                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.source_database)?;
3739                },
3740                _ => {
3741                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3742                },
3743            };
3744        }
3745        ::std::result::Result::Ok(())
3746    }
3747
3748    // Compute sizes of nested messages
3749    #[allow(unused_variables)]
3750    fn compute_size(&self) -> u32 {
3751        let mut my_size = 0;
3752        if !self.backup.is_empty() {
3753            my_size += ::protobuf::rt::string_size(1, &self.backup);
3754        }
3755        if let Some(ref v) = self.version_time.as_ref() {
3756            let len = v.compute_size();
3757            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3758        }
3759        if let Some(ref v) = self.create_time.as_ref() {
3760            let len = v.compute_size();
3761            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3762        }
3763        if !self.source_database.is_empty() {
3764            my_size += ::protobuf::rt::string_size(3, &self.source_database);
3765        }
3766        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3767        self.cached_size.set(my_size);
3768        my_size
3769    }
3770
3771    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3772        if !self.backup.is_empty() {
3773            os.write_string(1, &self.backup)?;
3774        }
3775        if let Some(ref v) = self.version_time.as_ref() {
3776            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3777            os.write_raw_varint32(v.get_cached_size())?;
3778            v.write_to_with_cached_sizes(os)?;
3779        }
3780        if let Some(ref v) = self.create_time.as_ref() {
3781            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3782            os.write_raw_varint32(v.get_cached_size())?;
3783            v.write_to_with_cached_sizes(os)?;
3784        }
3785        if !self.source_database.is_empty() {
3786            os.write_string(3, &self.source_database)?;
3787        }
3788        os.write_unknown_fields(self.get_unknown_fields())?;
3789        ::std::result::Result::Ok(())
3790    }
3791
3792    fn get_cached_size(&self) -> u32 {
3793        self.cached_size.get()
3794    }
3795
3796    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3797        &self.unknown_fields
3798    }
3799
3800    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3801        &mut self.unknown_fields
3802    }
3803
3804    fn as_any(&self) -> &dyn (::std::any::Any) {
3805        self as &dyn (::std::any::Any)
3806    }
3807    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3808        self as &mut dyn (::std::any::Any)
3809    }
3810    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3811        self
3812    }
3813
3814    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3815        Self::descriptor_static()
3816    }
3817
3818    fn new() -> BackupInfo {
3819        BackupInfo::new()
3820    }
3821
3822    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3823        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3824        descriptor.get(|| {
3825            let mut fields = ::std::vec::Vec::new();
3826            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3827                "backup",
3828                |m: &BackupInfo| { &m.backup },
3829                |m: &mut BackupInfo| { &mut m.backup },
3830            ));
3831            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
3832                "version_time",
3833                |m: &BackupInfo| { &m.version_time },
3834                |m: &mut BackupInfo| { &mut m.version_time },
3835            ));
3836            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
3837                "create_time",
3838                |m: &BackupInfo| { &m.create_time },
3839                |m: &mut BackupInfo| { &mut m.create_time },
3840            ));
3841            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3842                "source_database",
3843                |m: &BackupInfo| { &m.source_database },
3844                |m: &mut BackupInfo| { &mut m.source_database },
3845            ));
3846            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BackupInfo>(
3847                "BackupInfo",
3848                fields,
3849                file_descriptor_proto()
3850            )
3851        })
3852    }
3853
3854    fn default_instance() -> &'static BackupInfo {
3855        static instance: ::protobuf::rt::LazyV2<BackupInfo> = ::protobuf::rt::LazyV2::INIT;
3856        instance.get(BackupInfo::new)
3857    }
3858}
3859
3860impl ::protobuf::Clear for BackupInfo {
3861    fn clear(&mut self) {
3862        self.backup.clear();
3863        self.version_time.clear();
3864        self.create_time.clear();
3865        self.source_database.clear();
3866        self.unknown_fields.clear();
3867    }
3868}
3869
3870impl ::std::fmt::Debug for BackupInfo {
3871    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3872        ::protobuf::text_format::fmt(self, f)
3873    }
3874}
3875
3876impl ::protobuf::reflect::ProtobufValue for BackupInfo {
3877    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3878        ::protobuf::reflect::ReflectValueRef::Message(self)
3879    }
3880}
3881
3882#[derive(PartialEq,Clone,Default)]
3883pub struct CreateBackupEncryptionConfig {
3884    // message fields
3885    pub encryption_type: CreateBackupEncryptionConfig_EncryptionType,
3886    pub kms_key_name: ::std::string::String,
3887    // special fields
3888    pub unknown_fields: ::protobuf::UnknownFields,
3889    pub cached_size: ::protobuf::CachedSize,
3890}
3891
3892impl<'a> ::std::default::Default for &'a CreateBackupEncryptionConfig {
3893    fn default() -> &'a CreateBackupEncryptionConfig {
3894        <CreateBackupEncryptionConfig as ::protobuf::Message>::default_instance()
3895    }
3896}
3897
3898impl CreateBackupEncryptionConfig {
3899    pub fn new() -> CreateBackupEncryptionConfig {
3900        ::std::default::Default::default()
3901    }
3902
3903    // .google.spanner.admin.database.v1.CreateBackupEncryptionConfig.EncryptionType encryption_type = 1;
3904
3905
3906    pub fn get_encryption_type(&self) -> CreateBackupEncryptionConfig_EncryptionType {
3907        self.encryption_type
3908    }
3909    pub fn clear_encryption_type(&mut self) {
3910        self.encryption_type = CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
3911    }
3912
3913    // Param is passed by value, moved
3914    pub fn set_encryption_type(&mut self, v: CreateBackupEncryptionConfig_EncryptionType) {
3915        self.encryption_type = v;
3916    }
3917
3918    // string kms_key_name = 2;
3919
3920
3921    pub fn get_kms_key_name(&self) -> &str {
3922        &self.kms_key_name
3923    }
3924    pub fn clear_kms_key_name(&mut self) {
3925        self.kms_key_name.clear();
3926    }
3927
3928    // Param is passed by value, moved
3929    pub fn set_kms_key_name(&mut self, v: ::std::string::String) {
3930        self.kms_key_name = v;
3931    }
3932
3933    // Mutable pointer to the field.
3934    // If field is not initialized, it is initialized with default value first.
3935    pub fn mut_kms_key_name(&mut self) -> &mut ::std::string::String {
3936        &mut self.kms_key_name
3937    }
3938
3939    // Take field
3940    pub fn take_kms_key_name(&mut self) -> ::std::string::String {
3941        ::std::mem::replace(&mut self.kms_key_name, ::std::string::String::new())
3942    }
3943}
3944
3945impl ::protobuf::Message for CreateBackupEncryptionConfig {
3946    fn is_initialized(&self) -> bool {
3947        true
3948    }
3949
3950    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3951        while !is.eof()? {
3952            let (field_number, wire_type) = is.read_tag_unpack()?;
3953            match field_number {
3954                1 => {
3955                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.encryption_type, 1, &mut self.unknown_fields)?
3956                },
3957                2 => {
3958                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.kms_key_name)?;
3959                },
3960                _ => {
3961                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3962                },
3963            };
3964        }
3965        ::std::result::Result::Ok(())
3966    }
3967
3968    // Compute sizes of nested messages
3969    #[allow(unused_variables)]
3970    fn compute_size(&self) -> u32 {
3971        let mut my_size = 0;
3972        if self.encryption_type != CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
3973            my_size += ::protobuf::rt::enum_size(1, self.encryption_type);
3974        }
3975        if !self.kms_key_name.is_empty() {
3976            my_size += ::protobuf::rt::string_size(2, &self.kms_key_name);
3977        }
3978        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3979        self.cached_size.set(my_size);
3980        my_size
3981    }
3982
3983    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3984        if self.encryption_type != CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
3985            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.encryption_type))?;
3986        }
3987        if !self.kms_key_name.is_empty() {
3988            os.write_string(2, &self.kms_key_name)?;
3989        }
3990        os.write_unknown_fields(self.get_unknown_fields())?;
3991        ::std::result::Result::Ok(())
3992    }
3993
3994    fn get_cached_size(&self) -> u32 {
3995        self.cached_size.get()
3996    }
3997
3998    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3999        &self.unknown_fields
4000    }
4001
4002    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4003        &mut self.unknown_fields
4004    }
4005
4006    fn as_any(&self) -> &dyn (::std::any::Any) {
4007        self as &dyn (::std::any::Any)
4008    }
4009    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4010        self as &mut dyn (::std::any::Any)
4011    }
4012    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4013        self
4014    }
4015
4016    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4017        Self::descriptor_static()
4018    }
4019
4020    fn new() -> CreateBackupEncryptionConfig {
4021        CreateBackupEncryptionConfig::new()
4022    }
4023
4024    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4025        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4026        descriptor.get(|| {
4027            let mut fields = ::std::vec::Vec::new();
4028            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CreateBackupEncryptionConfig_EncryptionType>>(
4029                "encryption_type",
4030                |m: &CreateBackupEncryptionConfig| { &m.encryption_type },
4031                |m: &mut CreateBackupEncryptionConfig| { &mut m.encryption_type },
4032            ));
4033            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4034                "kms_key_name",
4035                |m: &CreateBackupEncryptionConfig| { &m.kms_key_name },
4036                |m: &mut CreateBackupEncryptionConfig| { &mut m.kms_key_name },
4037            ));
4038            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateBackupEncryptionConfig>(
4039                "CreateBackupEncryptionConfig",
4040                fields,
4041                file_descriptor_proto()
4042            )
4043        })
4044    }
4045
4046    fn default_instance() -> &'static CreateBackupEncryptionConfig {
4047        static instance: ::protobuf::rt::LazyV2<CreateBackupEncryptionConfig> = ::protobuf::rt::LazyV2::INIT;
4048        instance.get(CreateBackupEncryptionConfig::new)
4049    }
4050}
4051
4052impl ::protobuf::Clear for CreateBackupEncryptionConfig {
4053    fn clear(&mut self) {
4054        self.encryption_type = CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
4055        self.kms_key_name.clear();
4056        self.unknown_fields.clear();
4057    }
4058}
4059
4060impl ::std::fmt::Debug for CreateBackupEncryptionConfig {
4061    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4062        ::protobuf::text_format::fmt(self, f)
4063    }
4064}
4065
4066impl ::protobuf::reflect::ProtobufValue for CreateBackupEncryptionConfig {
4067    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4068        ::protobuf::reflect::ReflectValueRef::Message(self)
4069    }
4070}
4071
4072#[derive(Clone,PartialEq,Eq,Debug,Hash)]
4073pub enum CreateBackupEncryptionConfig_EncryptionType {
4074    ENCRYPTION_TYPE_UNSPECIFIED = 0,
4075    USE_DATABASE_ENCRYPTION = 1,
4076    GOOGLE_DEFAULT_ENCRYPTION = 2,
4077    CUSTOMER_MANAGED_ENCRYPTION = 3,
4078}
4079
4080impl ::protobuf::ProtobufEnum for CreateBackupEncryptionConfig_EncryptionType {
4081    fn value(&self) -> i32 {
4082        *self as i32
4083    }
4084
4085    fn from_i32(value: i32) -> ::std::option::Option<CreateBackupEncryptionConfig_EncryptionType> {
4086        match value {
4087            0 => ::std::option::Option::Some(CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED),
4088            1 => ::std::option::Option::Some(CreateBackupEncryptionConfig_EncryptionType::USE_DATABASE_ENCRYPTION),
4089            2 => ::std::option::Option::Some(CreateBackupEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION),
4090            3 => ::std::option::Option::Some(CreateBackupEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION),
4091            _ => ::std::option::Option::None
4092        }
4093    }
4094
4095    fn values() -> &'static [Self] {
4096        static values: &'static [CreateBackupEncryptionConfig_EncryptionType] = &[
4097            CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED,
4098            CreateBackupEncryptionConfig_EncryptionType::USE_DATABASE_ENCRYPTION,
4099            CreateBackupEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION,
4100            CreateBackupEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION,
4101        ];
4102        values
4103    }
4104
4105    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
4106        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
4107        descriptor.get(|| {
4108            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CreateBackupEncryptionConfig_EncryptionType>("CreateBackupEncryptionConfig.EncryptionType", file_descriptor_proto())
4109        })
4110    }
4111}
4112
4113impl ::std::marker::Copy for CreateBackupEncryptionConfig_EncryptionType {
4114}
4115
4116impl ::std::default::Default for CreateBackupEncryptionConfig_EncryptionType {
4117    fn default() -> Self {
4118        CreateBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED
4119    }
4120}
4121
4122impl ::protobuf::reflect::ProtobufValue for CreateBackupEncryptionConfig_EncryptionType {
4123    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4124        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
4125    }
4126}
4127
4128#[derive(PartialEq,Clone,Default)]
4129pub struct CopyBackupEncryptionConfig {
4130    // message fields
4131    pub encryption_type: CopyBackupEncryptionConfig_EncryptionType,
4132    pub kms_key_name: ::std::string::String,
4133    // special fields
4134    pub unknown_fields: ::protobuf::UnknownFields,
4135    pub cached_size: ::protobuf::CachedSize,
4136}
4137
4138impl<'a> ::std::default::Default for &'a CopyBackupEncryptionConfig {
4139    fn default() -> &'a CopyBackupEncryptionConfig {
4140        <CopyBackupEncryptionConfig as ::protobuf::Message>::default_instance()
4141    }
4142}
4143
4144impl CopyBackupEncryptionConfig {
4145    pub fn new() -> CopyBackupEncryptionConfig {
4146        ::std::default::Default::default()
4147    }
4148
4149    // .google.spanner.admin.database.v1.CopyBackupEncryptionConfig.EncryptionType encryption_type = 1;
4150
4151
4152    pub fn get_encryption_type(&self) -> CopyBackupEncryptionConfig_EncryptionType {
4153        self.encryption_type
4154    }
4155    pub fn clear_encryption_type(&mut self) {
4156        self.encryption_type = CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
4157    }
4158
4159    // Param is passed by value, moved
4160    pub fn set_encryption_type(&mut self, v: CopyBackupEncryptionConfig_EncryptionType) {
4161        self.encryption_type = v;
4162    }
4163
4164    // string kms_key_name = 2;
4165
4166
4167    pub fn get_kms_key_name(&self) -> &str {
4168        &self.kms_key_name
4169    }
4170    pub fn clear_kms_key_name(&mut self) {
4171        self.kms_key_name.clear();
4172    }
4173
4174    // Param is passed by value, moved
4175    pub fn set_kms_key_name(&mut self, v: ::std::string::String) {
4176        self.kms_key_name = v;
4177    }
4178
4179    // Mutable pointer to the field.
4180    // If field is not initialized, it is initialized with default value first.
4181    pub fn mut_kms_key_name(&mut self) -> &mut ::std::string::String {
4182        &mut self.kms_key_name
4183    }
4184
4185    // Take field
4186    pub fn take_kms_key_name(&mut self) -> ::std::string::String {
4187        ::std::mem::replace(&mut self.kms_key_name, ::std::string::String::new())
4188    }
4189}
4190
4191impl ::protobuf::Message for CopyBackupEncryptionConfig {
4192    fn is_initialized(&self) -> bool {
4193        true
4194    }
4195
4196    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4197        while !is.eof()? {
4198            let (field_number, wire_type) = is.read_tag_unpack()?;
4199            match field_number {
4200                1 => {
4201                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.encryption_type, 1, &mut self.unknown_fields)?
4202                },
4203                2 => {
4204                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.kms_key_name)?;
4205                },
4206                _ => {
4207                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4208                },
4209            };
4210        }
4211        ::std::result::Result::Ok(())
4212    }
4213
4214    // Compute sizes of nested messages
4215    #[allow(unused_variables)]
4216    fn compute_size(&self) -> u32 {
4217        let mut my_size = 0;
4218        if self.encryption_type != CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
4219            my_size += ::protobuf::rt::enum_size(1, self.encryption_type);
4220        }
4221        if !self.kms_key_name.is_empty() {
4222            my_size += ::protobuf::rt::string_size(2, &self.kms_key_name);
4223        }
4224        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4225        self.cached_size.set(my_size);
4226        my_size
4227    }
4228
4229    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4230        if self.encryption_type != CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
4231            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.encryption_type))?;
4232        }
4233        if !self.kms_key_name.is_empty() {
4234            os.write_string(2, &self.kms_key_name)?;
4235        }
4236        os.write_unknown_fields(self.get_unknown_fields())?;
4237        ::std::result::Result::Ok(())
4238    }
4239
4240    fn get_cached_size(&self) -> u32 {
4241        self.cached_size.get()
4242    }
4243
4244    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4245        &self.unknown_fields
4246    }
4247
4248    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4249        &mut self.unknown_fields
4250    }
4251
4252    fn as_any(&self) -> &dyn (::std::any::Any) {
4253        self as &dyn (::std::any::Any)
4254    }
4255    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4256        self as &mut dyn (::std::any::Any)
4257    }
4258    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4259        self
4260    }
4261
4262    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4263        Self::descriptor_static()
4264    }
4265
4266    fn new() -> CopyBackupEncryptionConfig {
4267        CopyBackupEncryptionConfig::new()
4268    }
4269
4270    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4271        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4272        descriptor.get(|| {
4273            let mut fields = ::std::vec::Vec::new();
4274            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CopyBackupEncryptionConfig_EncryptionType>>(
4275                "encryption_type",
4276                |m: &CopyBackupEncryptionConfig| { &m.encryption_type },
4277                |m: &mut CopyBackupEncryptionConfig| { &mut m.encryption_type },
4278            ));
4279            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4280                "kms_key_name",
4281                |m: &CopyBackupEncryptionConfig| { &m.kms_key_name },
4282                |m: &mut CopyBackupEncryptionConfig| { &mut m.kms_key_name },
4283            ));
4284            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CopyBackupEncryptionConfig>(
4285                "CopyBackupEncryptionConfig",
4286                fields,
4287                file_descriptor_proto()
4288            )
4289        })
4290    }
4291
4292    fn default_instance() -> &'static CopyBackupEncryptionConfig {
4293        static instance: ::protobuf::rt::LazyV2<CopyBackupEncryptionConfig> = ::protobuf::rt::LazyV2::INIT;
4294        instance.get(CopyBackupEncryptionConfig::new)
4295    }
4296}
4297
4298impl ::protobuf::Clear for CopyBackupEncryptionConfig {
4299    fn clear(&mut self) {
4300        self.encryption_type = CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
4301        self.kms_key_name.clear();
4302        self.unknown_fields.clear();
4303    }
4304}
4305
4306impl ::std::fmt::Debug for CopyBackupEncryptionConfig {
4307    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4308        ::protobuf::text_format::fmt(self, f)
4309    }
4310}
4311
4312impl ::protobuf::reflect::ProtobufValue for CopyBackupEncryptionConfig {
4313    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4314        ::protobuf::reflect::ReflectValueRef::Message(self)
4315    }
4316}
4317
4318#[derive(Clone,PartialEq,Eq,Debug,Hash)]
4319pub enum CopyBackupEncryptionConfig_EncryptionType {
4320    ENCRYPTION_TYPE_UNSPECIFIED = 0,
4321    USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION = 1,
4322    GOOGLE_DEFAULT_ENCRYPTION = 2,
4323    CUSTOMER_MANAGED_ENCRYPTION = 3,
4324}
4325
4326impl ::protobuf::ProtobufEnum for CopyBackupEncryptionConfig_EncryptionType {
4327    fn value(&self) -> i32 {
4328        *self as i32
4329    }
4330
4331    fn from_i32(value: i32) -> ::std::option::Option<CopyBackupEncryptionConfig_EncryptionType> {
4332        match value {
4333            0 => ::std::option::Option::Some(CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED),
4334            1 => ::std::option::Option::Some(CopyBackupEncryptionConfig_EncryptionType::USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION),
4335            2 => ::std::option::Option::Some(CopyBackupEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION),
4336            3 => ::std::option::Option::Some(CopyBackupEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION),
4337            _ => ::std::option::Option::None
4338        }
4339    }
4340
4341    fn values() -> &'static [Self] {
4342        static values: &'static [CopyBackupEncryptionConfig_EncryptionType] = &[
4343            CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED,
4344            CopyBackupEncryptionConfig_EncryptionType::USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION,
4345            CopyBackupEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION,
4346            CopyBackupEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION,
4347        ];
4348        values
4349    }
4350
4351    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
4352        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
4353        descriptor.get(|| {
4354            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CopyBackupEncryptionConfig_EncryptionType>("CopyBackupEncryptionConfig.EncryptionType", file_descriptor_proto())
4355        })
4356    }
4357}
4358
4359impl ::std::marker::Copy for CopyBackupEncryptionConfig_EncryptionType {
4360}
4361
4362impl ::std::default::Default for CopyBackupEncryptionConfig_EncryptionType {
4363    fn default() -> Self {
4364        CopyBackupEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED
4365    }
4366}
4367
4368impl ::protobuf::reflect::ProtobufValue for CopyBackupEncryptionConfig_EncryptionType {
4369    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4370        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
4371    }
4372}
4373
4374static file_descriptor_proto_data: &'static [u8] = b"\
4375    \n-google/spanner/admin/database/v1/backup.proto\x12\x20google.spanner.a\
4376    dmin.database.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/ap\
4377    i/resource.proto\x1a#google/longrunning/operations.proto\x1a\x20google/p\
4378    rotobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a-goog\
4379    le/spanner/admin/database/v1/common.proto\"\xe4\x07\n\x06Backup\x12@\n\
4380    \x08database\x18\x02\x20\x01(\tR\x08databaseB$\xfaA!\n\x1fspanner.google\
4381    apis.com/Database\x12=\n\x0cversion_time\x18\t\x20\x01(\x0b2\x1a.google.\
4382    protobuf.TimestampR\x0bversionTime\x12;\n\x0bexpire_time\x18\x03\x20\x01\
4383    (\x0b2\x1a.google.protobuf.TimestampR\nexpireTime\x12\x12\n\x04name\x18\
4384    \x01\x20\x01(\tR\x04name\x12@\n\x0bcreate_time\x18\x04\x20\x01(\x0b2\x1a\
4385    .google.protobuf.TimestampR\ncreateTimeB\x03\xe0A\x03\x12\"\n\nsize_byte\
4386    s\x18\x05\x20\x01(\x03R\tsizeBytesB\x03\xe0A\x03\x12I\n\x05state\x18\x06\
4387    \x20\x01(\x0e2..google.spanner.admin.database.v1.Backup.StateR\x05stateB\
4388    \x03\xe0A\x03\x12\\\n\x15referencing_databases\x18\x07\x20\x03(\tR\x14re\
4389    ferencingDatabasesB'\xfaA!\n\x1fspanner.googleapis.com/Database\xe0A\x03\
4390    \x12^\n\x0fencryption_info\x18\x08\x20\x01(\x0b20.google.spanner.admin.d\
4391    atabase.v1.EncryptionInfoR\x0eencryptionInfoB\x03\xe0A\x03\x12a\n\x10dat\
4392    abase_dialect\x18\n\x20\x01(\x0e21.google.spanner.admin.database.v1.Data\
4393    baseDialectR\x0fdatabaseDialectB\x03\xe0A\x03\x12V\n\x13referencing_back\
4394    ups\x18\x0b\x20\x03(\tR\x12referencingBackupsB%\xfaA\x1f\n\x1dspanner.go\
4395    ogleapis.com/Backup\xe0A\x03\x12G\n\x0fmax_expire_time\x18\x0c\x20\x01(\
4396    \x0b2\x1a.google.protobuf.TimestampR\rmaxExpireTimeB\x03\xe0A\x03\"7\n\
4397    \x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\0\x12\x0c\n\x08CREATING\x10\
4398    \x01\x12\t\n\x05READY\x10\x02:\\\xeaAY\n\x1dspanner.googleapis.com/Backu\
4399    p\x128projects/{project}/instances/{instance}/backups/{backup}\"\xb1\x02\
4400    \n\x13CreateBackupRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06parent\
4401    B'\xfaA!\n\x1fspanner.googleapis.com/Instance\xe0A\x02\x12\x20\n\tbackup\
4402    _id\x18\x02\x20\x01(\tR\x08backupIdB\x03\xe0A\x02\x12E\n\x06backup\x18\
4403    \x03\x20\x01(\x0b2(.google.spanner.admin.database.v1.BackupR\x06backupB\
4404    \x03\xe0A\x02\x12p\n\x11encryption_config\x18\x04\x20\x01(\x0b2>.google.\
4405    spanner.admin.database.v1.CreateBackupEncryptionConfigR\x10encryptionCon\
4406    figB\x03\xe0A\x01\"\x9e\x02\n\x14CreateBackupMetadata\x126\n\x04name\x18\
4407    \x01\x20\x01(\tR\x04nameB\"\xfaA\x1f\n\x1dspanner.googleapis.com/Backup\
4408    \x12@\n\x08database\x18\x02\x20\x01(\tR\x08databaseB$\xfaA!\n\x1fspanner\
4409    .googleapis.com/Database\x12O\n\x08progress\x18\x03\x20\x01(\x0b23.googl\
4410    e.spanner.admin.database.v1.OperationProgressR\x08progress\x12;\n\x0bcan\
4411    cel_time\x18\x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncancelTim\
4412    e\"\xf4\x02\n\x11CopyBackupRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\
4413    \x06parentB'\xfaA!\n\x1fspanner.googleapis.com/Instance\xe0A\x02\x12\x20\
4414    \n\tbackup_id\x18\x02\x20\x01(\tR\x08backupIdB\x03\xe0A\x02\x12J\n\rsour\
4415    ce_backup\x18\x03\x20\x01(\tR\x0csourceBackupB%\xfaA\x1f\n\x1dspanner.go\
4416    ogleapis.com/Backup\xe0A\x02\x12@\n\x0bexpire_time\x18\x04\x20\x01(\x0b2\
4417    \x1a.google.protobuf.TimestampR\nexpireTimeB\x03\xe0A\x02\x12n\n\x11encr\
4418    yption_config\x18\x05\x20\x01(\x0b2<.google.spanner.admin.database.v1.Co\
4419    pyBackupEncryptionConfigR\x10encryptionConfigB\x03\xe0A\x01\"\xa3\x02\n\
4420    \x12CopyBackupMetadata\x126\n\x04name\x18\x01\x20\x01(\tR\x04nameB\"\xfa\
4421    A\x1f\n\x1dspanner.googleapis.com/Backup\x12G\n\rsource_backup\x18\x02\
4422    \x20\x01(\tR\x0csourceBackupB\"\xfaA\x1f\n\x1dspanner.googleapis.com/Bac\
4423    kup\x12O\n\x08progress\x18\x03\x20\x01(\x0b23.google.spanner.admin.datab\
4424    ase.v1.OperationProgressR\x08progress\x12;\n\x0bcancel_time\x18\x04\x20\
4425    \x01(\x0b2\x1a.google.protobuf.TimestampR\ncancelTime\"\x9e\x01\n\x13Upd\
4426    ateBackupRequest\x12E\n\x06backup\x18\x01\x20\x01(\x0b2(.google.spanner.\
4427    admin.database.v1.BackupR\x06backupB\x03\xe0A\x02\x12@\n\x0bupdate_mask\
4428    \x18\x02\x20\x01(\x0b2\x1a.google.protobuf.FieldMaskR\nupdateMaskB\x03\
4429    \xe0A\x02\"M\n\x10GetBackupRequest\x129\n\x04name\x18\x01\x20\x01(\tR\
4430    \x04nameB%\xfaA\x1f\n\x1dspanner.googleapis.com/Backup\xe0A\x02\"P\n\x13\
4431    DeleteBackupRequest\x129\n\x04name\x18\x01\x20\x01(\tR\x04nameB%\xfaA\
4432    \x1f\n\x1dspanner.googleapis.com/Backup\xe0A\x02\"\xa9\x01\n\x12ListBack\
4433    upsRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06parentB'\xfaA!\n\x1fs\
4434    panner.googleapis.com/Instance\xe0A\x02\x12\x16\n\x06filter\x18\x02\x20\
4435    \x01(\tR\x06filter\x12\x1b\n\tpage_size\x18\x03\x20\x01(\x05R\x08pageSiz\
4436    e\x12\x1d\n\npage_token\x18\x04\x20\x01(\tR\tpageToken\"\x81\x01\n\x13Li\
4437    stBackupsResponse\x12B\n\x07backups\x18\x01\x20\x03(\x0b2(.google.spanne\
4438    r.admin.database.v1.BackupR\x07backups\x12&\n\x0fnext_page_token\x18\x02\
4439    \x20\x01(\tR\rnextPageToken\"\xb2\x01\n\x1bListBackupOperationsRequest\
4440    \x12?\n\x06parent\x18\x01\x20\x01(\tR\x06parentB'\xfaA!\n\x1fspanner.goo\
4441    gleapis.com/Instance\xe0A\x02\x12\x16\n\x06filter\x18\x02\x20\x01(\tR\
4442    \x06filter\x12\x1b\n\tpage_size\x18\x03\x20\x01(\x05R\x08pageSize\x12\
4443    \x1d\n\npage_token\x18\x04\x20\x01(\tR\tpageToken\"\x85\x01\n\x1cListBac\
4444    kupOperationsResponse\x12=\n\noperations\x18\x01\x20\x03(\x0b2\x1d.googl\
4445    e.longrunning.OperationR\noperations\x12&\n\x0fnext_page_token\x18\x02\
4446    \x20\x01(\tR\rnextPageToken\"\x93\x02\n\nBackupInfo\x12:\n\x06backup\x18\
4447    \x01\x20\x01(\tR\x06backupB\"\xfaA\x1f\n\x1dspanner.googleapis.com/Backu\
4448    p\x12=\n\x0cversion_time\x18\x04\x20\x01(\x0b2\x1a.google.protobuf.Times\
4449    tampR\x0bversionTime\x12;\n\x0bcreate_time\x18\x02\x20\x01(\x0b2\x1a.goo\
4450    gle.protobuf.TimestampR\ncreateTime\x12M\n\x0fsource_database\x18\x03\
4451    \x20\x01(\tR\x0esourceDatabaseB$\xfaA!\n\x1fspanner.googleapis.com/Datab\
4452    ase\"\xf9\x02\n\x1cCreateBackupEncryptionConfig\x12{\n\x0fencryption_typ\
4453    e\x18\x01\x20\x01(\x0e2M.google.spanner.admin.database.v1.CreateBackupEn\
4454    cryptionConfig.EncryptionTypeR\x0eencryptionTypeB\x03\xe0A\x02\x12K\n\
4455    \x0ckms_key_name\x18\x02\x20\x01(\tR\nkmsKeyNameB)\xfaA#\n!cloudkms.goog\
4456    leapis.com/CryptoKey\xe0A\x01\"\x8e\x01\n\x0eEncryptionType\x12\x1f\n\
4457    \x1bENCRYPTION_TYPE_UNSPECIFIED\x10\0\x12\x1b\n\x17USE_DATABASE_ENCRYPTI\
4458    ON\x10\x01\x12\x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x02\x12\x1f\n\x1bC\
4459    USTOMER_MANAGED_ENCRYPTION\x10\x03\"\x85\x03\n\x1aCopyBackupEncryptionCo\
4460    nfig\x12y\n\x0fencryption_type\x18\x01\x20\x01(\x0e2K.google.spanner.adm\
4461    in.database.v1.CopyBackupEncryptionConfig.EncryptionTypeR\x0eencryptionT\
4462    ypeB\x03\xe0A\x02\x12K\n\x0ckms_key_name\x18\x02\x20\x01(\tR\nkmsKeyName\
4463    B)\xfaA#\n!cloudkms.googleapis.com/CryptoKey\xe0A\x01\"\x9e\x01\n\x0eEnc\
4464    ryptionType\x12\x1f\n\x1bENCRYPTION_TYPE_UNSPECIFIED\x10\0\x12+\n'USE_CO\
4465    NFIG_DEFAULT_OR_BACKUP_ENCRYPTION\x10\x01\x12\x1d\n\x19GOOGLE_DEFAULT_EN\
4466    CRYPTION\x10\x02\x12\x1f\n\x1bCUSTOMER_MANAGED_ENCRYPTION\x10\x03B\xfd\
4467    \x01\n$com.google.spanner.admin.database.v1B\x0bBackupProtoP\x01ZFcloud.\
4468    google.com/go/spanner/admin/database/apiv1/databasepb;databasepb\xaa\x02\
4469    &Google.Cloud.Spanner.Admin.Database.V1\xca\x02&Google\\Cloud\\Spanner\\\
4470    Admin\\Database\\V1\xea\x02+Google::Cloud::Spanner::Admin::Database::V1J\
4471    \xdb\xce\x01\n\x07\x12\x05\x0e\0\xe0\x04\x01\n\xbc\x04\n\x01\x0c\x12\x03\
4472    \x0e\0\x122\xb1\x04\x20Copyright\x202022\x20Google\x20LLC\n\n\x20License\
4473    d\x20under\x20the\x20Apache\x20License,\x20Version\x202.0\x20(the\x20\"L\
4474    icense\");\n\x20you\x20may\x20not\x20use\x20this\x20file\x20except\x20in\
4475    \x20compliance\x20with\x20the\x20License.\n\x20You\x20may\x20obtain\x20a\
4476    \x20copy\x20of\x20the\x20License\x20at\n\n\x20\x20\x20\x20\x20http://www\
4477    .apache.org/licenses/LICENSE-2.0\n\n\x20Unless\x20required\x20by\x20appl\
4478    icable\x20law\x20or\x20agreed\x20to\x20in\x20writing,\x20software\n\x20d\
4479    istributed\x20under\x20the\x20License\x20is\x20distributed\x20on\x20an\
4480    \x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITION\
4481    S\x20OF\x20ANY\x20KIND,\x20either\x20express\x20or\x20implied.\n\x20See\
4482    \x20the\x20License\x20for\x20the\x20specific\x20language\x20governing\
4483    \x20permissions\x20and\n\x20limitations\x20under\x20the\x20License.\n\n\
4484    \x08\n\x01\x02\x12\x03\x10\0)\n\t\n\x02\x03\0\x12\x03\x12\0)\n\t\n\x02\
4485    \x03\x01\x12\x03\x13\0#\n\t\n\x02\x03\x02\x12\x03\x14\0-\n\t\n\x02\x03\
4486    \x03\x12\x03\x15\0*\n\t\n\x02\x03\x04\x12\x03\x16\0)\n\t\n\x02\x03\x05\
4487    \x12\x03\x17\07\n\x08\n\x01\x08\x12\x03\x19\0C\n\t\n\x02\x08%\x12\x03\
4488    \x19\0C\n\x08\n\x01\x08\x12\x03\x1a\0]\n\t\n\x02\x08\x0b\x12\x03\x1a\0]\
4489    \n\x08\n\x01\x08\x12\x03\x1b\0\"\n\t\n\x02\x08\n\x12\x03\x1b\0\"\n\x08\n\
4490    \x01\x08\x12\x03\x1c\0,\n\t\n\x02\x08\x08\x12\x03\x1c\0,\n\x08\n\x01\x08\
4491    \x12\x03\x1d\0=\n\t\n\x02\x08\x01\x12\x03\x1d\0=\n\x08\n\x01\x08\x12\x03\
4492    \x1e\0E\n\t\n\x02\x08)\x12\x03\x1e\0E\n\x08\n\x01\x08\x12\x03\x1f\0D\n\t\
4493    \n\x02\x08-\x12\x03\x1f\0D\n4\n\x02\x04\0\x12\x05\"\0\x8e\x01\x01\x1a'\
4494    \x20A\x20backup\x20of\x20a\x20Cloud\x20Spanner\x20database.\n\n\n\n\x03\
4495    \x04\0\x01\x12\x03\"\x08\x0e\n\x0b\n\x03\x04\0\x07\x12\x04#\x02&\x04\n\r\
4496    \n\x05\x04\0\x07\x9d\x08\x12\x04#\x02&\x04\n:\n\x04\x04\0\x04\0\x12\x04)\
4497    \x023\x03\x1a,\x20Indicates\x20the\x20current\x20state\x20of\x20the\x20b\
4498    ackup.\n\n\x0c\n\x05\x04\0\x04\0\x01\x12\x03)\x07\x0c\n\x1f\n\x06\x04\0\
4499    \x04\0\x02\0\x12\x03+\x04\x1a\x1a\x10\x20Not\x20specified.\n\n\x0e\n\x07\
4500    \x04\0\x04\0\x02\0\x01\x12\x03+\x04\x15\n\x0e\n\x07\x04\0\x04\0\x02\0\
4501    \x02\x12\x03+\x18\x19\n\x88\x01\n\x06\x04\0\x04\0\x02\x01\x12\x03/\x04\
4502    \x11\x1ay\x20The\x20pending\x20backup\x20is\x20still\x20being\x20created\
4503    .\x20Operations\x20on\x20the\n\x20backup\x20may\x20fail\x20with\x20`FAIL\
4504    ED_PRECONDITION`\x20in\x20this\x20state.\n\n\x0e\n\x07\x04\0\x04\0\x02\
4505    \x01\x01\x12\x03/\x04\x0c\n\x0e\n\x07\x04\0\x04\0\x02\x01\x02\x12\x03/\
4506    \x0f\x10\n:\n\x06\x04\0\x04\0\x02\x02\x12\x032\x04\x0e\x1a+\x20The\x20ba\
4507    ckup\x20is\x20complete\x20and\x20ready\x20for\x20use.\n\n\x0e\n\x07\x04\
4508    \0\x04\0\x02\x02\x01\x12\x032\x04\t\n\x0e\n\x07\x04\0\x04\0\x02\x02\x02\
4509    \x12\x032\x0c\r\n\xc1\x02\n\x04\x04\0\x02\0\x12\x04:\x02<\x1a\x1a\xb2\
4510    \x02\x20Required\x20for\x20the\x20[CreateBackup][google.spanner.admin.da\
4511    tabase.v1.DatabaseAdmin.CreateBackup]\x20operation.\n\x20Name\x20of\x20t\
4512    he\x20database\x20from\x20which\x20this\x20backup\x20was\n\x20created.\
4513    \x20This\x20needs\x20to\x20be\x20in\x20the\x20same\x20instance\x20as\x20\
4514    the\x20backup.\n\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<p\
4515    roject>/instances/<instance>/databases/<database>`.\n\n\x0c\n\x05\x04\0\
4516    \x02\0\x05\x12\x03:\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03:\t\x11\n\
4517    \x0c\n\x05\x04\0\x02\0\x03\x12\x03:\x14\x15\n\r\n\x05\x04\0\x02\0\x08\
4518    \x12\x04:\x16<\x19\n\x0f\n\x07\x04\0\x02\0\x08\x9f\x08\x12\x04:\x17<\x18\
4519    \n\xf1\x01\n\x04\x04\0\x02\x01\x12\x03B\x02-\x1a\xe3\x01\x20The\x20backu\
4520    p\x20will\x20contain\x20an\x20externally\x20consistent\x20copy\x20of\x20\
4521    the\x20database\x20at\n\x20the\x20timestamp\x20specified\x20by\x20`versi\
4522    on_time`.\x20If\x20`version_time`\x20is\x20not\n\x20specified,\x20the\
4523    \x20system\x20will\x20set\x20`version_time`\x20to\x20the\x20`create_time\
4524    `\x20of\x20the\n\x20backup.\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03B\x02\
4525    \x1b\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03B\x1c(\n\x0c\n\x05\x04\0\x02\
4526    \x01\x03\x12\x03B+,\n\xb6\x03\n\x04\x04\0\x02\x02\x12\x03J\x02,\x1a\xa8\
4527    \x03\x20Required\x20for\x20the\x20[CreateBackup][google.spanner.admin.da\
4528    tabase.v1.DatabaseAdmin.CreateBackup]\n\x20operation.\x20The\x20expirati\
4529    on\x20time\x20of\x20the\x20backup,\x20with\x20microseconds\n\x20granular\
4530    ity\x20that\x20must\x20be\x20at\x20least\x206\x20hours\x20and\x20at\x20m\
4531    ost\x20366\x20days\n\x20from\x20the\x20time\x20the\x20CreateBackup\x20re\
4532    quest\x20is\x20processed.\x20Once\x20the\x20`expire_time`\n\x20has\x20pa\
4533    ssed,\x20the\x20backup\x20is\x20eligible\x20to\x20be\x20automatically\
4534    \x20deleted\x20by\x20Cloud\n\x20Spanner\x20to\x20free\x20the\x20resource\
4535    s\x20used\x20by\x20the\x20backup.\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\
4536    \x03J\x02\x1b\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03J\x1c'\n\x0c\n\x05\
4537    \x04\0\x02\x02\x03\x12\x03J*+\n\xbd\x05\n\x04\x04\0\x02\x03\x12\x03Y\x02\
4538    \x12\x1a\xaf\x05\x20Output\x20only\x20for\x20the\x20[CreateBackup][googl\
4539    e.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]\x20operation.\n\
4540    \x20Required\x20for\x20the\x20[UpdateBackup][google.spanner.admin.databa\
4541    se.v1.DatabaseAdmin.UpdateBackup]\x20operation.\n\n\x20A\x20globally\x20\
4542    unique\x20identifier\x20for\x20the\x20backup\x20which\x20cannot\x20be\n\
4543    \x20changed.\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<proje\
4544    ct>/instances/<instance>/backups/[a-z][a-z0-9_\\-]*[a-z0-9]`\n\x20The\
4545    \x20final\x20segment\x20of\x20the\x20name\x20must\x20be\x20between\x202\
4546    \x20and\x2060\x20characters\n\x20in\x20length.\n\n\x20The\x20backup\x20i\
4547    s\x20stored\x20in\x20the\x20location(s)\x20specified\x20in\x20the\x20ins\
4548    tance\n\x20configuration\x20of\x20the\x20instance\x20containing\x20the\
4549    \x20backup,\x20identified\n\x20by\x20the\x20prefix\x20of\x20the\x20backu\
4550    p\x20name\x20of\x20the\x20form\n\x20`projects/<project>/instances/<insta\
4551    nce>`.\n\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03Y\x02\x08\n\x0c\n\x05\x04\
4552    \0\x02\x03\x01\x12\x03Y\t\r\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03Y\x10\
4553    \x11\n\x86\x02\n\x04\x04\0\x02\x04\x12\x03^\x02X\x1a\xf8\x01\x20Output\
4554    \x20only.\x20The\x20time\x20the\x20[CreateBackup][google.spanner.admin.d\
4555    atabase.v1.DatabaseAdmin.CreateBackup]\n\x20request\x20is\x20received.\
4556    \x20If\x20the\x20request\x20does\x20not\x20specify\x20`version_time`,\
4557    \x20the\n\x20`version_time`\x20of\x20the\x20backup\x20will\x20be\x20equi\
4558    valent\x20to\x20the\x20`create_time`.\n\n\x0c\n\x05\x04\0\x02\x04\x06\
4559    \x12\x03^\x02\x1b\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03^\x1c'\n\x0c\n\
4560    \x05\x04\0\x02\x04\x03\x12\x03^*+\n\x0c\n\x05\x04\0\x02\x04\x08\x12\x03^\
4561    ,W\n\x0f\n\x08\x04\0\x02\x04\x08\x9c\x08\0\x12\x03^-V\n8\n\x04\x04\0\x02\
4562    \x05\x12\x03a\x02C\x1a+\x20Output\x20only.\x20Size\x20of\x20the\x20backu\
4563    p\x20in\x20bytes.\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03a\x02\x07\n\x0c\
4564    \n\x05\x04\0\x02\x05\x01\x12\x03a\x08\x12\n\x0c\n\x05\x04\0\x02\x05\x03\
4565    \x12\x03a\x15\x16\n\x0c\n\x05\x04\0\x02\x05\x08\x12\x03a\x17B\n\x0f\n\
4566    \x08\x04\0\x02\x05\x08\x9c\x08\0\x12\x03a\x18A\n<\n\x04\x04\0\x02\x06\
4567    \x12\x03d\x02>\x1a/\x20Output\x20only.\x20The\x20current\x20state\x20of\
4568    \x20the\x20backup.\n\n\x0c\n\x05\x04\0\x02\x06\x06\x12\x03d\x02\x07\n\
4569    \x0c\n\x05\x04\0\x02\x06\x01\x12\x03d\x08\r\n\x0c\n\x05\x04\0\x02\x06\
4570    \x03\x12\x03d\x10\x11\n\x0c\n\x05\x04\0\x02\x06\x08\x12\x03d\x12=\n\x0f\
4571    \n\x08\x04\0\x02\x06\x08\x9c\x08\0\x12\x03d\x13<\n\xba\x03\n\x04\x04\0\
4572    \x02\x07\x12\x04m\x02r\x04\x1a\xab\x03\x20Output\x20only.\x20The\x20name\
4573    s\x20of\x20the\x20restored\x20databases\x20that\x20reference\x20the\x20b\
4574    ackup.\n\x20The\x20database\x20names\x20are\x20of\n\x20the\x20form\x20`p\
4575    rojects/<project>/instances/<instance>/databases/<database>`.\n\x20Refer\
4576    encing\x20databases\x20may\x20exist\x20in\x20different\x20instances.\x20\
4577    The\x20existence\x20of\n\x20any\x20referencing\x20database\x20prevents\
4578    \x20the\x20backup\x20from\x20being\x20deleted.\x20When\x20a\n\x20restore\
4579    d\x20database\x20from\x20the\x20backup\x20enters\x20the\x20`READY`\x20st\
4580    ate,\x20the\x20reference\n\x20to\x20the\x20backup\x20is\x20removed.\n\n\
4581    \x0c\n\x05\x04\0\x02\x07\x04\x12\x03m\x02\n\n\x0c\n\x05\x04\0\x02\x07\
4582    \x05\x12\x03m\x0b\x11\n\x0c\n\x05\x04\0\x02\x07\x01\x12\x03m\x12'\n\x0c\
4583    \n\x05\x04\0\x02\x07\x03\x12\x03m*+\n\r\n\x05\x04\0\x02\x07\x08\x12\x04m\
4584    ,r\x03\n\x0f\n\x08\x04\0\x02\x07\x08\x9c\x08\0\x12\x03n\x04-\n\x0f\n\x07\
4585    \x04\0\x02\x07\x08\x9f\x08\x12\x04o\x04q\x05\nF\n\x04\x04\0\x02\x08\x12\
4586    \x03u\x02Q\x1a9\x20Output\x20only.\x20The\x20encryption\x20information\
4587    \x20for\x20the\x20backup.\n\n\x0c\n\x05\x04\0\x02\x08\x06\x12\x03u\x02\
4588    \x10\n\x0c\n\x05\x04\0\x02\x08\x01\x12\x03u\x11\x20\n\x0c\n\x05\x04\0\
4589    \x02\x08\x03\x12\x03u#$\n\x0c\n\x05\x04\0\x02\x08\x08\x12\x03u%P\n\x0f\n\
4590    \x08\x04\0\x02\x08\x08\x9c\x08\0\x12\x03u&O\nL\n\x04\x04\0\x02\t\x12\x03\
4591    x\x02T\x1a?\x20Output\x20only.\x20The\x20database\x20dialect\x20informat\
4592    ion\x20for\x20the\x20backup.\n\n\x0c\n\x05\x04\0\x02\t\x06\x12\x03x\x02\
4593    \x11\n\x0c\n\x05\x04\0\x02\t\x01\x12\x03x\x12\"\n\x0c\n\x05\x04\0\x02\t\
4594    \x03\x12\x03x%'\n\x0c\n\x05\x04\0\x02\t\x08\x12\x03x(S\n\x0f\n\x08\x04\0\
4595    \x02\t\x08\x9c\x08\0\x12\x03x)R\n\xf5\x03\n\x04\x04\0\x02\n\x12\x06\x81\
4596    \x01\x02\x86\x01\x04\x1a\xe4\x03\x20Output\x20only.\x20The\x20names\x20o\
4597    f\x20the\x20destination\x20backups\x20being\x20created\x20by\x20copying\
4598    \n\x20this\x20source\x20backup.\x20The\x20backup\x20names\x20are\x20of\
4599    \x20the\x20form\n\x20`projects/<project>/instances/<instance>/backups/<b\
4600    ackup>`.\n\x20Referencing\x20backups\x20may\x20exist\x20in\x20different\
4601    \x20instances.\x20The\x20existence\x20of\n\x20any\x20referencing\x20back\
4602    up\x20prevents\x20the\x20backup\x20from\x20being\x20deleted.\x20When\x20\
4603    the\n\x20copy\x20operation\x20is\x20done\x20(either\x20successfully\x20c\
4604    ompleted\x20or\x20cancelled\x20or\x20the\n\x20destination\x20backup\x20i\
4605    s\x20deleted),\x20the\x20reference\x20to\x20the\x20backup\x20is\x20remov\
4606    ed.\n\n\r\n\x05\x04\0\x02\n\x04\x12\x04\x81\x01\x02\n\n\r\n\x05\x04\0\
4607    \x02\n\x05\x12\x04\x81\x01\x0b\x11\n\r\n\x05\x04\0\x02\n\x01\x12\x04\x81\
4608    \x01\x12%\n\r\n\x05\x04\0\x02\n\x03\x12\x04\x81\x01(*\n\x0f\n\x05\x04\0\
4609    \x02\n\x08\x12\x06\x81\x01+\x86\x01\x03\n\x10\n\x08\x04\0\x02\n\x08\x9c\
4610    \x08\0\x12\x04\x82\x01\x04-\n\x11\n\x07\x04\0\x02\n\x08\x9f\x08\x12\x06\
4611    \x83\x01\x04\x85\x01\x05\n\xcd\x02\n\x04\x04\0\x02\x0b\x12\x04\x8d\x01\
4612    \x02]\x1a\xbe\x02\x20Output\x20only.\x20The\x20max\x20allowed\x20expirat\
4613    ion\x20time\x20of\x20the\x20backup,\x20with\n\x20microseconds\x20granula\
4614    rity.\x20A\x20backup's\x20expiration\x20time\x20can\x20be\x20configured\
4615    \x20in\n\x20multiple\x20APIs:\x20CreateBackup,\x20UpdateBackup,\x20CopyB\
4616    ackup.\x20When\x20updating\x20or\n\x20copying\x20an\x20existing\x20backu\
4617    p,\x20the\x20expiration\x20time\x20specified\x20must\x20be\n\x20less\x20\
4618    than\x20`Backup.max_expire_time`.\n\n\r\n\x05\x04\0\x02\x0b\x06\x12\x04\
4619    \x8d\x01\x02\x1b\n\r\n\x05\x04\0\x02\x0b\x01\x12\x04\x8d\x01\x1c+\n\r\n\
4620    \x05\x04\0\x02\x0b\x03\x12\x04\x8d\x01.0\n\r\n\x05\x04\0\x02\x0b\x08\x12\
4621    \x04\x8d\x011\\\n\x10\n\x08\x04\0\x02\x0b\x08\x9c\x08\0\x12\x04\x8d\x012\
4622    [\nl\n\x02\x04\x01\x12\x06\x91\x01\0\xad\x01\x01\x1a^\x20The\x20request\
4623    \x20for\x20[CreateBackup][google.spanner.admin.database.v1.DatabaseAdmin\
4624    .CreateBackup].\n\n\x0b\n\x03\x04\x01\x01\x12\x04\x91\x01\x08\x1b\n\xe3\
4625    \x02\n\x04\x04\x01\x02\0\x12\x06\x98\x01\x02\x9d\x01\x04\x1a\xd2\x02\x20\
4626    Required.\x20The\x20name\x20of\x20the\x20instance\x20in\x20which\x20the\
4627    \x20backup\x20will\x20be\n\x20created.\x20This\x20must\x20be\x20the\x20s\
4628    ame\x20instance\x20that\x20contains\x20the\x20database\x20the\n\x20backu\
4629    p\x20will\x20be\x20created\x20from.\x20The\x20backup\x20will\x20be\x20st\
4630    ored\x20in\x20the\n\x20location(s)\x20specified\x20in\x20the\x20instance\
4631    \x20configuration\x20of\x20this\n\x20instance.\x20Values\x20are\x20of\
4632    \x20the\x20form\n\x20`projects/<project>/instances/<instance>`.\n\n\r\n\
4633    \x05\x04\x01\x02\0\x05\x12\x04\x98\x01\x02\x08\n\r\n\x05\x04\x01\x02\0\
4634    \x01\x12\x04\x98\x01\t\x0f\n\r\n\x05\x04\x01\x02\0\x03\x12\x04\x98\x01\
4635    \x12\x13\n\x0f\n\x05\x04\x01\x02\0\x08\x12\x06\x98\x01\x14\x9d\x01\x03\n\
4636    \x10\n\x08\x04\x01\x02\0\x08\x9c\x08\0\x12\x04\x99\x01\x04*\n\x11\n\x07\
4637    \x04\x01\x02\0\x08\x9f\x08\x12\x06\x9a\x01\x04\x9c\x01\x05\n\xcb\x01\n\
4638    \x04\x04\x01\x02\x01\x12\x04\xa2\x01\x02@\x1a\xbc\x01\x20Required.\x20Th\
4639    e\x20id\x20of\x20the\x20backup\x20to\x20be\x20created.\x20The\x20`backup\
4640    _id`\x20appended\x20to\n\x20`parent`\x20forms\x20the\x20full\x20backup\
4641    \x20name\x20of\x20the\x20form\n\x20`projects/<project>/instances/<instan\
4642    ce>/backups/<backup_id>`.\n\n\r\n\x05\x04\x01\x02\x01\x05\x12\x04\xa2\
4643    \x01\x02\x08\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xa2\x01\t\x12\n\r\n\
4644    \x05\x04\x01\x02\x01\x03\x12\x04\xa2\x01\x15\x16\n\r\n\x05\x04\x01\x02\
4645    \x01\x08\x12\x04\xa2\x01\x17?\n\x10\n\x08\x04\x01\x02\x01\x08\x9c\x08\0\
4646    \x12\x04\xa2\x01\x18>\n/\n\x04\x04\x01\x02\x02\x12\x04\xa5\x01\x02=\x1a!\
4647    \x20Required.\x20The\x20backup\x20to\x20create.\n\n\r\n\x05\x04\x01\x02\
4648    \x02\x06\x12\x04\xa5\x01\x02\x08\n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\
4649    \xa5\x01\t\x0f\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\xa5\x01\x12\x13\n\r\
4650    \n\x05\x04\x01\x02\x02\x08\x12\x04\xa5\x01\x14<\n\x10\n\x08\x04\x01\x02\
4651    \x02\x08\x9c\x08\0\x12\x04\xa5\x01\x15;\n\xce\x02\n\x04\x04\x01\x02\x03\
4652    \x12\x04\xac\x01\x02^\x1a\xbf\x02\x20Optional.\x20The\x20encryption\x20c\
4653    onfiguration\x20used\x20to\x20encrypt\x20the\x20backup.\x20If\x20this\
4654    \x20field\x20is\n\x20not\x20specified,\x20the\x20backup\x20will\x20use\
4655    \x20the\x20same\n\x20encryption\x20configuration\x20as\x20the\x20databas\
4656    e\x20by\x20default,\x20namely\n\x20[encryption_type][google.spanner.admi\
4657    n.database.v1.CreateBackupEncryptionConfig.encryption_type]\x20=\n\x20`U\
4658    SE_DATABASE_ENCRYPTION`.\n\n\r\n\x05\x04\x01\x02\x03\x06\x12\x04\xac\x01\
4659    \x02\x1e\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\xac\x01\x1f0\n\r\n\x05\
4660    \x04\x01\x02\x03\x03\x12\x04\xac\x0134\n\r\n\x05\x04\x01\x02\x03\x08\x12\
4661    \x04\xac\x015]\n\x10\n\x08\x04\x01\x02\x03\x08\x9c\x08\0\x12\x04\xac\x01\
4662    6\\\n\x89\x01\n\x02\x04\x02\x12\x06\xb1\x01\0\xcd\x01\x01\x1a{\x20Metada\
4663    ta\x20type\x20for\x20the\x20operation\x20returned\x20by\n\x20[CreateBack\
4664    up][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup].\n\n\
4665    \x0b\n\x03\x04\x02\x01\x12\x04\xb1\x01\x08\x1c\n7\n\x04\x04\x02\x02\0\
4666    \x12\x06\xb3\x01\x02\xb5\x01\x16\x1a'\x20The\x20name\x20of\x20the\x20bac\
4667    kup\x20being\x20created.\n\n\r\n\x05\x04\x02\x02\0\x05\x12\x04\xb3\x01\
4668    \x02\x08\n\r\n\x05\x04\x02\x02\0\x01\x12\x04\xb3\x01\t\r\n\r\n\x05\x04\
4669    \x02\x02\0\x03\x12\x04\xb3\x01\x10\x11\n\x0f\n\x05\x04\x02\x02\0\x08\x12\
4670    \x06\xb3\x01\x12\xb5\x01\x15\n\x11\n\x07\x04\x02\x02\0\x08\x9f\x08\x12\
4671    \x06\xb3\x01\x13\xb5\x01\x14\nF\n\x04\x04\x02\x02\x01\x12\x06\xb8\x01\
4672    \x02\xba\x01\x1a\x1a6\x20The\x20name\x20of\x20the\x20database\x20the\x20\
4673    backup\x20is\x20created\x20from.\n\n\r\n\x05\x04\x02\x02\x01\x05\x12\x04\
4674    \xb8\x01\x02\x08\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xb8\x01\t\x11\n\r\
4675    \n\x05\x04\x02\x02\x01\x03\x12\x04\xb8\x01\x14\x15\n\x0f\n\x05\x04\x02\
4676    \x02\x01\x08\x12\x06\xb8\x01\x16\xba\x01\x19\n\x11\n\x07\x04\x02\x02\x01\
4677    \x08\x9f\x08\x12\x06\xb8\x01\x17\xba\x01\x18\n{\n\x04\x04\x02\x02\x02\
4678    \x12\x04\xbe\x01\x02!\x1am\x20The\x20progress\x20of\x20the\n\x20[CreateB\
4679    ackup][google.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]\x20o\
4680    peration.\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\x04\xbe\x01\x02\x13\n\r\n\
4681    \x05\x04\x02\x02\x02\x01\x12\x04\xbe\x01\x14\x1c\n\r\n\x05\x04\x02\x02\
4682    \x02\x03\x12\x04\xbe\x01\x1f\x20\n\x87\x06\n\x04\x04\x02\x02\x03\x12\x04\
4683    \xcc\x01\x02,\x1a\xf8\x05\x20The\x20time\x20at\x20which\x20cancellation\
4684    \x20of\x20this\x20operation\x20was\x20received.\n\x20[Operations.CancelO\
4685    peration][google.longrunning.Operations.CancelOperation]\n\x20starts\x20\
4686    asynchronous\x20cancellation\x20on\x20a\x20long-running\x20operation.\
4687    \x20The\x20server\n\x20makes\x20a\x20best\x20effort\x20to\x20cancel\x20t\
4688    he\x20operation,\x20but\x20success\x20is\x20not\x20guaranteed.\n\x20Clie\
4689    nts\x20can\x20use\n\x20[Operations.GetOperation][google.longrunning.Oper\
4690    ations.GetOperation]\x20or\n\x20other\x20methods\x20to\x20check\x20wheth\
4691    er\x20the\x20cancellation\x20succeeded\x20or\x20whether\x20the\n\x20oper\
4692    ation\x20completed\x20despite\x20cancellation.\x20On\x20successful\x20ca\
4693    ncellation,\n\x20the\x20operation\x20is\x20not\x20deleted;\x20instead,\
4694    \x20it\x20becomes\x20an\x20operation\x20with\n\x20an\x20[Operation.error\
4695    ][google.longrunning.Operation.error]\x20value\x20with\x20a\n\x20[google\
4696    .rpc.Status.code][google.rpc.Status.code]\x20of\x201,\n\x20corresponding\
4697    \x20to\x20`Code.CANCELLED`.\n\n\r\n\x05\x04\x02\x02\x03\x06\x12\x04\xcc\
4698    \x01\x02\x1b\n\r\n\x05\x04\x02\x02\x03\x01\x12\x04\xcc\x01\x1c'\n\r\n\
4699    \x05\x04\x02\x02\x03\x03\x12\x04\xcc\x01*+\nh\n\x02\x04\x03\x12\x06\xd0\
4700    \x01\0\xf9\x01\x01\x1aZ\x20The\x20request\x20for\x20[CopyBackup][google.\
4701    spanner.admin.database.v1.DatabaseAdmin.CopyBackup].\n\n\x0b\n\x03\x04\
4702    \x03\x01\x12\x04\xd0\x01\x08\x19\n\xa8\x01\n\x04\x04\x03\x02\0\x12\x06\
4703    \xd3\x01\x02\xd8\x01\x04\x1a\x97\x01\x20Required.\x20The\x20name\x20of\
4704    \x20the\x20destination\x20instance\x20that\x20will\x20contain\x20the\x20\
4705    backup\x20copy.\n\x20Values\x20are\x20of\x20the\x20form:\x20`projects/<p\
4706    roject>/instances/<instance>`.\n\n\r\n\x05\x04\x03\x02\0\x05\x12\x04\xd3\
4707    \x01\x02\x08\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xd3\x01\t\x0f\n\r\n\x05\
4708    \x04\x03\x02\0\x03\x12\x04\xd3\x01\x12\x13\n\x0f\n\x05\x04\x03\x02\0\x08\
4709    \x12\x06\xd3\x01\x14\xd8\x01\x03\n\x10\n\x08\x04\x03\x02\0\x08\x9c\x08\0\
4710    \x12\x04\xd4\x01\x04*\n\x11\n\x07\x04\x03\x02\0\x08\x9f\x08\x12\x06\xd5\
4711    \x01\x04\xd7\x01\x05\n\xbe\x01\n\x04\x04\x03\x02\x01\x12\x04\xdd\x01\x02\
4712    @\x1a\xaf\x01\x20Required.\x20The\x20id\x20of\x20the\x20backup\x20copy.\
4713    \n\x20The\x20`backup_id`\x20appended\x20to\x20`parent`\x20forms\x20the\
4714    \x20full\x20backup_uri\x20of\x20the\x20form\n\x20`projects/<project>/ins\
4715    tances/<instance>/backups/<backup>`.\n\n\r\n\x05\x04\x03\x02\x01\x05\x12\
4716    \x04\xdd\x01\x02\x08\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\xdd\x01\t\x12\
4717    \n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xdd\x01\x15\x16\n\r\n\x05\x04\x03\
4718    \x02\x01\x08\x12\x04\xdd\x01\x17?\n\x10\n\x08\x04\x03\x02\x01\x08\x9c\
4719    \x08\0\x12\x04\xdd\x01\x18>\n\xd5\x02\n\x04\x04\x03\x02\x02\x12\x06\xe5\
4720    \x01\x02\xea\x01\x04\x1a\xc4\x02\x20Required.\x20The\x20source\x20backup\
4721    \x20to\x20be\x20copied.\n\x20The\x20source\x20backup\x20needs\x20to\x20b\
4722    e\x20in\x20READY\x20state\x20for\x20it\x20to\x20be\x20copied.\n\x20Once\
4723    \x20CopyBackup\x20is\x20in\x20progress,\x20the\x20source\x20backup\x20ca\
4724    nnot\x20be\x20deleted\x20or\n\x20cleaned\x20up\x20on\x20expiration\x20un\
4725    til\x20CopyBackup\x20is\x20finished.\n\x20Values\x20are\x20of\x20the\x20\
4726    form:\n\x20`projects/<project>/instances/<instance>/backups/<backup>`.\n\
4727    \n\r\n\x05\x04\x03\x02\x02\x05\x12\x04\xe5\x01\x02\x08\n\r\n\x05\x04\x03\
4728    \x02\x02\x01\x12\x04\xe5\x01\t\x16\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\
4729    \xe5\x01\x19\x1a\n\x0f\n\x05\x04\x03\x02\x02\x08\x12\x06\xe5\x01\x1b\xea\
4730    \x01\x03\n\x10\n\x08\x04\x03\x02\x02\x08\x9c\x08\0\x12\x04\xe6\x01\x04*\
4731    \n\x11\n\x07\x04\x03\x02\x02\x08\x9f\x08\x12\x06\xe7\x01\x04\xe9\x01\x05\
4732    \n\xdc\x02\n\x04\x04\x03\x02\x03\x12\x04\xf1\x01\x02U\x1a\xcd\x02\x20Req\
4733    uired.\x20The\x20expiration\x20time\x20of\x20the\x20backup\x20in\x20micr\
4734    osecond\x20granularity.\n\x20The\x20expiration\x20time\x20must\x20be\x20\
4735    at\x20least\x206\x20hours\x20and\x20at\x20most\x20366\x20days\n\x20from\
4736    \x20the\x20`create_time`\x20of\x20the\x20source\x20backup.\x20Once\x20th\
4737    e\x20`expire_time`\x20has\n\x20passed,\x20the\x20backup\x20is\x20eligibl\
4738    e\x20to\x20be\x20automatically\x20deleted\x20by\x20Cloud\x20Spanner\n\
4739    \x20to\x20free\x20the\x20resources\x20used\x20by\x20the\x20backup.\n\n\r\
4740    \n\x05\x04\x03\x02\x03\x06\x12\x04\xf1\x01\x02\x1b\n\r\n\x05\x04\x03\x02\
4741    \x03\x01\x12\x04\xf1\x01\x1c'\n\r\n\x05\x04\x03\x02\x03\x03\x12\x04\xf1\
4742    \x01*+\n\r\n\x05\x04\x03\x02\x03\x08\x12\x04\xf1\x01,T\n\x10\n\x08\x04\
4743    \x03\x02\x03\x08\x9c\x08\0\x12\x04\xf1\x01-S\n\xe1\x02\n\x04\x04\x03\x02\
4744    \x04\x12\x04\xf8\x01\x02\\\x1a\xd2\x02\x20Optional.\x20The\x20encryption\
4745    \x20configuration\x20used\x20to\x20encrypt\x20the\x20backup.\x20If\x20th\
4746    is\x20field\x20is\n\x20not\x20specified,\x20the\x20backup\x20will\x20use\
4747    \x20the\x20same\n\x20encryption\x20configuration\x20as\x20the\x20source\
4748    \x20backup\x20by\x20default,\x20namely\n\x20[encryption_type][google.spa\
4749    nner.admin.database.v1.CopyBackupEncryptionConfig.encryption_type]\x20=\
4750    \n\x20`USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`.\n\n\r\n\x05\x04\x03\x02\
4751    \x04\x06\x12\x04\xf8\x01\x02\x1c\n\r\n\x05\x04\x03\x02\x04\x01\x12\x04\
4752    \xf8\x01\x1d.\n\r\n\x05\x04\x03\x02\x04\x03\x12\x04\xf8\x0112\n\r\n\x05\
4753    \x04\x03\x02\x04\x08\x12\x04\xf8\x013[\n\x10\n\x08\x04\x03\x02\x04\x08\
4754    \x9c\x08\0\x12\x04\xf8\x014Z\n\x99\x01\n\x02\x04\x04\x12\x06\xfd\x01\0\
4755    \x9d\x02\x01\x1a\x8a\x01\x20Metadata\x20type\x20for\x20the\x20google.lon\
4756    grunning.Operation\x20returned\x20by\n\x20[CopyBackup][google.spanner.ad\
4757    min.database.v1.DatabaseAdmin.CopyBackup].\n\n\x0b\n\x03\x04\x04\x01\x12\
4758    \x04\xfd\x01\x08\x1a\n\xa8\x01\n\x04\x04\x04\x02\0\x12\x06\x81\x02\x02\
4759    \x83\x02\x16\x1a\x97\x01\x20The\x20name\x20of\x20the\x20backup\x20being\
4760    \x20created\x20through\x20the\x20copy\x20operation.\n\x20Values\x20are\
4761    \x20of\x20the\x20form\n\x20`projects/<project>/instances/<instance>/back\
4762    ups/<backup>`.\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\x81\x02\x02\x08\n\r\
4763    \n\x05\x04\x04\x02\0\x01\x12\x04\x81\x02\t\r\n\r\n\x05\x04\x04\x02\0\x03\
4764    \x12\x04\x81\x02\x10\x11\n\x0f\n\x05\x04\x04\x02\0\x08\x12\x06\x81\x02\
4765    \x12\x83\x02\x15\n\x11\n\x07\x04\x04\x02\0\x08\x9f\x08\x12\x06\x81\x02\
4766    \x13\x83\x02\x14\n\x9b\x01\n\x04\x04\x04\x02\x01\x12\x06\x88\x02\x02\x8a\
4767    \x02\x1f\x1a\x8a\x01\x20The\x20name\x20of\x20the\x20source\x20backup\x20\
4768    that\x20is\x20being\x20copied.\n\x20Values\x20are\x20of\x20the\x20form\n\
4769    \x20`projects/<project>/instances/<instance>/backups/<backup>`.\n\n\r\n\
4770    \x05\x04\x04\x02\x01\x05\x12\x04\x88\x02\x02\x08\n\r\n\x05\x04\x04\x02\
4771    \x01\x01\x12\x04\x88\x02\t\x16\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x88\
4772    \x02\x19\x1a\n\x0f\n\x05\x04\x04\x02\x01\x08\x12\x06\x88\x02\x1b\x8a\x02\
4773    \x1e\n\x11\n\x07\x04\x04\x02\x01\x08\x9f\x08\x12\x06\x88\x02\x1c\x8a\x02\
4774    \x1d\nw\n\x04\x04\x04\x02\x02\x12\x04\x8e\x02\x02!\x1ai\x20The\x20progre\
4775    ss\x20of\x20the\n\x20[CopyBackup][google.spanner.admin.database.v1.Datab\
4776    aseAdmin.CopyBackup]\x20operation.\n\n\r\n\x05\x04\x04\x02\x02\x06\x12\
4777    \x04\x8e\x02\x02\x13\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\x8e\x02\x14\
4778    \x1c\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\x8e\x02\x1f\x20\n\x8d\x06\n\
4779    \x04\x04\x04\x02\x03\x12\x04\x9c\x02\x02,\x1a\xfe\x05\x20The\x20time\x20\
4780    at\x20which\x20cancellation\x20of\x20CopyBackup\x20operation\x20was\x20r\
4781    eceived.\n\x20[Operations.CancelOperation][google.longrunning.Operations\
4782    .CancelOperation]\n\x20starts\x20asynchronous\x20cancellation\x20on\x20a\
4783    \x20long-running\x20operation.\x20The\x20server\n\x20makes\x20a\x20best\
4784    \x20effort\x20to\x20cancel\x20the\x20operation,\x20but\x20success\x20is\
4785    \x20not\x20guaranteed.\n\x20Clients\x20can\x20use\n\x20[Operations.GetOp\
4786    eration][google.longrunning.Operations.GetOperation]\x20or\n\x20other\
4787    \x20methods\x20to\x20check\x20whether\x20the\x20cancellation\x20succeede\
4788    d\x20or\x20whether\x20the\n\x20operation\x20completed\x20despite\x20canc\
4789    ellation.\x20On\x20successful\x20cancellation,\n\x20the\x20operation\x20\
4790    is\x20not\x20deleted;\x20instead,\x20it\x20becomes\x20an\x20operation\
4791    \x20with\n\x20an\x20[Operation.error][google.longrunning.Operation.error\
4792    ]\x20value\x20with\x20a\n\x20[google.rpc.Status.code][google.rpc.Status.\
4793    code]\x20of\x201,\n\x20corresponding\x20to\x20`Code.CANCELLED`.\n\n\r\n\
4794    \x05\x04\x04\x02\x03\x06\x12\x04\x9c\x02\x02\x1b\n\r\n\x05\x04\x04\x02\
4795    \x03\x01\x12\x04\x9c\x02\x1c'\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\x9c\
4796    \x02*+\nl\n\x02\x04\x05\x12\x06\xa0\x02\0\xad\x02\x01\x1a^\x20The\x20req\
4797    uest\x20for\x20[UpdateBackup][google.spanner.admin.database.v1.DatabaseA\
4798    dmin.UpdateBackup].\n\n\x0b\n\x03\x04\x05\x01\x12\x04\xa0\x02\x08\x1b\n\
4799    \xf1\x01\n\x04\x04\x05\x02\0\x12\x04\xa5\x02\x02=\x1a\xe2\x01\x20Require\
4800    d.\x20The\x20backup\x20to\x20update.\x20`backup.name`,\x20and\x20the\x20\
4801    fields\x20to\x20be\x20updated\n\x20as\x20specified\x20by\x20`update_mask\
4802    `\x20are\x20required.\x20Other\x20fields\x20are\x20ignored.\n\x20Update\
4803    \x20is\x20only\x20supported\x20for\x20the\x20following\x20fields:\n\x20\
4804    \x20*\x20`backup.expire_time`.\n\n\r\n\x05\x04\x05\x02\0\x06\x12\x04\xa5\
4805    \x02\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xa5\x02\t\x0f\n\r\n\x05\
4806    \x04\x05\x02\0\x03\x12\x04\xa5\x02\x12\x13\n\r\n\x05\x04\x05\x02\0\x08\
4807    \x12\x04\xa5\x02\x14<\n\x10\n\x08\x04\x05\x02\0\x08\x9c\x08\0\x12\x04\
4808    \xa5\x02\x15;\n\xd6\x02\n\x04\x04\x05\x02\x01\x12\x04\xac\x02\x02U\x1a\
4809    \xc7\x02\x20Required.\x20A\x20mask\x20specifying\x20which\x20fields\x20(\
4810    e.g.\x20`expire_time`)\x20in\x20the\n\x20Backup\x20resource\x20should\
4811    \x20be\x20updated.\x20This\x20mask\x20is\x20relative\x20to\x20the\x20Bac\
4812    kup\n\x20resource,\x20not\x20to\x20the\x20request\x20message.\x20The\x20\
4813    field\x20mask\x20must\x20always\x20be\n\x20specified;\x20this\x20prevent\
4814    s\x20any\x20future\x20fields\x20from\x20being\x20erased\x20accidentally\
4815    \n\x20by\x20clients\x20that\x20do\x20not\x20know\x20about\x20them.\n\n\r\
4816    \n\x05\x04\x05\x02\x01\x06\x12\x04\xac\x02\x02\x1b\n\r\n\x05\x04\x05\x02\
4817    \x01\x01\x12\x04\xac\x02\x1c'\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xac\
4818    \x02*+\n\r\n\x05\x04\x05\x02\x01\x08\x12\x04\xac\x02,T\n\x10\n\x08\x04\
4819    \x05\x02\x01\x08\x9c\x08\0\x12\x04\xac\x02-S\nf\n\x02\x04\x06\x12\x06\
4820    \xb0\x02\0\xba\x02\x01\x1aX\x20The\x20request\x20for\x20[GetBackup][goog\
4821    le.spanner.admin.database.v1.DatabaseAdmin.GetBackup].\n\n\x0b\n\x03\x04\
4822    \x06\x01\x12\x04\xb0\x02\x08\x18\n\x84\x01\n\x04\x04\x06\x02\0\x12\x06\
4823    \xb4\x02\x02\xb9\x02\x04\x1at\x20Required.\x20Name\x20of\x20the\x20backu\
4824    p.\n\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<project>/inst\
4825    ances/<instance>/backups/<backup>`.\n\n\r\n\x05\x04\x06\x02\0\x05\x12\
4826    \x04\xb4\x02\x02\x08\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xb4\x02\t\r\n\r\
4827    \n\x05\x04\x06\x02\0\x03\x12\x04\xb4\x02\x10\x11\n\x0f\n\x05\x04\x06\x02\
4828    \0\x08\x12\x06\xb4\x02\x12\xb9\x02\x03\n\x10\n\x08\x04\x06\x02\0\x08\x9c\
4829    \x08\0\x12\x04\xb5\x02\x04*\n\x11\n\x07\x04\x06\x02\0\x08\x9f\x08\x12\
4830    \x06\xb6\x02\x04\xb8\x02\x05\nl\n\x02\x04\x07\x12\x06\xbd\x02\0\xc7\x02\
4831    \x01\x1a^\x20The\x20request\x20for\x20[DeleteBackup][google.spanner.admi\
4832    n.database.v1.DatabaseAdmin.DeleteBackup].\n\n\x0b\n\x03\x04\x07\x01\x12\
4833    \x04\xbd\x02\x08\x1b\n\x8e\x01\n\x04\x04\x07\x02\0\x12\x06\xc1\x02\x02\
4834    \xc6\x02\x04\x1a~\x20Required.\x20Name\x20of\x20the\x20backup\x20to\x20d\
4835    elete.\n\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<project>/\
4836    instances/<instance>/backups/<backup>`.\n\n\r\n\x05\x04\x07\x02\0\x05\
4837    \x12\x04\xc1\x02\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xc1\x02\t\r\
4838    \n\r\n\x05\x04\x07\x02\0\x03\x12\x04\xc1\x02\x10\x11\n\x0f\n\x05\x04\x07\
4839    \x02\0\x08\x12\x06\xc1\x02\x12\xc6\x02\x03\n\x10\n\x08\x04\x07\x02\0\x08\
4840    \x9c\x08\0\x12\x04\xc2\x02\x04*\n\x11\n\x07\x04\x07\x02\0\x08\x9f\x08\
4841    \x12\x06\xc3\x02\x04\xc5\x02\x05\nj\n\x02\x04\x08\x12\x06\xca\x02\0\x82\
4842    \x03\x01\x1a\\\x20The\x20request\x20for\x20[ListBackups][google.spanner.\
4843    admin.database.v1.DatabaseAdmin.ListBackups].\n\n\x0b\n\x03\x04\x08\x01\
4844    \x12\x04\xca\x02\x08\x1a\n\x82\x01\n\x04\x04\x08\x02\0\x12\x06\xcd\x02\
4845    \x02\xd2\x02\x04\x1ar\x20Required.\x20The\x20instance\x20to\x20list\x20b\
4846    ackups\x20from.\x20\x20Values\x20are\x20of\x20the\n\x20form\x20`projects\
4847    /<project>/instances/<instance>`.\n\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\
4848    \xcd\x02\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xcd\x02\t\x0f\n\r\n\
4849    \x05\x04\x08\x02\0\x03\x12\x04\xcd\x02\x12\x13\n\x0f\n\x05\x04\x08\x02\0\
4850    \x08\x12\x06\xcd\x02\x14\xd2\x02\x03\n\x10\n\x08\x04\x08\x02\0\x08\x9c\
4851    \x08\0\x12\x04\xce\x02\x04*\n\x11\n\x07\x04\x08\x02\0\x08\x9f\x08\x12\
4852    \x06\xcf\x02\x04\xd1\x02\x05\n\xea\x0c\n\x04\x04\x08\x02\x01\x12\x04\xf7\
4853    \x02\x02\x14\x1a\xdb\x0c\x20An\x20expression\x20that\x20filters\x20the\
4854    \x20list\x20of\x20returned\x20backups.\n\n\x20A\x20filter\x20expression\
4855    \x20consists\x20of\x20a\x20field\x20name,\x20a\x20comparison\x20operator\
4856    ,\x20and\x20a\n\x20value\x20for\x20filtering.\n\x20The\x20value\x20must\
4857    \x20be\x20a\x20string,\x20a\x20number,\x20or\x20a\x20boolean.\x20The\x20\
4858    comparison\x20operator\n\x20must\x20be\x20one\x20of:\x20`<`,\x20`>`,\x20\
4859    `<=`,\x20`>=`,\x20`!=`,\x20`=`,\x20or\x20`:`.\n\x20Colon\x20`:`\x20is\
4860    \x20the\x20contains\x20operator.\x20Filter\x20rules\x20are\x20not\x20cas\
4861    e\x20sensitive.\n\n\x20The\x20following\x20fields\x20in\x20the\x20[Backu\
4862    p][google.spanner.admin.database.v1.Backup]\x20are\x20eligible\x20for\
4863    \x20filtering:\n\n\x20\x20\x20*\x20`name`\n\x20\x20\x20*\x20`database`\n\
4864    \x20\x20\x20*\x20`state`\n\x20\x20\x20*\x20`create_time`\x20\x20(and\x20\
4865    values\x20are\x20of\x20the\x20format\x20YYYY-MM-DDTHH:MM:SSZ)\n\x20\x20\
4866    \x20*\x20`expire_time`\x20\x20(and\x20values\x20are\x20of\x20the\x20form\
4867    at\x20YYYY-MM-DDTHH:MM:SSZ)\n\x20\x20\x20*\x20`version_time`\x20(and\x20\
4868    values\x20are\x20of\x20the\x20format\x20YYYY-MM-DDTHH:MM:SSZ)\n\x20\x20\
4869    \x20*\x20`size_bytes`\n\n\x20You\x20can\x20combine\x20multiple\x20expres\
4870    sions\x20by\x20enclosing\x20each\x20expression\x20in\n\x20parentheses.\
4871    \x20By\x20default,\x20expressions\x20are\x20combined\x20with\x20AND\x20l\
4872    ogic,\x20but\n\x20you\x20can\x20specify\x20AND,\x20OR,\x20and\x20NOT\x20\
4873    logic\x20explicitly.\n\n\x20Here\x20are\x20a\x20few\x20examples:\n\n\x20\
4874    \x20\x20*\x20`name:Howl`\x20-\x20The\x20backup's\x20name\x20contains\x20\
4875    the\x20string\x20\"howl\".\n\x20\x20\x20*\x20`database:prod`\n\x20\x20\
4876    \x20\x20\x20\x20\x20\x20\x20\x20-\x20The\x20database's\x20name\x20contai\
4877    ns\x20the\x20string\x20\"prod\".\n\x20\x20\x20*\x20`state:CREATING`\x20-\
4878    \x20The\x20backup\x20is\x20pending\x20creation.\n\x20\x20\x20*\x20`state\
4879    :READY`\x20-\x20The\x20backup\x20is\x20fully\x20created\x20and\x20ready\
4880    \x20for\x20use.\n\x20\x20\x20*\x20`(name:howl)\x20AND\x20(create_time\
4881    \x20<\x20\\\"2018-03-28T14:50:00Z\\\")`\n\x20\x20\x20\x20\x20\x20\x20\
4882    \x20\x20\x20-\x20The\x20backup\x20name\x20contains\x20the\x20string\x20\
4883    \"howl\"\x20and\x20`create_time`\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\
4884    \x20\x20\x20\x20\x20of\x20the\x20backup\x20is\x20before\x202018-03-28T14\
4885    :50:00Z.\n\x20\x20\x20*\x20`expire_time\x20<\x20\\\"2018-03-28T14:50:00Z\
4886    \\\"`\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20The\x20backup\x20`ex\
4887    pire_time`\x20is\x20before\x202018-03-28T14:50:00Z.\n\x20\x20\x20*\x20`s\
4888    ize_bytes\x20>\x2010000000000`\x20-\x20The\x20backup's\x20size\x20is\x20\
4889    greater\x20than\x2010GB\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xf7\x02\
4890    \x02\x08\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xf7\x02\t\x0f\n\r\n\x05\
4891    \x04\x08\x02\x01\x03\x12\x04\xf7\x02\x12\x13\n\x84\x01\n\x04\x04\x08\x02\
4892    \x02\x12\x04\xfb\x02\x02\x16\x1av\x20Number\x20of\x20backups\x20to\x20be\
4893    \x20returned\x20in\x20the\x20response.\x20If\x200\x20or\n\x20less,\x20de\
4894    faults\x20to\x20the\x20server's\x20maximum\x20allowed\x20page\x20size.\n\
4895    \n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xfb\x02\x02\x07\n\r\n\x05\x04\x08\
4896    \x02\x02\x01\x12\x04\xfb\x02\x08\x11\n\r\n\x05\x04\x08\x02\x02\x03\x12\
4897    \x04\xfb\x02\x14\x15\n\xa4\x02\n\x04\x04\x08\x02\x03\x12\x04\x81\x03\x02\
4898    \x18\x1a\x95\x02\x20If\x20non-empty,\x20`page_token`\x20should\x20contai\
4899    n\x20a\n\x20[next_page_token][google.spanner.admin.database.v1.ListBacku\
4900    psResponse.next_page_token]\x20from\x20a\n\x20previous\x20[ListBackupsRe\
4901    sponse][google.spanner.admin.database.v1.ListBackupsResponse]\x20to\x20t\
4902    he\x20same\x20`parent`\x20and\x20with\x20the\x20same\n\x20`filter`.\n\n\
4903    \r\n\x05\x04\x08\x02\x03\x05\x12\x04\x81\x03\x02\x08\n\r\n\x05\x04\x08\
4904    \x02\x03\x01\x12\x04\x81\x03\t\x13\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\
4905    \x81\x03\x16\x17\nk\n\x02\x04\t\x12\x06\x85\x03\0\x8e\x03\x01\x1a]\x20Th\
4906    e\x20response\x20for\x20[ListBackups][google.spanner.admin.database.v1.D\
4907    atabaseAdmin.ListBackups].\n\n\x0b\n\x03\x04\t\x01\x12\x04\x85\x03\x08\
4908    \x1b\n\x9f\x01\n\x04\x04\t\x02\0\x12\x04\x88\x03\x02\x1e\x1a\x90\x01\x20\
4909    The\x20list\x20of\x20matching\x20backups.\x20Backups\x20returned\x20are\
4910    \x20ordered\x20by\x20`create_time`\n\x20in\x20descending\x20order,\x20st\
4911    arting\x20from\x20the\x20most\x20recent\x20`create_time`.\n\n\r\n\x05\
4912    \x04\t\x02\0\x04\x12\x04\x88\x03\x02\n\n\r\n\x05\x04\t\x02\0\x06\x12\x04\
4913    \x88\x03\x0b\x11\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x88\x03\x12\x19\n\r\n\
4914    \x05\x04\t\x02\0\x03\x12\x04\x88\x03\x1c\x1d\n\xb6\x01\n\x04\x04\t\x02\
4915    \x01\x12\x04\x8d\x03\x02\x1d\x1a\xa7\x01\x20`next_page_token`\x20can\x20\
4916    be\x20sent\x20in\x20a\x20subsequent\n\x20[ListBackups][google.spanner.ad\
4917    min.database.v1.DatabaseAdmin.ListBackups]\x20call\x20to\x20fetch\x20mor\
4918    e\n\x20of\x20the\x20matching\x20backups.\n\n\r\n\x05\x04\t\x02\x01\x05\
4919    \x12\x04\x8d\x03\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x8d\x03\t\
4920    \x18\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x8d\x03\x1b\x1c\n}\n\x02\x04\n\
4921    \x12\x06\x92\x03\0\xe9\x03\x01\x1ao\x20The\x20request\x20for\n\x20[ListB\
4922    ackupOperations][google.spanner.admin.database.v1.DatabaseAdmin.ListBack\
4923    upOperations].\n\n\x0b\n\x03\x04\n\x01\x12\x04\x92\x03\x08#\n\x85\x01\n\
4924    \x04\x04\n\x02\0\x12\x06\x95\x03\x02\x9a\x03\x04\x1au\x20Required.\x20Th\
4925    e\x20instance\x20of\x20the\x20backup\x20operations.\x20Values\x20are\x20\
4926    of\n\x20the\x20form\x20`projects/<project>/instances/<instance>`.\n\n\r\
4927    \n\x05\x04\n\x02\0\x05\x12\x04\x95\x03\x02\x08\n\r\n\x05\x04\n\x02\0\x01\
4928    \x12\x04\x95\x03\t\x0f\n\r\n\x05\x04\n\x02\0\x03\x12\x04\x95\x03\x12\x13\
4929    \n\x0f\n\x05\x04\n\x02\0\x08\x12\x06\x95\x03\x14\x9a\x03\x03\n\x10\n\x08\
4930    \x04\n\x02\0\x08\x9c\x08\0\x12\x04\x96\x03\x04*\n\x11\n\x07\x04\n\x02\0\
4931    \x08\x9f\x08\x12\x06\x97\x03\x04\x99\x03\x05\n\xc5\x1d\n\x04\x04\n\x02\
4932    \x01\x12\x04\xde\x03\x02\x14\x1a\xb6\x1d\x20An\x20expression\x20that\x20\
4933    filters\x20the\x20list\x20of\x20returned\x20backup\x20operations.\n\n\
4934    \x20A\x20filter\x20expression\x20consists\x20of\x20a\x20field\x20name,\
4935    \x20a\n\x20comparison\x20operator,\x20and\x20a\x20value\x20for\x20filter\
4936    ing.\n\x20The\x20value\x20must\x20be\x20a\x20string,\x20a\x20number,\x20\
4937    or\x20a\x20boolean.\x20The\x20comparison\x20operator\n\x20must\x20be\x20\
4938    one\x20of:\x20`<`,\x20`>`,\x20`<=`,\x20`>=`,\x20`!=`,\x20`=`,\x20or\x20`\
4939    :`.\n\x20Colon\x20`:`\x20is\x20the\x20contains\x20operator.\x20Filter\
4940    \x20rules\x20are\x20not\x20case\x20sensitive.\n\n\x20The\x20following\
4941    \x20fields\x20in\x20the\x20[operation][google.longrunning.Operation]\n\
4942    \x20are\x20eligible\x20for\x20filtering:\n\n\x20\x20\x20*\x20`name`\x20-\
4943    \x20The\x20name\x20of\x20the\x20long-running\x20operation\n\x20\x20\x20*\
4944    \x20`done`\x20-\x20False\x20if\x20the\x20operation\x20is\x20in\x20progre\
4945    ss,\x20else\x20true.\n\x20\x20\x20*\x20`metadata.@type`\x20-\x20the\x20t\
4946    ype\x20of\x20metadata.\x20For\x20example,\x20the\x20type\x20string\n\x20\
4947    \x20\x20\x20\x20\x20for\x20[CreateBackupMetadata][google.spanner.admin.d\
4948    atabase.v1.CreateBackupMetadata]\x20is\n\x20\x20\x20\x20\x20\x20`type.go\
4949    ogleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`.\n\
4950    \x20\x20\x20*\x20`metadata.<field_name>`\x20-\x20any\x20field\x20in\x20m\
4951    etadata.value.\n\x20\x20\x20\x20\x20\x20`metadata.@type`\x20must\x20be\
4952    \x20specified\x20first\x20if\x20filtering\x20on\x20metadata\n\x20\x20\
4953    \x20\x20\x20\x20fields.\n\x20\x20\x20*\x20`error`\x20-\x20Error\x20assoc\
4954    iated\x20with\x20the\x20long-running\x20operation.\n\x20\x20\x20*\x20`re\
4955    sponse.@type`\x20-\x20the\x20type\x20of\x20response.\n\x20\x20\x20*\x20`\
4956    response.<field_name>`\x20-\x20any\x20field\x20in\x20response.value.\n\n\
4957    \x20You\x20can\x20combine\x20multiple\x20expressions\x20by\x20enclosing\
4958    \x20each\x20expression\x20in\n\x20parentheses.\x20By\x20default,\x20expr\
4959    essions\x20are\x20combined\x20with\x20AND\x20logic,\x20but\n\x20you\x20c\
4960    an\x20specify\x20AND,\x20OR,\x20and\x20NOT\x20logic\x20explicitly.\n\n\
4961    \x20Here\x20are\x20a\x20few\x20examples:\n\n\x20\x20\x20*\x20`done:true`\
4962    \x20-\x20The\x20operation\x20is\x20complete.\n\x20\x20\x20*\x20`(metadat\
4963    a.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBacku\
4964    pMetadata)\x20AND`\x20\\\n\x20\x20\x20\x20\x20\x20`metadata.database:pro\
4965    d`\x20-\x20Returns\x20operations\x20where:\n\x20\x20\x20\x20\x20\x20*\
4966    \x20The\x20operation's\x20metadata\x20type\x20is\x20[CreateBackupMetadat\
4967    a][google.spanner.admin.database.v1.CreateBackupMetadata].\n\x20\x20\x20\
4968    \x20\x20\x20*\x20The\x20database\x20the\x20backup\x20was\x20taken\x20fro\
4969    m\x20has\x20a\x20name\x20containing\x20the\n\x20\x20\x20\x20\x20\x20stri\
4970    ng\x20\"prod\".\n\x20\x20\x20*\x20`(metadata.@type=type.googleapis.com/g\
4971    oogle.spanner.admin.database.v1.CreateBackupMetadata)\x20AND`\x20\\\n\
4972    \x20\x20\x20\x20\x20`(metadata.name:howl)\x20AND`\x20\\\n\x20\x20\x20\
4973    \x20\x20`(metadata.progress.start_time\x20<\x20\\\"2018-03-28T14:50:00Z\
4974    \\\")\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(error:*)`\x20-\x20Returns\x20\
4975    operations\x20where:\n\x20\x20\x20\x20\x20*\x20The\x20operation's\x20met\
4976    adata\x20type\x20is\x20[CreateBackupMetadata][google.spanner.admin.datab\
4977    ase.v1.CreateBackupMetadata].\n\x20\x20\x20\x20\x20*\x20The\x20backup\
4978    \x20name\x20contains\x20the\x20string\x20\"howl\".\n\x20\x20\x20\x20\x20\
4979    *\x20The\x20operation\x20started\x20before\x202018-03-28T14:50:00Z.\n\
4980    \x20\x20\x20\x20\x20*\x20The\x20operation\x20resulted\x20in\x20an\x20err\
4981    or.\n\x20\x20\x20*\x20`(metadata.@type=type.googleapis.com/google.spanne\
4982    r.admin.database.v1.CopyBackupMetadata)\x20AND`\x20\\\n\x20\x20\x20\x20\
4983    \x20`(metadata.source_backup:test)\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(\
4984    metadata.progress.start_time\x20<\x20\\\"2022-01-18T14:50:00Z\\\")\x20AN\
4985    D`\x20\\\n\x20\x20\x20\x20\x20`(error:*)`\x20-\x20Returns\x20operations\
4986    \x20where:\n\x20\x20\x20\x20\x20*\x20The\x20operation's\x20metadata\x20t\
4987    ype\x20is\x20[CopyBackupMetadata][google.spanner.admin.database.v1.CopyB\
4988    ackupMetadata].\n\x20\x20\x20\x20\x20*\x20The\x20source\x20backup\x20of\
4989    \x20the\x20copied\x20backup\x20name\x20contains\x20the\x20string\n\x20\
4990    \x20\x20\x20\x20\"test\".\n\x20\x20\x20\x20\x20*\x20The\x20operation\x20\
4991    started\x20before\x202022-01-18T14:50:00Z.\n\x20\x20\x20\x20\x20*\x20The\
4992    \x20operation\x20resulted\x20in\x20an\x20error.\n\x20\x20\x20*\x20`((met\
4993    adata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateB\
4994    ackupMetadata)\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(metadata.database:te\
4995    st_db))\x20OR`\x20\\\n\x20\x20\x20\x20\x20`((metadata.@type=type.googlea\
4996    pis.com/google.spanner.admin.database.v1.CopyBackupMetadata)\n\x20\x20\
4997    \x20\x20\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(metadata.source_backup:tes\
4998    t_bkp))\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(error:*)`\x20-\x20Returns\
4999    \x20operations\x20where:\n\x20\x20\x20\x20\x20*\x20The\x20operation's\
5000    \x20metadata\x20matches\x20either\x20of\x20criteria:\n\x20\x20\x20\x20\
5001    \x20\x20\x20*\x20The\x20operation's\x20metadata\x20type\x20is\x20[Create\
5002    BackupMetadata][google.spanner.admin.database.v1.CreateBackupMetadata]\
5003    \x20AND\x20the\n\x20\x20\x20\x20\x20\x20\x20database\x20the\x20backup\
5004    \x20was\x20taken\x20from\x20has\x20name\x20containing\x20string\n\x20\
5005    \x20\x20\x20\x20\x20\x20\"test_db\"\n\x20\x20\x20\x20\x20\x20\x20*\x20Th\
5006    e\x20operation's\x20metadata\x20type\x20is\x20[CopyBackupMetadata][googl\
5007    e.spanner.admin.database.v1.CopyBackupMetadata]\x20AND\x20the\n\x20\x20\
5008    \x20\x20\x20\x20\x20backup\x20the\x20backup\x20was\x20copied\x20from\x20\
5009    has\x20name\x20containing\x20string\n\x20\x20\x20\x20\x20\x20\x20\"test_\
5010    bkp\"\n\x20\x20\x20\x20\x20*\x20The\x20operation\x20resulted\x20in\x20an\
5011    \x20error.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xde\x03\x02\x08\n\r\n\
5012    \x05\x04\n\x02\x01\x01\x12\x04\xde\x03\t\x0f\n\r\n\x05\x04\n\x02\x01\x03\
5013    \x12\x04\xde\x03\x12\x13\n\x87\x01\n\x04\x04\n\x02\x02\x12\x04\xe2\x03\
5014    \x02\x16\x1ay\x20Number\x20of\x20operations\x20to\x20be\x20returned\x20i\
5015    n\x20the\x20response.\x20If\x200\x20or\n\x20less,\x20defaults\x20to\x20t\
5016    he\x20server's\x20maximum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\n\
5017    \x02\x02\x05\x12\x04\xe2\x03\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\
5018    \xe2\x03\x08\x11\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xe2\x03\x14\x15\n\
5019    \xbf\x02\n\x04\x04\n\x02\x03\x12\x04\xe8\x03\x02\x18\x1a\xb0\x02\x20If\
5020    \x20non-empty,\x20`page_token`\x20should\x20contain\x20a\n\x20[next_page\
5021    _token][google.spanner.admin.database.v1.ListBackupOperationsResponse.ne\
5022    xt_page_token]\n\x20from\x20a\x20previous\x20[ListBackupOperationsRespon\
5023    se][google.spanner.admin.database.v1.ListBackupOperationsResponse]\x20to\
5024    \x20the\n\x20same\x20`parent`\x20and\x20with\x20the\x20same\x20`filter`.\
5025    \n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xe8\x03\x02\x08\n\r\n\x05\x04\n\
5026    \x02\x03\x01\x12\x04\xe8\x03\t\x13\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\
5027    \xe8\x03\x16\x17\n~\n\x02\x04\x0b\x12\x06\xed\x03\0\xfd\x03\x01\x1ap\x20\
5028    The\x20response\x20for\n\x20[ListBackupOperations][google.spanner.admin.\
5029    database.v1.DatabaseAdmin.ListBackupOperations].\n\n\x0b\n\x03\x04\x0b\
5030    \x01\x12\x04\xed\x03\x08$\n\xb5\x04\n\x04\x04\x0b\x02\0\x12\x04\xf7\x03\
5031    \x027\x1a\xa6\x04\x20The\x20list\x20of\x20matching\x20backup\x20[long-ru\
5032    nning\n\x20operations][google.longrunning.Operation].\x20Each\x20operati\
5033    on's\x20name\x20will\x20be\n\x20prefixed\x20by\x20the\x20backup's\x20nam\
5034    e.\x20The\x20operation's\n\x20[metadata][google.longrunning.Operation.me\
5035    tadata]\x20field\x20type\n\x20`metadata.type_url`\x20describes\x20the\
5036    \x20type\x20of\x20the\x20metadata.\x20Operations\x20returned\n\x20includ\
5037    e\x20those\x20that\x20are\x20pending\x20or\x20have\x20completed/failed/c\
5038    anceled\x20within\x20the\n\x20last\x207\x20days.\x20Operations\x20return\
5039    ed\x20are\x20ordered\x20by\n\x20`operation.metadata.value.progress.start\
5040    _time`\x20in\x20descending\x20order\x20starting\n\x20from\x20the\x20most\
5041    \x20recently\x20started\x20operation.\n\n\r\n\x05\x04\x0b\x02\0\x04\x12\
5042    \x04\xf7\x03\x02\n\n\r\n\x05\x04\x0b\x02\0\x06\x12\x04\xf7\x03\x0b'\n\r\
5043    \n\x05\x04\x0b\x02\0\x01\x12\x04\xf7\x03(2\n\r\n\x05\x04\x0b\x02\0\x03\
5044    \x12\x04\xf7\x0356\n\xc9\x01\n\x04\x04\x0b\x02\x01\x12\x04\xfc\x03\x02\
5045    \x1d\x1a\xba\x01\x20`next_page_token`\x20can\x20be\x20sent\x20in\x20a\
5046    \x20subsequent\n\x20[ListBackupOperations][google.spanner.admin.database\
5047    .v1.DatabaseAdmin.ListBackupOperations]\n\x20call\x20to\x20fetch\x20more\
5048    \x20of\x20the\x20matching\x20metadata.\n\n\r\n\x05\x04\x0b\x02\x01\x05\
5049    \x12\x04\xfc\x03\x02\x08\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xfc\x03\t\
5050    \x18\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xfc\x03\x1b\x1c\n+\n\x02\x04\
5051    \x0c\x12\x06\x80\x04\0\x95\x04\x01\x1a\x1d\x20Information\x20about\x20a\
5052    \x20backup.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\x80\x04\x08\x12\n%\n\x04\
5053    \x04\x0c\x02\0\x12\x06\x82\x04\x02\x84\x04\x18\x1a\x15\x20Name\x20of\x20\
5054    the\x20backup.\n\n\r\n\x05\x04\x0c\x02\0\x05\x12\x04\x82\x04\x02\x08\n\r\
5055    \n\x05\x04\x0c\x02\0\x01\x12\x04\x82\x04\t\x0f\n\r\n\x05\x04\x0c\x02\0\
5056    \x03\x12\x04\x82\x04\x12\x13\n\x0f\n\x05\x04\x0c\x02\0\x08\x12\x06\x82\
5057    \x04\x14\x84\x04\x17\n\x11\n\x07\x04\x0c\x02\0\x08\x9f\x08\x12\x06\x82\
5058    \x04\x15\x84\x04\x16\n\xc9\x02\n\x04\x04\x0c\x02\x01\x12\x04\x8b\x04\x02\
5059    -\x1a\xba\x02\x20The\x20backup\x20contains\x20an\x20externally\x20consis\
5060    tent\x20copy\x20of\x20`source_database`\x20at\n\x20the\x20timestamp\x20s\
5061    pecified\x20by\x20`version_time`.\x20If\x20the\n\x20[CreateBackup][googl\
5062    e.spanner.admin.database.v1.DatabaseAdmin.CreateBackup]\x20request\x20di\
5063    d\x20not\x20specify\n\x20`version_time`,\x20the\x20`version_time`\x20of\
5064    \x20the\x20backup\x20is\x20equivalent\x20to\x20the\n\x20`create_time`.\n\
5065    \n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\x8b\x04\x02\x1b\n\r\n\x05\x04\x0c\
5066    \x02\x01\x01\x12\x04\x8b\x04\x1c(\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\
5067    \x8b\x04+,\n\x7f\n\x04\x04\x0c\x02\x02\x12\x04\x8f\x04\x02,\x1aq\x20The\
5068    \x20time\x20the\x20[CreateBackup][google.spanner.admin.database.v1.Datab\
5069    aseAdmin.CreateBackup]\x20request\x20was\n\x20received.\n\n\r\n\x05\x04\
5070    \x0c\x02\x02\x06\x12\x04\x8f\x04\x02\x1b\n\r\n\x05\x04\x0c\x02\x02\x01\
5071    \x12\x04\x8f\x04\x1c'\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\x8f\x04*+\nC\
5072    \n\x04\x04\x0c\x02\x03\x12\x06\x92\x04\x02\x94\x04!\x1a3\x20Name\x20of\
5073    \x20the\x20database\x20the\x20backup\x20was\x20created\x20from.\n\n\r\n\
5074    \x05\x04\x0c\x02\x03\x05\x12\x04\x92\x04\x02\x08\n\r\n\x05\x04\x0c\x02\
5075    \x03\x01\x12\x04\x92\x04\t\x18\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\x92\
5076    \x04\x1b\x1c\n\x0f\n\x05\x04\x0c\x02\x03\x08\x12\x06\x92\x04\x1d\x94\x04\
5077    \x20\n\x11\n\x07\x04\x0c\x02\x03\x08\x9f\x08\x12\x06\x92\x04\x1e\x94\x04\
5078    \x1f\nB\n\x02\x04\r\x12\x06\x98\x04\0\xbb\x04\x01\x1a4\x20Encryption\x20\
5079    configuration\x20for\x20the\x20backup\x20to\x20create.\n\n\x0b\n\x03\x04\
5080    \r\x01\x12\x04\x98\x04\x08$\n2\n\x04\x04\r\x04\0\x12\x06\x9a\x04\x02\xab\
5081    \x04\x03\x1a\"\x20Encryption\x20types\x20for\x20the\x20backup.\n\n\r\n\
5082    \x05\x04\r\x04\0\x01\x12\x04\x9a\x04\x07\x15\n*\n\x06\x04\r\x04\0\x02\0\
5083    \x12\x04\x9c\x04\x04$\x1a\x1a\x20Unspecified.\x20Do\x20not\x20use.\n\n\
5084    \x0f\n\x07\x04\r\x04\0\x02\0\x01\x12\x04\x9c\x04\x04\x1f\n\x0f\n\x07\x04\
5085    \r\x04\0\x02\0\x02\x12\x04\x9c\x04\"#\n\xd0\x02\n\x06\x04\r\x04\0\x02\
5086    \x01\x12\x04\xa3\x04\x04\x20\x1a\xbf\x02\x20Use\x20the\x20same\x20encryp\
5087    tion\x20configuration\x20as\x20the\x20database.\x20This\x20is\x20the\n\
5088    \x20default\x20option\x20when\n\x20[encryption_config][google.spanner.ad\
5089    min.database.v1.CreateBackupEncryptionConfig]\x20is\x20empty.\n\x20For\
5090    \x20example,\x20if\x20the\x20database\x20is\x20using\x20`Customer_Manage\
5091    d_Encryption`,\x20the\n\x20backup\x20will\x20be\x20using\x20the\x20same\
5092    \x20Cloud\x20KMS\x20key\x20as\x20the\x20database.\n\n\x0f\n\x07\x04\r\
5093    \x04\0\x02\x01\x01\x12\x04\xa3\x04\x04\x1b\n\x0f\n\x07\x04\r\x04\0\x02\
5094    \x01\x02\x12\x04\xa3\x04\x1e\x1f\n0\n\x06\x04\r\x04\0\x02\x02\x12\x04\
5095    \xa6\x04\x04\"\x1a\x20\x20Use\x20Google\x20default\x20encryption.\n\n\
5096    \x0f\n\x07\x04\r\x04\0\x02\x02\x01\x12\x04\xa6\x04\x04\x1d\n\x0f\n\x07\
5097    \x04\r\x04\0\x02\x02\x02\x12\x04\xa6\x04\x20!\nt\n\x06\x04\r\x04\0\x02\
5098    \x03\x12\x04\xaa\x04\x04$\x1ad\x20Use\x20customer\x20managed\x20encrypti\
5099    on.\x20If\x20specified,\x20`kms_key_name`\n\x20must\x20contain\x20a\x20v\
5100    alid\x20Cloud\x20KMS\x20key.\n\n\x0f\n\x07\x04\r\x04\0\x02\x03\x01\x12\
5101    \x04\xaa\x04\x04\x1f\n\x0f\n\x07\x04\r\x04\0\x02\x03\x02\x12\x04\xaa\x04\
5102    \"#\n<\n\x04\x04\r\x02\0\x12\x04\xae\x04\x02N\x1a.\x20Required.\x20The\
5103    \x20encryption\x20type\x20of\x20the\x20backup.\n\n\r\n\x05\x04\r\x02\0\
5104    \x06\x12\x04\xae\x04\x02\x10\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xae\x04\
5105    \x11\x20\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xae\x04#$\n\r\n\x05\x04\r\x02\
5106    \0\x08\x12\x04\xae\x04%M\n\x10\n\x08\x04\r\x02\0\x08\x9c\x08\0\x12\x04\
5107    \xae\x04&L\n\xf1\x02\n\x04\x04\r\x02\x01\x12\x06\xb5\x04\x02\xba\x04\x04\
5108    \x1a\xe0\x02\x20Optional.\x20The\x20Cloud\x20KMS\x20key\x20that\x20will\
5109    \x20be\x20used\x20to\x20protect\x20the\x20backup.\n\x20This\x20field\x20\
5110    should\x20be\x20set\x20only\x20when\n\x20[encryption_type][google.spanne\
5111    r.admin.database.v1.CreateBackupEncryptionConfig.encryption_type]\x20is\
5112    \n\x20`CUSTOMER_MANAGED_ENCRYPTION`.\x20Values\x20are\x20of\x20the\x20fo\
5113    rm\n\x20`projects/<project>/locations/<location>/keyRings/<key_ring>/cry\
5114    ptoKeys/<kms_key_name>`.\n\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\xb5\x04\
5115    \x02\x08\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xb5\x04\t\x15\n\r\n\x05\x04\
5116    \r\x02\x01\x03\x12\x04\xb5\x04\x18\x19\n\x0f\n\x05\x04\r\x02\x01\x08\x12\
5117    \x06\xb5\x04\x1a\xba\x04\x03\n\x10\n\x08\x04\r\x02\x01\x08\x9c\x08\0\x12\
5118    \x04\xb6\x04\x04*\n\x11\n\x07\x04\r\x02\x01\x08\x9f\x08\x12\x06\xb7\x04\
5119    \x04\xb9\x04\x05\n?\n\x02\x04\x0e\x12\x06\xbe\x04\0\xe0\x04\x01\x1a1\x20\
5120    Encryption\x20configuration\x20for\x20the\x20copied\x20backup.\n\n\x0b\n\
5121    \x03\x04\x0e\x01\x12\x04\xbe\x04\x08\"\n2\n\x04\x04\x0e\x04\0\x12\x06\
5122    \xc0\x04\x02\xd0\x04\x03\x1a\"\x20Encryption\x20types\x20for\x20the\x20b\
5123    ackup.\n\n\r\n\x05\x04\x0e\x04\0\x01\x12\x04\xc0\x04\x07\x15\n*\n\x06\
5124    \x04\x0e\x04\0\x02\0\x12\x04\xc2\x04\x04$\x1a\x1a\x20Unspecified.\x20Do\
5125    \x20not\x20use.\n\n\x0f\n\x07\x04\x0e\x04\0\x02\0\x01\x12\x04\xc2\x04\
5126    \x04\x1f\n\x0f\n\x07\x04\x0e\x04\0\x02\0\x02\x12\x04\xc2\x04\"#\n\xf4\
5127    \x02\n\x06\x04\x0e\x04\0\x02\x01\x12\x04\xc8\x04\x040\x1a\xe3\x02\x20Thi\
5128    s\x20is\x20the\x20default\x20option\x20for\x20[CopyBackup][google.spanne\
5129    r.admin.database.v1.DatabaseAdmin.CopyBackup]\n\x20when\x20[encryption_c\
5130    onfig][google.spanner.admin.database.v1.CopyBackupEncryptionConfig]\x20i\
5131    s\x20not\x20specified.\n\x20For\x20example,\x20if\x20the\x20source\x20ba\
5132    ckup\x20is\x20using\x20`Customer_Managed_Encryption`,\n\x20the\x20backup\
5133    \x20will\x20be\x20using\x20the\x20same\x20Cloud\x20KMS\x20key\x20as\x20t\
5134    he\x20source\x20backup.\n\n\x0f\n\x07\x04\x0e\x04\0\x02\x01\x01\x12\x04\
5135    \xc8\x04\x04+\n\x0f\n\x07\x04\x0e\x04\0\x02\x01\x02\x12\x04\xc8\x04./\n0\
5136    \n\x06\x04\x0e\x04\0\x02\x02\x12\x04\xcb\x04\x04\"\x1a\x20\x20Use\x20Goo\
5137    gle\x20default\x20encryption.\n\n\x0f\n\x07\x04\x0e\x04\0\x02\x02\x01\
5138    \x12\x04\xcb\x04\x04\x1d\n\x0f\n\x07\x04\x0e\x04\0\x02\x02\x02\x12\x04\
5139    \xcb\x04\x20!\nt\n\x06\x04\x0e\x04\0\x02\x03\x12\x04\xcf\x04\x04$\x1ad\
5140    \x20Use\x20customer\x20managed\x20encryption.\x20If\x20specified,\x20`km\
5141    s_key_name`\n\x20must\x20contain\x20a\x20valid\x20Cloud\x20KMS\x20key.\n\
5142    \n\x0f\n\x07\x04\x0e\x04\0\x02\x03\x01\x12\x04\xcf\x04\x04\x1f\n\x0f\n\
5143    \x07\x04\x0e\x04\0\x02\x03\x02\x12\x04\xcf\x04\"#\n<\n\x04\x04\x0e\x02\0\
5144    \x12\x04\xd3\x04\x02N\x1a.\x20Required.\x20The\x20encryption\x20type\x20\
5145    of\x20the\x20backup.\n\n\r\n\x05\x04\x0e\x02\0\x06\x12\x04\xd3\x04\x02\
5146    \x10\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xd3\x04\x11\x20\n\r\n\x05\x04\
5147    \x0e\x02\0\x03\x12\x04\xd3\x04#$\n\r\n\x05\x04\x0e\x02\0\x08\x12\x04\xd3\
5148    \x04%M\n\x10\n\x08\x04\x0e\x02\0\x08\x9c\x08\0\x12\x04\xd3\x04&L\n\xef\
5149    \x02\n\x04\x04\x0e\x02\x01\x12\x06\xda\x04\x02\xdf\x04\x04\x1a\xde\x02\
5150    \x20Optional.\x20The\x20Cloud\x20KMS\x20key\x20that\x20will\x20be\x20use\
5151    d\x20to\x20protect\x20the\x20backup.\n\x20This\x20field\x20should\x20be\
5152    \x20set\x20only\x20when\n\x20[encryption_type][google.spanner.admin.data\
5153    base.v1.CopyBackupEncryptionConfig.encryption_type]\x20is\n\x20`CUSTOMER\
5154    _MANAGED_ENCRYPTION`.\x20Values\x20are\x20of\x20the\x20form\n\x20`projec\
5155    ts/<project>/locations/<location>/keyRings/<key_ring>/cryptoKeys/<kms_ke\
5156    y_name>`.\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xda\x04\x02\x08\n\r\n\
5157    \x05\x04\x0e\x02\x01\x01\x12\x04\xda\x04\t\x15\n\r\n\x05\x04\x0e\x02\x01\
5158    \x03\x12\x04\xda\x04\x18\x19\n\x0f\n\x05\x04\x0e\x02\x01\x08\x12\x06\xda\
5159    \x04\x1a\xdf\x04\x03\n\x10\n\x08\x04\x0e\x02\x01\x08\x9c\x08\0\x12\x04\
5160    \xdb\x04\x04*\n\x11\n\x07\x04\x0e\x02\x01\x08\x9f\x08\x12\x06\xdc\x04\
5161    \x04\xde\x04\x05b\x06proto3\
5162";
5163
5164static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
5165
5166fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
5167    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
5168}
5169
5170pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
5171    file_descriptor_proto_lazy.get(|| {
5172        parse_descriptor_proto()
5173    })
5174}