google_cloud_rust_raw/spanner/admin/database/v1/
spanner_database_admin.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/spanner_database_admin.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 RestoreInfo {
28    // message fields
29    pub source_type: RestoreSourceType,
30    // message oneof groups
31    pub source_info: ::std::option::Option<RestoreInfo_oneof_source_info>,
32    // special fields
33    pub unknown_fields: ::protobuf::UnknownFields,
34    pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a RestoreInfo {
38    fn default() -> &'a RestoreInfo {
39        <RestoreInfo as ::protobuf::Message>::default_instance()
40    }
41}
42
43#[derive(Clone,PartialEq,Debug)]
44pub enum RestoreInfo_oneof_source_info {
45    backup_info(super::backup::BackupInfo),
46}
47
48impl RestoreInfo {
49    pub fn new() -> RestoreInfo {
50        ::std::default::Default::default()
51    }
52
53    // .google.spanner.admin.database.v1.RestoreSourceType source_type = 1;
54
55
56    pub fn get_source_type(&self) -> RestoreSourceType {
57        self.source_type
58    }
59    pub fn clear_source_type(&mut self) {
60        self.source_type = RestoreSourceType::TYPE_UNSPECIFIED;
61    }
62
63    // Param is passed by value, moved
64    pub fn set_source_type(&mut self, v: RestoreSourceType) {
65        self.source_type = v;
66    }
67
68    // .google.spanner.admin.database.v1.BackupInfo backup_info = 2;
69
70
71    pub fn get_backup_info(&self) -> &super::backup::BackupInfo {
72        match self.source_info {
73            ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(ref v)) => v,
74            _ => <super::backup::BackupInfo as ::protobuf::Message>::default_instance(),
75        }
76    }
77    pub fn clear_backup_info(&mut self) {
78        self.source_info = ::std::option::Option::None;
79    }
80
81    pub fn has_backup_info(&self) -> bool {
82        match self.source_info {
83            ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(..)) => true,
84            _ => false,
85        }
86    }
87
88    // Param is passed by value, moved
89    pub fn set_backup_info(&mut self, v: super::backup::BackupInfo) {
90        self.source_info = ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(v))
91    }
92
93    // Mutable pointer to the field.
94    pub fn mut_backup_info(&mut self) -> &mut super::backup::BackupInfo {
95        if let ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(_)) = self.source_info {
96        } else {
97            self.source_info = ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(super::backup::BackupInfo::new()));
98        }
99        match self.source_info {
100            ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(ref mut v)) => v,
101            _ => panic!(),
102        }
103    }
104
105    // Take field
106    pub fn take_backup_info(&mut self) -> super::backup::BackupInfo {
107        if self.has_backup_info() {
108            match self.source_info.take() {
109                ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(v)) => v,
110                _ => panic!(),
111            }
112        } else {
113            super::backup::BackupInfo::new()
114        }
115    }
116}
117
118impl ::protobuf::Message for RestoreInfo {
119    fn is_initialized(&self) -> bool {
120        if let Some(RestoreInfo_oneof_source_info::backup_info(ref v)) = self.source_info {
121            if !v.is_initialized() {
122                return false;
123            }
124        }
125        true
126    }
127
128    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
129        while !is.eof()? {
130            let (field_number, wire_type) = is.read_tag_unpack()?;
131            match field_number {
132                1 => {
133                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.source_type, 1, &mut self.unknown_fields)?
134                },
135                2 => {
136                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
137                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
138                    }
139                    self.source_info = ::std::option::Option::Some(RestoreInfo_oneof_source_info::backup_info(is.read_message()?));
140                },
141                _ => {
142                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
143                },
144            };
145        }
146        ::std::result::Result::Ok(())
147    }
148
149    // Compute sizes of nested messages
150    #[allow(unused_variables)]
151    fn compute_size(&self) -> u32 {
152        let mut my_size = 0;
153        if self.source_type != RestoreSourceType::TYPE_UNSPECIFIED {
154            my_size += ::protobuf::rt::enum_size(1, self.source_type);
155        }
156        if let ::std::option::Option::Some(ref v) = self.source_info {
157            match v {
158                &RestoreInfo_oneof_source_info::backup_info(ref v) => {
159                    let len = v.compute_size();
160                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
161                },
162            };
163        }
164        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
165        self.cached_size.set(my_size);
166        my_size
167    }
168
169    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
170        if self.source_type != RestoreSourceType::TYPE_UNSPECIFIED {
171            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.source_type))?;
172        }
173        if let ::std::option::Option::Some(ref v) = self.source_info {
174            match v {
175                &RestoreInfo_oneof_source_info::backup_info(ref v) => {
176                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
177                    os.write_raw_varint32(v.get_cached_size())?;
178                    v.write_to_with_cached_sizes(os)?;
179                },
180            };
181        }
182        os.write_unknown_fields(self.get_unknown_fields())?;
183        ::std::result::Result::Ok(())
184    }
185
186    fn get_cached_size(&self) -> u32 {
187        self.cached_size.get()
188    }
189
190    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
191        &self.unknown_fields
192    }
193
194    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
195        &mut self.unknown_fields
196    }
197
198    fn as_any(&self) -> &dyn (::std::any::Any) {
199        self as &dyn (::std::any::Any)
200    }
201    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
202        self as &mut dyn (::std::any::Any)
203    }
204    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
205        self
206    }
207
208    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
209        Self::descriptor_static()
210    }
211
212    fn new() -> RestoreInfo {
213        RestoreInfo::new()
214    }
215
216    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
217        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
218        descriptor.get(|| {
219            let mut fields = ::std::vec::Vec::new();
220            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<RestoreSourceType>>(
221                "source_type",
222                |m: &RestoreInfo| { &m.source_type },
223                |m: &mut RestoreInfo| { &mut m.source_type },
224            ));
225            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::backup::BackupInfo>(
226                "backup_info",
227                RestoreInfo::has_backup_info,
228                RestoreInfo::get_backup_info,
229            ));
230            ::protobuf::reflect::MessageDescriptor::new_pb_name::<RestoreInfo>(
231                "RestoreInfo",
232                fields,
233                file_descriptor_proto()
234            )
235        })
236    }
237
238    fn default_instance() -> &'static RestoreInfo {
239        static instance: ::protobuf::rt::LazyV2<RestoreInfo> = ::protobuf::rt::LazyV2::INIT;
240        instance.get(RestoreInfo::new)
241    }
242}
243
244impl ::protobuf::Clear for RestoreInfo {
245    fn clear(&mut self) {
246        self.source_type = RestoreSourceType::TYPE_UNSPECIFIED;
247        self.source_info = ::std::option::Option::None;
248        self.unknown_fields.clear();
249    }
250}
251
252impl ::std::fmt::Debug for RestoreInfo {
253    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
254        ::protobuf::text_format::fmt(self, f)
255    }
256}
257
258impl ::protobuf::reflect::ProtobufValue for RestoreInfo {
259    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
260        ::protobuf::reflect::ReflectValueRef::Message(self)
261    }
262}
263
264#[derive(PartialEq,Clone,Default)]
265pub struct Database {
266    // message fields
267    pub name: ::std::string::String,
268    pub state: Database_State,
269    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
270    pub restore_info: ::protobuf::SingularPtrField<RestoreInfo>,
271    pub encryption_config: ::protobuf::SingularPtrField<super::common::EncryptionConfig>,
272    pub encryption_info: ::protobuf::RepeatedField<super::common::EncryptionInfo>,
273    pub version_retention_period: ::std::string::String,
274    pub earliest_version_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
275    pub default_leader: ::std::string::String,
276    pub database_dialect: super::common::DatabaseDialect,
277    pub enable_drop_protection: bool,
278    pub reconciling: bool,
279    // special fields
280    pub unknown_fields: ::protobuf::UnknownFields,
281    pub cached_size: ::protobuf::CachedSize,
282}
283
284impl<'a> ::std::default::Default for &'a Database {
285    fn default() -> &'a Database {
286        <Database as ::protobuf::Message>::default_instance()
287    }
288}
289
290impl Database {
291    pub fn new() -> Database {
292        ::std::default::Default::default()
293    }
294
295    // string name = 1;
296
297
298    pub fn get_name(&self) -> &str {
299        &self.name
300    }
301    pub fn clear_name(&mut self) {
302        self.name.clear();
303    }
304
305    // Param is passed by value, moved
306    pub fn set_name(&mut self, v: ::std::string::String) {
307        self.name = v;
308    }
309
310    // Mutable pointer to the field.
311    // If field is not initialized, it is initialized with default value first.
312    pub fn mut_name(&mut self) -> &mut ::std::string::String {
313        &mut self.name
314    }
315
316    // Take field
317    pub fn take_name(&mut self) -> ::std::string::String {
318        ::std::mem::replace(&mut self.name, ::std::string::String::new())
319    }
320
321    // .google.spanner.admin.database.v1.Database.State state = 2;
322
323
324    pub fn get_state(&self) -> Database_State {
325        self.state
326    }
327    pub fn clear_state(&mut self) {
328        self.state = Database_State::STATE_UNSPECIFIED;
329    }
330
331    // Param is passed by value, moved
332    pub fn set_state(&mut self, v: Database_State) {
333        self.state = v;
334    }
335
336    // .google.protobuf.Timestamp create_time = 3;
337
338
339    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
340        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
341    }
342    pub fn clear_create_time(&mut self) {
343        self.create_time.clear();
344    }
345
346    pub fn has_create_time(&self) -> bool {
347        self.create_time.is_some()
348    }
349
350    // Param is passed by value, moved
351    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
352        self.create_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_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
358        if self.create_time.is_none() {
359            self.create_time.set_default();
360        }
361        self.create_time.as_mut().unwrap()
362    }
363
364    // Take field
365    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
366        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
367    }
368
369    // .google.spanner.admin.database.v1.RestoreInfo restore_info = 4;
370
371
372    pub fn get_restore_info(&self) -> &RestoreInfo {
373        self.restore_info.as_ref().unwrap_or_else(|| <RestoreInfo as ::protobuf::Message>::default_instance())
374    }
375    pub fn clear_restore_info(&mut self) {
376        self.restore_info.clear();
377    }
378
379    pub fn has_restore_info(&self) -> bool {
380        self.restore_info.is_some()
381    }
382
383    // Param is passed by value, moved
384    pub fn set_restore_info(&mut self, v: RestoreInfo) {
385        self.restore_info = ::protobuf::SingularPtrField::some(v);
386    }
387
388    // Mutable pointer to the field.
389    // If field is not initialized, it is initialized with default value first.
390    pub fn mut_restore_info(&mut self) -> &mut RestoreInfo {
391        if self.restore_info.is_none() {
392            self.restore_info.set_default();
393        }
394        self.restore_info.as_mut().unwrap()
395    }
396
397    // Take field
398    pub fn take_restore_info(&mut self) -> RestoreInfo {
399        self.restore_info.take().unwrap_or_else(|| RestoreInfo::new())
400    }
401
402    // .google.spanner.admin.database.v1.EncryptionConfig encryption_config = 5;
403
404
405    pub fn get_encryption_config(&self) -> &super::common::EncryptionConfig {
406        self.encryption_config.as_ref().unwrap_or_else(|| <super::common::EncryptionConfig as ::protobuf::Message>::default_instance())
407    }
408    pub fn clear_encryption_config(&mut self) {
409        self.encryption_config.clear();
410    }
411
412    pub fn has_encryption_config(&self) -> bool {
413        self.encryption_config.is_some()
414    }
415
416    // Param is passed by value, moved
417    pub fn set_encryption_config(&mut self, v: super::common::EncryptionConfig) {
418        self.encryption_config = ::protobuf::SingularPtrField::some(v);
419    }
420
421    // Mutable pointer to the field.
422    // If field is not initialized, it is initialized with default value first.
423    pub fn mut_encryption_config(&mut self) -> &mut super::common::EncryptionConfig {
424        if self.encryption_config.is_none() {
425            self.encryption_config.set_default();
426        }
427        self.encryption_config.as_mut().unwrap()
428    }
429
430    // Take field
431    pub fn take_encryption_config(&mut self) -> super::common::EncryptionConfig {
432        self.encryption_config.take().unwrap_or_else(|| super::common::EncryptionConfig::new())
433    }
434
435    // repeated .google.spanner.admin.database.v1.EncryptionInfo encryption_info = 8;
436
437
438    pub fn get_encryption_info(&self) -> &[super::common::EncryptionInfo] {
439        &self.encryption_info
440    }
441    pub fn clear_encryption_info(&mut self) {
442        self.encryption_info.clear();
443    }
444
445    // Param is passed by value, moved
446    pub fn set_encryption_info(&mut self, v: ::protobuf::RepeatedField<super::common::EncryptionInfo>) {
447        self.encryption_info = v;
448    }
449
450    // Mutable pointer to the field.
451    pub fn mut_encryption_info(&mut self) -> &mut ::protobuf::RepeatedField<super::common::EncryptionInfo> {
452        &mut self.encryption_info
453    }
454
455    // Take field
456    pub fn take_encryption_info(&mut self) -> ::protobuf::RepeatedField<super::common::EncryptionInfo> {
457        ::std::mem::replace(&mut self.encryption_info, ::protobuf::RepeatedField::new())
458    }
459
460    // string version_retention_period = 6;
461
462
463    pub fn get_version_retention_period(&self) -> &str {
464        &self.version_retention_period
465    }
466    pub fn clear_version_retention_period(&mut self) {
467        self.version_retention_period.clear();
468    }
469
470    // Param is passed by value, moved
471    pub fn set_version_retention_period(&mut self, v: ::std::string::String) {
472        self.version_retention_period = v;
473    }
474
475    // Mutable pointer to the field.
476    // If field is not initialized, it is initialized with default value first.
477    pub fn mut_version_retention_period(&mut self) -> &mut ::std::string::String {
478        &mut self.version_retention_period
479    }
480
481    // Take field
482    pub fn take_version_retention_period(&mut self) -> ::std::string::String {
483        ::std::mem::replace(&mut self.version_retention_period, ::std::string::String::new())
484    }
485
486    // .google.protobuf.Timestamp earliest_version_time = 7;
487
488
489    pub fn get_earliest_version_time(&self) -> &::protobuf::well_known_types::Timestamp {
490        self.earliest_version_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
491    }
492    pub fn clear_earliest_version_time(&mut self) {
493        self.earliest_version_time.clear();
494    }
495
496    pub fn has_earliest_version_time(&self) -> bool {
497        self.earliest_version_time.is_some()
498    }
499
500    // Param is passed by value, moved
501    pub fn set_earliest_version_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
502        self.earliest_version_time = ::protobuf::SingularPtrField::some(v);
503    }
504
505    // Mutable pointer to the field.
506    // If field is not initialized, it is initialized with default value first.
507    pub fn mut_earliest_version_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
508        if self.earliest_version_time.is_none() {
509            self.earliest_version_time.set_default();
510        }
511        self.earliest_version_time.as_mut().unwrap()
512    }
513
514    // Take field
515    pub fn take_earliest_version_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
516        self.earliest_version_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
517    }
518
519    // string default_leader = 9;
520
521
522    pub fn get_default_leader(&self) -> &str {
523        &self.default_leader
524    }
525    pub fn clear_default_leader(&mut self) {
526        self.default_leader.clear();
527    }
528
529    // Param is passed by value, moved
530    pub fn set_default_leader(&mut self, v: ::std::string::String) {
531        self.default_leader = v;
532    }
533
534    // Mutable pointer to the field.
535    // If field is not initialized, it is initialized with default value first.
536    pub fn mut_default_leader(&mut self) -> &mut ::std::string::String {
537        &mut self.default_leader
538    }
539
540    // Take field
541    pub fn take_default_leader(&mut self) -> ::std::string::String {
542        ::std::mem::replace(&mut self.default_leader, ::std::string::String::new())
543    }
544
545    // .google.spanner.admin.database.v1.DatabaseDialect database_dialect = 10;
546
547
548    pub fn get_database_dialect(&self) -> super::common::DatabaseDialect {
549        self.database_dialect
550    }
551    pub fn clear_database_dialect(&mut self) {
552        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
553    }
554
555    // Param is passed by value, moved
556    pub fn set_database_dialect(&mut self, v: super::common::DatabaseDialect) {
557        self.database_dialect = v;
558    }
559
560    // bool enable_drop_protection = 11;
561
562
563    pub fn get_enable_drop_protection(&self) -> bool {
564        self.enable_drop_protection
565    }
566    pub fn clear_enable_drop_protection(&mut self) {
567        self.enable_drop_protection = false;
568    }
569
570    // Param is passed by value, moved
571    pub fn set_enable_drop_protection(&mut self, v: bool) {
572        self.enable_drop_protection = v;
573    }
574
575    // bool reconciling = 12;
576
577
578    pub fn get_reconciling(&self) -> bool {
579        self.reconciling
580    }
581    pub fn clear_reconciling(&mut self) {
582        self.reconciling = false;
583    }
584
585    // Param is passed by value, moved
586    pub fn set_reconciling(&mut self, v: bool) {
587        self.reconciling = v;
588    }
589}
590
591impl ::protobuf::Message for Database {
592    fn is_initialized(&self) -> bool {
593        for v in &self.create_time {
594            if !v.is_initialized() {
595                return false;
596            }
597        };
598        for v in &self.restore_info {
599            if !v.is_initialized() {
600                return false;
601            }
602        };
603        for v in &self.encryption_config {
604            if !v.is_initialized() {
605                return false;
606            }
607        };
608        for v in &self.encryption_info {
609            if !v.is_initialized() {
610                return false;
611            }
612        };
613        for v in &self.earliest_version_time {
614            if !v.is_initialized() {
615                return false;
616            }
617        };
618        true
619    }
620
621    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
622        while !is.eof()? {
623            let (field_number, wire_type) = is.read_tag_unpack()?;
624            match field_number {
625                1 => {
626                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
627                },
628                2 => {
629                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.state, 2, &mut self.unknown_fields)?
630                },
631                3 => {
632                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
633                },
634                4 => {
635                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.restore_info)?;
636                },
637                5 => {
638                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_config)?;
639                },
640                8 => {
641                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.encryption_info)?;
642                },
643                6 => {
644                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.version_retention_period)?;
645                },
646                7 => {
647                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.earliest_version_time)?;
648                },
649                9 => {
650                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.default_leader)?;
651                },
652                10 => {
653                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.database_dialect, 10, &mut self.unknown_fields)?
654                },
655                11 => {
656                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
657                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
658                    }
659                    let tmp = is.read_bool()?;
660                    self.enable_drop_protection = tmp;
661                },
662                12 => {
663                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
664                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
665                    }
666                    let tmp = is.read_bool()?;
667                    self.reconciling = tmp;
668                },
669                _ => {
670                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
671                },
672            };
673        }
674        ::std::result::Result::Ok(())
675    }
676
677    // Compute sizes of nested messages
678    #[allow(unused_variables)]
679    fn compute_size(&self) -> u32 {
680        let mut my_size = 0;
681        if !self.name.is_empty() {
682            my_size += ::protobuf::rt::string_size(1, &self.name);
683        }
684        if self.state != Database_State::STATE_UNSPECIFIED {
685            my_size += ::protobuf::rt::enum_size(2, self.state);
686        }
687        if let Some(ref v) = self.create_time.as_ref() {
688            let len = v.compute_size();
689            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
690        }
691        if let Some(ref v) = self.restore_info.as_ref() {
692            let len = v.compute_size();
693            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
694        }
695        if let Some(ref v) = self.encryption_config.as_ref() {
696            let len = v.compute_size();
697            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
698        }
699        for value in &self.encryption_info {
700            let len = value.compute_size();
701            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
702        };
703        if !self.version_retention_period.is_empty() {
704            my_size += ::protobuf::rt::string_size(6, &self.version_retention_period);
705        }
706        if let Some(ref v) = self.earliest_version_time.as_ref() {
707            let len = v.compute_size();
708            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
709        }
710        if !self.default_leader.is_empty() {
711            my_size += ::protobuf::rt::string_size(9, &self.default_leader);
712        }
713        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
714            my_size += ::protobuf::rt::enum_size(10, self.database_dialect);
715        }
716        if self.enable_drop_protection != false {
717            my_size += 2;
718        }
719        if self.reconciling != false {
720            my_size += 2;
721        }
722        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
723        self.cached_size.set(my_size);
724        my_size
725    }
726
727    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
728        if !self.name.is_empty() {
729            os.write_string(1, &self.name)?;
730        }
731        if self.state != Database_State::STATE_UNSPECIFIED {
732            os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.state))?;
733        }
734        if let Some(ref v) = self.create_time.as_ref() {
735            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
736            os.write_raw_varint32(v.get_cached_size())?;
737            v.write_to_with_cached_sizes(os)?;
738        }
739        if let Some(ref v) = self.restore_info.as_ref() {
740            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
741            os.write_raw_varint32(v.get_cached_size())?;
742            v.write_to_with_cached_sizes(os)?;
743        }
744        if let Some(ref v) = self.encryption_config.as_ref() {
745            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
746            os.write_raw_varint32(v.get_cached_size())?;
747            v.write_to_with_cached_sizes(os)?;
748        }
749        for v in &self.encryption_info {
750            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
751            os.write_raw_varint32(v.get_cached_size())?;
752            v.write_to_with_cached_sizes(os)?;
753        };
754        if !self.version_retention_period.is_empty() {
755            os.write_string(6, &self.version_retention_period)?;
756        }
757        if let Some(ref v) = self.earliest_version_time.as_ref() {
758            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
759            os.write_raw_varint32(v.get_cached_size())?;
760            v.write_to_with_cached_sizes(os)?;
761        }
762        if !self.default_leader.is_empty() {
763            os.write_string(9, &self.default_leader)?;
764        }
765        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
766            os.write_enum(10, ::protobuf::ProtobufEnum::value(&self.database_dialect))?;
767        }
768        if self.enable_drop_protection != false {
769            os.write_bool(11, self.enable_drop_protection)?;
770        }
771        if self.reconciling != false {
772            os.write_bool(12, self.reconciling)?;
773        }
774        os.write_unknown_fields(self.get_unknown_fields())?;
775        ::std::result::Result::Ok(())
776    }
777
778    fn get_cached_size(&self) -> u32 {
779        self.cached_size.get()
780    }
781
782    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
783        &self.unknown_fields
784    }
785
786    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
787        &mut self.unknown_fields
788    }
789
790    fn as_any(&self) -> &dyn (::std::any::Any) {
791        self as &dyn (::std::any::Any)
792    }
793    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
794        self as &mut dyn (::std::any::Any)
795    }
796    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
797        self
798    }
799
800    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
801        Self::descriptor_static()
802    }
803
804    fn new() -> Database {
805        Database::new()
806    }
807
808    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
809        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
810        descriptor.get(|| {
811            let mut fields = ::std::vec::Vec::new();
812            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
813                "name",
814                |m: &Database| { &m.name },
815                |m: &mut Database| { &mut m.name },
816            ));
817            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Database_State>>(
818                "state",
819                |m: &Database| { &m.state },
820                |m: &mut Database| { &mut m.state },
821            ));
822            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
823                "create_time",
824                |m: &Database| { &m.create_time },
825                |m: &mut Database| { &mut m.create_time },
826            ));
827            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RestoreInfo>>(
828                "restore_info",
829                |m: &Database| { &m.restore_info },
830                |m: &mut Database| { &mut m.restore_info },
831            ));
832            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::EncryptionConfig>>(
833                "encryption_config",
834                |m: &Database| { &m.encryption_config },
835                |m: &mut Database| { &mut m.encryption_config },
836            ));
837            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::EncryptionInfo>>(
838                "encryption_info",
839                |m: &Database| { &m.encryption_info },
840                |m: &mut Database| { &mut m.encryption_info },
841            ));
842            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
843                "version_retention_period",
844                |m: &Database| { &m.version_retention_period },
845                |m: &mut Database| { &mut m.version_retention_period },
846            ));
847            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
848                "earliest_version_time",
849                |m: &Database| { &m.earliest_version_time },
850                |m: &mut Database| { &mut m.earliest_version_time },
851            ));
852            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
853                "default_leader",
854                |m: &Database| { &m.default_leader },
855                |m: &mut Database| { &mut m.default_leader },
856            ));
857            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::common::DatabaseDialect>>(
858                "database_dialect",
859                |m: &Database| { &m.database_dialect },
860                |m: &mut Database| { &mut m.database_dialect },
861            ));
862            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
863                "enable_drop_protection",
864                |m: &Database| { &m.enable_drop_protection },
865                |m: &mut Database| { &mut m.enable_drop_protection },
866            ));
867            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
868                "reconciling",
869                |m: &Database| { &m.reconciling },
870                |m: &mut Database| { &mut m.reconciling },
871            ));
872            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Database>(
873                "Database",
874                fields,
875                file_descriptor_proto()
876            )
877        })
878    }
879
880    fn default_instance() -> &'static Database {
881        static instance: ::protobuf::rt::LazyV2<Database> = ::protobuf::rt::LazyV2::INIT;
882        instance.get(Database::new)
883    }
884}
885
886impl ::protobuf::Clear for Database {
887    fn clear(&mut self) {
888        self.name.clear();
889        self.state = Database_State::STATE_UNSPECIFIED;
890        self.create_time.clear();
891        self.restore_info.clear();
892        self.encryption_config.clear();
893        self.encryption_info.clear();
894        self.version_retention_period.clear();
895        self.earliest_version_time.clear();
896        self.default_leader.clear();
897        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
898        self.enable_drop_protection = false;
899        self.reconciling = false;
900        self.unknown_fields.clear();
901    }
902}
903
904impl ::std::fmt::Debug for Database {
905    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
906        ::protobuf::text_format::fmt(self, f)
907    }
908}
909
910impl ::protobuf::reflect::ProtobufValue for Database {
911    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
912        ::protobuf::reflect::ReflectValueRef::Message(self)
913    }
914}
915
916#[derive(Clone,PartialEq,Eq,Debug,Hash)]
917pub enum Database_State {
918    STATE_UNSPECIFIED = 0,
919    CREATING = 1,
920    READY = 2,
921    READY_OPTIMIZING = 3,
922}
923
924impl ::protobuf::ProtobufEnum for Database_State {
925    fn value(&self) -> i32 {
926        *self as i32
927    }
928
929    fn from_i32(value: i32) -> ::std::option::Option<Database_State> {
930        match value {
931            0 => ::std::option::Option::Some(Database_State::STATE_UNSPECIFIED),
932            1 => ::std::option::Option::Some(Database_State::CREATING),
933            2 => ::std::option::Option::Some(Database_State::READY),
934            3 => ::std::option::Option::Some(Database_State::READY_OPTIMIZING),
935            _ => ::std::option::Option::None
936        }
937    }
938
939    fn values() -> &'static [Self] {
940        static values: &'static [Database_State] = &[
941            Database_State::STATE_UNSPECIFIED,
942            Database_State::CREATING,
943            Database_State::READY,
944            Database_State::READY_OPTIMIZING,
945        ];
946        values
947    }
948
949    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
950        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
951        descriptor.get(|| {
952            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Database_State>("Database.State", file_descriptor_proto())
953        })
954    }
955}
956
957impl ::std::marker::Copy for Database_State {
958}
959
960impl ::std::default::Default for Database_State {
961    fn default() -> Self {
962        Database_State::STATE_UNSPECIFIED
963    }
964}
965
966impl ::protobuf::reflect::ProtobufValue for Database_State {
967    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
968        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
969    }
970}
971
972#[derive(PartialEq,Clone,Default)]
973pub struct ListDatabasesRequest {
974    // message fields
975    pub parent: ::std::string::String,
976    pub page_size: i32,
977    pub page_token: ::std::string::String,
978    // special fields
979    pub unknown_fields: ::protobuf::UnknownFields,
980    pub cached_size: ::protobuf::CachedSize,
981}
982
983impl<'a> ::std::default::Default for &'a ListDatabasesRequest {
984    fn default() -> &'a ListDatabasesRequest {
985        <ListDatabasesRequest as ::protobuf::Message>::default_instance()
986    }
987}
988
989impl ListDatabasesRequest {
990    pub fn new() -> ListDatabasesRequest {
991        ::std::default::Default::default()
992    }
993
994    // string parent = 1;
995
996
997    pub fn get_parent(&self) -> &str {
998        &self.parent
999    }
1000    pub fn clear_parent(&mut self) {
1001        self.parent.clear();
1002    }
1003
1004    // Param is passed by value, moved
1005    pub fn set_parent(&mut self, v: ::std::string::String) {
1006        self.parent = v;
1007    }
1008
1009    // Mutable pointer to the field.
1010    // If field is not initialized, it is initialized with default value first.
1011    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
1012        &mut self.parent
1013    }
1014
1015    // Take field
1016    pub fn take_parent(&mut self) -> ::std::string::String {
1017        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
1018    }
1019
1020    // int32 page_size = 3;
1021
1022
1023    pub fn get_page_size(&self) -> i32 {
1024        self.page_size
1025    }
1026    pub fn clear_page_size(&mut self) {
1027        self.page_size = 0;
1028    }
1029
1030    // Param is passed by value, moved
1031    pub fn set_page_size(&mut self, v: i32) {
1032        self.page_size = v;
1033    }
1034
1035    // string page_token = 4;
1036
1037
1038    pub fn get_page_token(&self) -> &str {
1039        &self.page_token
1040    }
1041    pub fn clear_page_token(&mut self) {
1042        self.page_token.clear();
1043    }
1044
1045    // Param is passed by value, moved
1046    pub fn set_page_token(&mut self, v: ::std::string::String) {
1047        self.page_token = v;
1048    }
1049
1050    // Mutable pointer to the field.
1051    // If field is not initialized, it is initialized with default value first.
1052    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
1053        &mut self.page_token
1054    }
1055
1056    // Take field
1057    pub fn take_page_token(&mut self) -> ::std::string::String {
1058        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
1059    }
1060}
1061
1062impl ::protobuf::Message for ListDatabasesRequest {
1063    fn is_initialized(&self) -> bool {
1064        true
1065    }
1066
1067    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1068        while !is.eof()? {
1069            let (field_number, wire_type) = is.read_tag_unpack()?;
1070            match field_number {
1071                1 => {
1072                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1073                },
1074                3 => {
1075                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1076                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1077                    }
1078                    let tmp = is.read_int32()?;
1079                    self.page_size = tmp;
1080                },
1081                4 => {
1082                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
1083                },
1084                _ => {
1085                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1086                },
1087            };
1088        }
1089        ::std::result::Result::Ok(())
1090    }
1091
1092    // Compute sizes of nested messages
1093    #[allow(unused_variables)]
1094    fn compute_size(&self) -> u32 {
1095        let mut my_size = 0;
1096        if !self.parent.is_empty() {
1097            my_size += ::protobuf::rt::string_size(1, &self.parent);
1098        }
1099        if self.page_size != 0 {
1100            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
1101        }
1102        if !self.page_token.is_empty() {
1103            my_size += ::protobuf::rt::string_size(4, &self.page_token);
1104        }
1105        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1106        self.cached_size.set(my_size);
1107        my_size
1108    }
1109
1110    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1111        if !self.parent.is_empty() {
1112            os.write_string(1, &self.parent)?;
1113        }
1114        if self.page_size != 0 {
1115            os.write_int32(3, self.page_size)?;
1116        }
1117        if !self.page_token.is_empty() {
1118            os.write_string(4, &self.page_token)?;
1119        }
1120        os.write_unknown_fields(self.get_unknown_fields())?;
1121        ::std::result::Result::Ok(())
1122    }
1123
1124    fn get_cached_size(&self) -> u32 {
1125        self.cached_size.get()
1126    }
1127
1128    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1129        &self.unknown_fields
1130    }
1131
1132    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1133        &mut self.unknown_fields
1134    }
1135
1136    fn as_any(&self) -> &dyn (::std::any::Any) {
1137        self as &dyn (::std::any::Any)
1138    }
1139    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1140        self as &mut dyn (::std::any::Any)
1141    }
1142    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1143        self
1144    }
1145
1146    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1147        Self::descriptor_static()
1148    }
1149
1150    fn new() -> ListDatabasesRequest {
1151        ListDatabasesRequest::new()
1152    }
1153
1154    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1155        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1156        descriptor.get(|| {
1157            let mut fields = ::std::vec::Vec::new();
1158            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1159                "parent",
1160                |m: &ListDatabasesRequest| { &m.parent },
1161                |m: &mut ListDatabasesRequest| { &mut m.parent },
1162            ));
1163            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1164                "page_size",
1165                |m: &ListDatabasesRequest| { &m.page_size },
1166                |m: &mut ListDatabasesRequest| { &mut m.page_size },
1167            ));
1168            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1169                "page_token",
1170                |m: &ListDatabasesRequest| { &m.page_token },
1171                |m: &mut ListDatabasesRequest| { &mut m.page_token },
1172            ));
1173            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabasesRequest>(
1174                "ListDatabasesRequest",
1175                fields,
1176                file_descriptor_proto()
1177            )
1178        })
1179    }
1180
1181    fn default_instance() -> &'static ListDatabasesRequest {
1182        static instance: ::protobuf::rt::LazyV2<ListDatabasesRequest> = ::protobuf::rt::LazyV2::INIT;
1183        instance.get(ListDatabasesRequest::new)
1184    }
1185}
1186
1187impl ::protobuf::Clear for ListDatabasesRequest {
1188    fn clear(&mut self) {
1189        self.parent.clear();
1190        self.page_size = 0;
1191        self.page_token.clear();
1192        self.unknown_fields.clear();
1193    }
1194}
1195
1196impl ::std::fmt::Debug for ListDatabasesRequest {
1197    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1198        ::protobuf::text_format::fmt(self, f)
1199    }
1200}
1201
1202impl ::protobuf::reflect::ProtobufValue for ListDatabasesRequest {
1203    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1204        ::protobuf::reflect::ReflectValueRef::Message(self)
1205    }
1206}
1207
1208#[derive(PartialEq,Clone,Default)]
1209pub struct ListDatabasesResponse {
1210    // message fields
1211    pub databases: ::protobuf::RepeatedField<Database>,
1212    pub next_page_token: ::std::string::String,
1213    // special fields
1214    pub unknown_fields: ::protobuf::UnknownFields,
1215    pub cached_size: ::protobuf::CachedSize,
1216}
1217
1218impl<'a> ::std::default::Default for &'a ListDatabasesResponse {
1219    fn default() -> &'a ListDatabasesResponse {
1220        <ListDatabasesResponse as ::protobuf::Message>::default_instance()
1221    }
1222}
1223
1224impl ListDatabasesResponse {
1225    pub fn new() -> ListDatabasesResponse {
1226        ::std::default::Default::default()
1227    }
1228
1229    // repeated .google.spanner.admin.database.v1.Database databases = 1;
1230
1231
1232    pub fn get_databases(&self) -> &[Database] {
1233        &self.databases
1234    }
1235    pub fn clear_databases(&mut self) {
1236        self.databases.clear();
1237    }
1238
1239    // Param is passed by value, moved
1240    pub fn set_databases(&mut self, v: ::protobuf::RepeatedField<Database>) {
1241        self.databases = v;
1242    }
1243
1244    // Mutable pointer to the field.
1245    pub fn mut_databases(&mut self) -> &mut ::protobuf::RepeatedField<Database> {
1246        &mut self.databases
1247    }
1248
1249    // Take field
1250    pub fn take_databases(&mut self) -> ::protobuf::RepeatedField<Database> {
1251        ::std::mem::replace(&mut self.databases, ::protobuf::RepeatedField::new())
1252    }
1253
1254    // string next_page_token = 2;
1255
1256
1257    pub fn get_next_page_token(&self) -> &str {
1258        &self.next_page_token
1259    }
1260    pub fn clear_next_page_token(&mut self) {
1261        self.next_page_token.clear();
1262    }
1263
1264    // Param is passed by value, moved
1265    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
1266        self.next_page_token = v;
1267    }
1268
1269    // Mutable pointer to the field.
1270    // If field is not initialized, it is initialized with default value first.
1271    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
1272        &mut self.next_page_token
1273    }
1274
1275    // Take field
1276    pub fn take_next_page_token(&mut self) -> ::std::string::String {
1277        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
1278    }
1279}
1280
1281impl ::protobuf::Message for ListDatabasesResponse {
1282    fn is_initialized(&self) -> bool {
1283        for v in &self.databases {
1284            if !v.is_initialized() {
1285                return false;
1286            }
1287        };
1288        true
1289    }
1290
1291    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1292        while !is.eof()? {
1293            let (field_number, wire_type) = is.read_tag_unpack()?;
1294            match field_number {
1295                1 => {
1296                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.databases)?;
1297                },
1298                2 => {
1299                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
1300                },
1301                _ => {
1302                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1303                },
1304            };
1305        }
1306        ::std::result::Result::Ok(())
1307    }
1308
1309    // Compute sizes of nested messages
1310    #[allow(unused_variables)]
1311    fn compute_size(&self) -> u32 {
1312        let mut my_size = 0;
1313        for value in &self.databases {
1314            let len = value.compute_size();
1315            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1316        };
1317        if !self.next_page_token.is_empty() {
1318            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
1319        }
1320        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1321        self.cached_size.set(my_size);
1322        my_size
1323    }
1324
1325    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1326        for v in &self.databases {
1327            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1328            os.write_raw_varint32(v.get_cached_size())?;
1329            v.write_to_with_cached_sizes(os)?;
1330        };
1331        if !self.next_page_token.is_empty() {
1332            os.write_string(2, &self.next_page_token)?;
1333        }
1334        os.write_unknown_fields(self.get_unknown_fields())?;
1335        ::std::result::Result::Ok(())
1336    }
1337
1338    fn get_cached_size(&self) -> u32 {
1339        self.cached_size.get()
1340    }
1341
1342    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1343        &self.unknown_fields
1344    }
1345
1346    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1347        &mut self.unknown_fields
1348    }
1349
1350    fn as_any(&self) -> &dyn (::std::any::Any) {
1351        self as &dyn (::std::any::Any)
1352    }
1353    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1354        self as &mut dyn (::std::any::Any)
1355    }
1356    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1357        self
1358    }
1359
1360    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1361        Self::descriptor_static()
1362    }
1363
1364    fn new() -> ListDatabasesResponse {
1365        ListDatabasesResponse::new()
1366    }
1367
1368    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1369        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1370        descriptor.get(|| {
1371            let mut fields = ::std::vec::Vec::new();
1372            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Database>>(
1373                "databases",
1374                |m: &ListDatabasesResponse| { &m.databases },
1375                |m: &mut ListDatabasesResponse| { &mut m.databases },
1376            ));
1377            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1378                "next_page_token",
1379                |m: &ListDatabasesResponse| { &m.next_page_token },
1380                |m: &mut ListDatabasesResponse| { &mut m.next_page_token },
1381            ));
1382            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabasesResponse>(
1383                "ListDatabasesResponse",
1384                fields,
1385                file_descriptor_proto()
1386            )
1387        })
1388    }
1389
1390    fn default_instance() -> &'static ListDatabasesResponse {
1391        static instance: ::protobuf::rt::LazyV2<ListDatabasesResponse> = ::protobuf::rt::LazyV2::INIT;
1392        instance.get(ListDatabasesResponse::new)
1393    }
1394}
1395
1396impl ::protobuf::Clear for ListDatabasesResponse {
1397    fn clear(&mut self) {
1398        self.databases.clear();
1399        self.next_page_token.clear();
1400        self.unknown_fields.clear();
1401    }
1402}
1403
1404impl ::std::fmt::Debug for ListDatabasesResponse {
1405    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1406        ::protobuf::text_format::fmt(self, f)
1407    }
1408}
1409
1410impl ::protobuf::reflect::ProtobufValue for ListDatabasesResponse {
1411    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1412        ::protobuf::reflect::ReflectValueRef::Message(self)
1413    }
1414}
1415
1416#[derive(PartialEq,Clone,Default)]
1417pub struct CreateDatabaseRequest {
1418    // message fields
1419    pub parent: ::std::string::String,
1420    pub create_statement: ::std::string::String,
1421    pub extra_statements: ::protobuf::RepeatedField<::std::string::String>,
1422    pub encryption_config: ::protobuf::SingularPtrField<super::common::EncryptionConfig>,
1423    pub database_dialect: super::common::DatabaseDialect,
1424    // special fields
1425    pub unknown_fields: ::protobuf::UnknownFields,
1426    pub cached_size: ::protobuf::CachedSize,
1427}
1428
1429impl<'a> ::std::default::Default for &'a CreateDatabaseRequest {
1430    fn default() -> &'a CreateDatabaseRequest {
1431        <CreateDatabaseRequest as ::protobuf::Message>::default_instance()
1432    }
1433}
1434
1435impl CreateDatabaseRequest {
1436    pub fn new() -> CreateDatabaseRequest {
1437        ::std::default::Default::default()
1438    }
1439
1440    // string parent = 1;
1441
1442
1443    pub fn get_parent(&self) -> &str {
1444        &self.parent
1445    }
1446    pub fn clear_parent(&mut self) {
1447        self.parent.clear();
1448    }
1449
1450    // Param is passed by value, moved
1451    pub fn set_parent(&mut self, v: ::std::string::String) {
1452        self.parent = v;
1453    }
1454
1455    // Mutable pointer to the field.
1456    // If field is not initialized, it is initialized with default value first.
1457    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
1458        &mut self.parent
1459    }
1460
1461    // Take field
1462    pub fn take_parent(&mut self) -> ::std::string::String {
1463        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
1464    }
1465
1466    // string create_statement = 2;
1467
1468
1469    pub fn get_create_statement(&self) -> &str {
1470        &self.create_statement
1471    }
1472    pub fn clear_create_statement(&mut self) {
1473        self.create_statement.clear();
1474    }
1475
1476    // Param is passed by value, moved
1477    pub fn set_create_statement(&mut self, v: ::std::string::String) {
1478        self.create_statement = v;
1479    }
1480
1481    // Mutable pointer to the field.
1482    // If field is not initialized, it is initialized with default value first.
1483    pub fn mut_create_statement(&mut self) -> &mut ::std::string::String {
1484        &mut self.create_statement
1485    }
1486
1487    // Take field
1488    pub fn take_create_statement(&mut self) -> ::std::string::String {
1489        ::std::mem::replace(&mut self.create_statement, ::std::string::String::new())
1490    }
1491
1492    // repeated string extra_statements = 3;
1493
1494
1495    pub fn get_extra_statements(&self) -> &[::std::string::String] {
1496        &self.extra_statements
1497    }
1498    pub fn clear_extra_statements(&mut self) {
1499        self.extra_statements.clear();
1500    }
1501
1502    // Param is passed by value, moved
1503    pub fn set_extra_statements(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1504        self.extra_statements = v;
1505    }
1506
1507    // Mutable pointer to the field.
1508    pub fn mut_extra_statements(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1509        &mut self.extra_statements
1510    }
1511
1512    // Take field
1513    pub fn take_extra_statements(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1514        ::std::mem::replace(&mut self.extra_statements, ::protobuf::RepeatedField::new())
1515    }
1516
1517    // .google.spanner.admin.database.v1.EncryptionConfig encryption_config = 4;
1518
1519
1520    pub fn get_encryption_config(&self) -> &super::common::EncryptionConfig {
1521        self.encryption_config.as_ref().unwrap_or_else(|| <super::common::EncryptionConfig as ::protobuf::Message>::default_instance())
1522    }
1523    pub fn clear_encryption_config(&mut self) {
1524        self.encryption_config.clear();
1525    }
1526
1527    pub fn has_encryption_config(&self) -> bool {
1528        self.encryption_config.is_some()
1529    }
1530
1531    // Param is passed by value, moved
1532    pub fn set_encryption_config(&mut self, v: super::common::EncryptionConfig) {
1533        self.encryption_config = ::protobuf::SingularPtrField::some(v);
1534    }
1535
1536    // Mutable pointer to the field.
1537    // If field is not initialized, it is initialized with default value first.
1538    pub fn mut_encryption_config(&mut self) -> &mut super::common::EncryptionConfig {
1539        if self.encryption_config.is_none() {
1540            self.encryption_config.set_default();
1541        }
1542        self.encryption_config.as_mut().unwrap()
1543    }
1544
1545    // Take field
1546    pub fn take_encryption_config(&mut self) -> super::common::EncryptionConfig {
1547        self.encryption_config.take().unwrap_or_else(|| super::common::EncryptionConfig::new())
1548    }
1549
1550    // .google.spanner.admin.database.v1.DatabaseDialect database_dialect = 5;
1551
1552
1553    pub fn get_database_dialect(&self) -> super::common::DatabaseDialect {
1554        self.database_dialect
1555    }
1556    pub fn clear_database_dialect(&mut self) {
1557        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
1558    }
1559
1560    // Param is passed by value, moved
1561    pub fn set_database_dialect(&mut self, v: super::common::DatabaseDialect) {
1562        self.database_dialect = v;
1563    }
1564}
1565
1566impl ::protobuf::Message for CreateDatabaseRequest {
1567    fn is_initialized(&self) -> bool {
1568        for v in &self.encryption_config {
1569            if !v.is_initialized() {
1570                return false;
1571            }
1572        };
1573        true
1574    }
1575
1576    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1577        while !is.eof()? {
1578            let (field_number, wire_type) = is.read_tag_unpack()?;
1579            match field_number {
1580                1 => {
1581                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1582                },
1583                2 => {
1584                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.create_statement)?;
1585                },
1586                3 => {
1587                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.extra_statements)?;
1588                },
1589                4 => {
1590                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_config)?;
1591                },
1592                5 => {
1593                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.database_dialect, 5, &mut self.unknown_fields)?
1594                },
1595                _ => {
1596                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1597                },
1598            };
1599        }
1600        ::std::result::Result::Ok(())
1601    }
1602
1603    // Compute sizes of nested messages
1604    #[allow(unused_variables)]
1605    fn compute_size(&self) -> u32 {
1606        let mut my_size = 0;
1607        if !self.parent.is_empty() {
1608            my_size += ::protobuf::rt::string_size(1, &self.parent);
1609        }
1610        if !self.create_statement.is_empty() {
1611            my_size += ::protobuf::rt::string_size(2, &self.create_statement);
1612        }
1613        for value in &self.extra_statements {
1614            my_size += ::protobuf::rt::string_size(3, &value);
1615        };
1616        if let Some(ref v) = self.encryption_config.as_ref() {
1617            let len = v.compute_size();
1618            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1619        }
1620        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
1621            my_size += ::protobuf::rt::enum_size(5, self.database_dialect);
1622        }
1623        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1624        self.cached_size.set(my_size);
1625        my_size
1626    }
1627
1628    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1629        if !self.parent.is_empty() {
1630            os.write_string(1, &self.parent)?;
1631        }
1632        if !self.create_statement.is_empty() {
1633            os.write_string(2, &self.create_statement)?;
1634        }
1635        for v in &self.extra_statements {
1636            os.write_string(3, &v)?;
1637        };
1638        if let Some(ref v) = self.encryption_config.as_ref() {
1639            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1640            os.write_raw_varint32(v.get_cached_size())?;
1641            v.write_to_with_cached_sizes(os)?;
1642        }
1643        if self.database_dialect != super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED {
1644            os.write_enum(5, ::protobuf::ProtobufEnum::value(&self.database_dialect))?;
1645        }
1646        os.write_unknown_fields(self.get_unknown_fields())?;
1647        ::std::result::Result::Ok(())
1648    }
1649
1650    fn get_cached_size(&self) -> u32 {
1651        self.cached_size.get()
1652    }
1653
1654    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1655        &self.unknown_fields
1656    }
1657
1658    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1659        &mut self.unknown_fields
1660    }
1661
1662    fn as_any(&self) -> &dyn (::std::any::Any) {
1663        self as &dyn (::std::any::Any)
1664    }
1665    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1666        self as &mut dyn (::std::any::Any)
1667    }
1668    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1669        self
1670    }
1671
1672    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1673        Self::descriptor_static()
1674    }
1675
1676    fn new() -> CreateDatabaseRequest {
1677        CreateDatabaseRequest::new()
1678    }
1679
1680    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1681        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1682        descriptor.get(|| {
1683            let mut fields = ::std::vec::Vec::new();
1684            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1685                "parent",
1686                |m: &CreateDatabaseRequest| { &m.parent },
1687                |m: &mut CreateDatabaseRequest| { &mut m.parent },
1688            ));
1689            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1690                "create_statement",
1691                |m: &CreateDatabaseRequest| { &m.create_statement },
1692                |m: &mut CreateDatabaseRequest| { &mut m.create_statement },
1693            ));
1694            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1695                "extra_statements",
1696                |m: &CreateDatabaseRequest| { &m.extra_statements },
1697                |m: &mut CreateDatabaseRequest| { &mut m.extra_statements },
1698            ));
1699            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::EncryptionConfig>>(
1700                "encryption_config",
1701                |m: &CreateDatabaseRequest| { &m.encryption_config },
1702                |m: &mut CreateDatabaseRequest| { &mut m.encryption_config },
1703            ));
1704            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::common::DatabaseDialect>>(
1705                "database_dialect",
1706                |m: &CreateDatabaseRequest| { &m.database_dialect },
1707                |m: &mut CreateDatabaseRequest| { &mut m.database_dialect },
1708            ));
1709            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateDatabaseRequest>(
1710                "CreateDatabaseRequest",
1711                fields,
1712                file_descriptor_proto()
1713            )
1714        })
1715    }
1716
1717    fn default_instance() -> &'static CreateDatabaseRequest {
1718        static instance: ::protobuf::rt::LazyV2<CreateDatabaseRequest> = ::protobuf::rt::LazyV2::INIT;
1719        instance.get(CreateDatabaseRequest::new)
1720    }
1721}
1722
1723impl ::protobuf::Clear for CreateDatabaseRequest {
1724    fn clear(&mut self) {
1725        self.parent.clear();
1726        self.create_statement.clear();
1727        self.extra_statements.clear();
1728        self.encryption_config.clear();
1729        self.database_dialect = super::common::DatabaseDialect::DATABASE_DIALECT_UNSPECIFIED;
1730        self.unknown_fields.clear();
1731    }
1732}
1733
1734impl ::std::fmt::Debug for CreateDatabaseRequest {
1735    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1736        ::protobuf::text_format::fmt(self, f)
1737    }
1738}
1739
1740impl ::protobuf::reflect::ProtobufValue for CreateDatabaseRequest {
1741    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1742        ::protobuf::reflect::ReflectValueRef::Message(self)
1743    }
1744}
1745
1746#[derive(PartialEq,Clone,Default)]
1747pub struct CreateDatabaseMetadata {
1748    // message fields
1749    pub database: ::std::string::String,
1750    // special fields
1751    pub unknown_fields: ::protobuf::UnknownFields,
1752    pub cached_size: ::protobuf::CachedSize,
1753}
1754
1755impl<'a> ::std::default::Default for &'a CreateDatabaseMetadata {
1756    fn default() -> &'a CreateDatabaseMetadata {
1757        <CreateDatabaseMetadata as ::protobuf::Message>::default_instance()
1758    }
1759}
1760
1761impl CreateDatabaseMetadata {
1762    pub fn new() -> CreateDatabaseMetadata {
1763        ::std::default::Default::default()
1764    }
1765
1766    // string database = 1;
1767
1768
1769    pub fn get_database(&self) -> &str {
1770        &self.database
1771    }
1772    pub fn clear_database(&mut self) {
1773        self.database.clear();
1774    }
1775
1776    // Param is passed by value, moved
1777    pub fn set_database(&mut self, v: ::std::string::String) {
1778        self.database = v;
1779    }
1780
1781    // Mutable pointer to the field.
1782    // If field is not initialized, it is initialized with default value first.
1783    pub fn mut_database(&mut self) -> &mut ::std::string::String {
1784        &mut self.database
1785    }
1786
1787    // Take field
1788    pub fn take_database(&mut self) -> ::std::string::String {
1789        ::std::mem::replace(&mut self.database, ::std::string::String::new())
1790    }
1791}
1792
1793impl ::protobuf::Message for CreateDatabaseMetadata {
1794    fn is_initialized(&self) -> bool {
1795        true
1796    }
1797
1798    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1799        while !is.eof()? {
1800            let (field_number, wire_type) = is.read_tag_unpack()?;
1801            match field_number {
1802                1 => {
1803                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
1804                },
1805                _ => {
1806                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1807                },
1808            };
1809        }
1810        ::std::result::Result::Ok(())
1811    }
1812
1813    // Compute sizes of nested messages
1814    #[allow(unused_variables)]
1815    fn compute_size(&self) -> u32 {
1816        let mut my_size = 0;
1817        if !self.database.is_empty() {
1818            my_size += ::protobuf::rt::string_size(1, &self.database);
1819        }
1820        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1821        self.cached_size.set(my_size);
1822        my_size
1823    }
1824
1825    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1826        if !self.database.is_empty() {
1827            os.write_string(1, &self.database)?;
1828        }
1829        os.write_unknown_fields(self.get_unknown_fields())?;
1830        ::std::result::Result::Ok(())
1831    }
1832
1833    fn get_cached_size(&self) -> u32 {
1834        self.cached_size.get()
1835    }
1836
1837    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1838        &self.unknown_fields
1839    }
1840
1841    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1842        &mut self.unknown_fields
1843    }
1844
1845    fn as_any(&self) -> &dyn (::std::any::Any) {
1846        self as &dyn (::std::any::Any)
1847    }
1848    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1849        self as &mut dyn (::std::any::Any)
1850    }
1851    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1852        self
1853    }
1854
1855    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1856        Self::descriptor_static()
1857    }
1858
1859    fn new() -> CreateDatabaseMetadata {
1860        CreateDatabaseMetadata::new()
1861    }
1862
1863    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1864        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1865        descriptor.get(|| {
1866            let mut fields = ::std::vec::Vec::new();
1867            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1868                "database",
1869                |m: &CreateDatabaseMetadata| { &m.database },
1870                |m: &mut CreateDatabaseMetadata| { &mut m.database },
1871            ));
1872            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateDatabaseMetadata>(
1873                "CreateDatabaseMetadata",
1874                fields,
1875                file_descriptor_proto()
1876            )
1877        })
1878    }
1879
1880    fn default_instance() -> &'static CreateDatabaseMetadata {
1881        static instance: ::protobuf::rt::LazyV2<CreateDatabaseMetadata> = ::protobuf::rt::LazyV2::INIT;
1882        instance.get(CreateDatabaseMetadata::new)
1883    }
1884}
1885
1886impl ::protobuf::Clear for CreateDatabaseMetadata {
1887    fn clear(&mut self) {
1888        self.database.clear();
1889        self.unknown_fields.clear();
1890    }
1891}
1892
1893impl ::std::fmt::Debug for CreateDatabaseMetadata {
1894    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1895        ::protobuf::text_format::fmt(self, f)
1896    }
1897}
1898
1899impl ::protobuf::reflect::ProtobufValue for CreateDatabaseMetadata {
1900    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1901        ::protobuf::reflect::ReflectValueRef::Message(self)
1902    }
1903}
1904
1905#[derive(PartialEq,Clone,Default)]
1906pub struct GetDatabaseRequest {
1907    // message fields
1908    pub name: ::std::string::String,
1909    // special fields
1910    pub unknown_fields: ::protobuf::UnknownFields,
1911    pub cached_size: ::protobuf::CachedSize,
1912}
1913
1914impl<'a> ::std::default::Default for &'a GetDatabaseRequest {
1915    fn default() -> &'a GetDatabaseRequest {
1916        <GetDatabaseRequest as ::protobuf::Message>::default_instance()
1917    }
1918}
1919
1920impl GetDatabaseRequest {
1921    pub fn new() -> GetDatabaseRequest {
1922        ::std::default::Default::default()
1923    }
1924
1925    // string name = 1;
1926
1927
1928    pub fn get_name(&self) -> &str {
1929        &self.name
1930    }
1931    pub fn clear_name(&mut self) {
1932        self.name.clear();
1933    }
1934
1935    // Param is passed by value, moved
1936    pub fn set_name(&mut self, v: ::std::string::String) {
1937        self.name = v;
1938    }
1939
1940    // Mutable pointer to the field.
1941    // If field is not initialized, it is initialized with default value first.
1942    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1943        &mut self.name
1944    }
1945
1946    // Take field
1947    pub fn take_name(&mut self) -> ::std::string::String {
1948        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1949    }
1950}
1951
1952impl ::protobuf::Message for GetDatabaseRequest {
1953    fn is_initialized(&self) -> bool {
1954        true
1955    }
1956
1957    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1958        while !is.eof()? {
1959            let (field_number, wire_type) = is.read_tag_unpack()?;
1960            match field_number {
1961                1 => {
1962                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1963                },
1964                _ => {
1965                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1966                },
1967            };
1968        }
1969        ::std::result::Result::Ok(())
1970    }
1971
1972    // Compute sizes of nested messages
1973    #[allow(unused_variables)]
1974    fn compute_size(&self) -> u32 {
1975        let mut my_size = 0;
1976        if !self.name.is_empty() {
1977            my_size += ::protobuf::rt::string_size(1, &self.name);
1978        }
1979        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1980        self.cached_size.set(my_size);
1981        my_size
1982    }
1983
1984    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1985        if !self.name.is_empty() {
1986            os.write_string(1, &self.name)?;
1987        }
1988        os.write_unknown_fields(self.get_unknown_fields())?;
1989        ::std::result::Result::Ok(())
1990    }
1991
1992    fn get_cached_size(&self) -> u32 {
1993        self.cached_size.get()
1994    }
1995
1996    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1997        &self.unknown_fields
1998    }
1999
2000    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2001        &mut self.unknown_fields
2002    }
2003
2004    fn as_any(&self) -> &dyn (::std::any::Any) {
2005        self as &dyn (::std::any::Any)
2006    }
2007    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2008        self as &mut dyn (::std::any::Any)
2009    }
2010    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2011        self
2012    }
2013
2014    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2015        Self::descriptor_static()
2016    }
2017
2018    fn new() -> GetDatabaseRequest {
2019        GetDatabaseRequest::new()
2020    }
2021
2022    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2023        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2024        descriptor.get(|| {
2025            let mut fields = ::std::vec::Vec::new();
2026            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2027                "name",
2028                |m: &GetDatabaseRequest| { &m.name },
2029                |m: &mut GetDatabaseRequest| { &mut m.name },
2030            ));
2031            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetDatabaseRequest>(
2032                "GetDatabaseRequest",
2033                fields,
2034                file_descriptor_proto()
2035            )
2036        })
2037    }
2038
2039    fn default_instance() -> &'static GetDatabaseRequest {
2040        static instance: ::protobuf::rt::LazyV2<GetDatabaseRequest> = ::protobuf::rt::LazyV2::INIT;
2041        instance.get(GetDatabaseRequest::new)
2042    }
2043}
2044
2045impl ::protobuf::Clear for GetDatabaseRequest {
2046    fn clear(&mut self) {
2047        self.name.clear();
2048        self.unknown_fields.clear();
2049    }
2050}
2051
2052impl ::std::fmt::Debug for GetDatabaseRequest {
2053    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2054        ::protobuf::text_format::fmt(self, f)
2055    }
2056}
2057
2058impl ::protobuf::reflect::ProtobufValue for GetDatabaseRequest {
2059    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2060        ::protobuf::reflect::ReflectValueRef::Message(self)
2061    }
2062}
2063
2064#[derive(PartialEq,Clone,Default)]
2065pub struct UpdateDatabaseRequest {
2066    // message fields
2067    pub database: ::protobuf::SingularPtrField<Database>,
2068    pub update_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
2069    // special fields
2070    pub unknown_fields: ::protobuf::UnknownFields,
2071    pub cached_size: ::protobuf::CachedSize,
2072}
2073
2074impl<'a> ::std::default::Default for &'a UpdateDatabaseRequest {
2075    fn default() -> &'a UpdateDatabaseRequest {
2076        <UpdateDatabaseRequest as ::protobuf::Message>::default_instance()
2077    }
2078}
2079
2080impl UpdateDatabaseRequest {
2081    pub fn new() -> UpdateDatabaseRequest {
2082        ::std::default::Default::default()
2083    }
2084
2085    // .google.spanner.admin.database.v1.Database database = 1;
2086
2087
2088    pub fn get_database(&self) -> &Database {
2089        self.database.as_ref().unwrap_or_else(|| <Database as ::protobuf::Message>::default_instance())
2090    }
2091    pub fn clear_database(&mut self) {
2092        self.database.clear();
2093    }
2094
2095    pub fn has_database(&self) -> bool {
2096        self.database.is_some()
2097    }
2098
2099    // Param is passed by value, moved
2100    pub fn set_database(&mut self, v: Database) {
2101        self.database = ::protobuf::SingularPtrField::some(v);
2102    }
2103
2104    // Mutable pointer to the field.
2105    // If field is not initialized, it is initialized with default value first.
2106    pub fn mut_database(&mut self) -> &mut Database {
2107        if self.database.is_none() {
2108            self.database.set_default();
2109        }
2110        self.database.as_mut().unwrap()
2111    }
2112
2113    // Take field
2114    pub fn take_database(&mut self) -> Database {
2115        self.database.take().unwrap_or_else(|| Database::new())
2116    }
2117
2118    // .google.protobuf.FieldMask update_mask = 2;
2119
2120
2121    pub fn get_update_mask(&self) -> &::protobuf::well_known_types::FieldMask {
2122        self.update_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
2123    }
2124    pub fn clear_update_mask(&mut self) {
2125        self.update_mask.clear();
2126    }
2127
2128    pub fn has_update_mask(&self) -> bool {
2129        self.update_mask.is_some()
2130    }
2131
2132    // Param is passed by value, moved
2133    pub fn set_update_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
2134        self.update_mask = ::protobuf::SingularPtrField::some(v);
2135    }
2136
2137    // Mutable pointer to the field.
2138    // If field is not initialized, it is initialized with default value first.
2139    pub fn mut_update_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
2140        if self.update_mask.is_none() {
2141            self.update_mask.set_default();
2142        }
2143        self.update_mask.as_mut().unwrap()
2144    }
2145
2146    // Take field
2147    pub fn take_update_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
2148        self.update_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
2149    }
2150}
2151
2152impl ::protobuf::Message for UpdateDatabaseRequest {
2153    fn is_initialized(&self) -> bool {
2154        for v in &self.database {
2155            if !v.is_initialized() {
2156                return false;
2157            }
2158        };
2159        for v in &self.update_mask {
2160            if !v.is_initialized() {
2161                return false;
2162            }
2163        };
2164        true
2165    }
2166
2167    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2168        while !is.eof()? {
2169            let (field_number, wire_type) = is.read_tag_unpack()?;
2170            match field_number {
2171                1 => {
2172                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.database)?;
2173                },
2174                2 => {
2175                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_mask)?;
2176                },
2177                _ => {
2178                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2179                },
2180            };
2181        }
2182        ::std::result::Result::Ok(())
2183    }
2184
2185    // Compute sizes of nested messages
2186    #[allow(unused_variables)]
2187    fn compute_size(&self) -> u32 {
2188        let mut my_size = 0;
2189        if let Some(ref v) = self.database.as_ref() {
2190            let len = v.compute_size();
2191            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2192        }
2193        if let Some(ref v) = self.update_mask.as_ref() {
2194            let len = v.compute_size();
2195            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2196        }
2197        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2198        self.cached_size.set(my_size);
2199        my_size
2200    }
2201
2202    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2203        if let Some(ref v) = self.database.as_ref() {
2204            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2205            os.write_raw_varint32(v.get_cached_size())?;
2206            v.write_to_with_cached_sizes(os)?;
2207        }
2208        if let Some(ref v) = self.update_mask.as_ref() {
2209            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2210            os.write_raw_varint32(v.get_cached_size())?;
2211            v.write_to_with_cached_sizes(os)?;
2212        }
2213        os.write_unknown_fields(self.get_unknown_fields())?;
2214        ::std::result::Result::Ok(())
2215    }
2216
2217    fn get_cached_size(&self) -> u32 {
2218        self.cached_size.get()
2219    }
2220
2221    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2222        &self.unknown_fields
2223    }
2224
2225    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2226        &mut self.unknown_fields
2227    }
2228
2229    fn as_any(&self) -> &dyn (::std::any::Any) {
2230        self as &dyn (::std::any::Any)
2231    }
2232    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2233        self as &mut dyn (::std::any::Any)
2234    }
2235    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2236        self
2237    }
2238
2239    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2240        Self::descriptor_static()
2241    }
2242
2243    fn new() -> UpdateDatabaseRequest {
2244        UpdateDatabaseRequest::new()
2245    }
2246
2247    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2248        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2249        descriptor.get(|| {
2250            let mut fields = ::std::vec::Vec::new();
2251            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Database>>(
2252                "database",
2253                |m: &UpdateDatabaseRequest| { &m.database },
2254                |m: &mut UpdateDatabaseRequest| { &mut m.database },
2255            ));
2256            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
2257                "update_mask",
2258                |m: &UpdateDatabaseRequest| { &m.update_mask },
2259                |m: &mut UpdateDatabaseRequest| { &mut m.update_mask },
2260            ));
2261            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateDatabaseRequest>(
2262                "UpdateDatabaseRequest",
2263                fields,
2264                file_descriptor_proto()
2265            )
2266        })
2267    }
2268
2269    fn default_instance() -> &'static UpdateDatabaseRequest {
2270        static instance: ::protobuf::rt::LazyV2<UpdateDatabaseRequest> = ::protobuf::rt::LazyV2::INIT;
2271        instance.get(UpdateDatabaseRequest::new)
2272    }
2273}
2274
2275impl ::protobuf::Clear for UpdateDatabaseRequest {
2276    fn clear(&mut self) {
2277        self.database.clear();
2278        self.update_mask.clear();
2279        self.unknown_fields.clear();
2280    }
2281}
2282
2283impl ::std::fmt::Debug for UpdateDatabaseRequest {
2284    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2285        ::protobuf::text_format::fmt(self, f)
2286    }
2287}
2288
2289impl ::protobuf::reflect::ProtobufValue for UpdateDatabaseRequest {
2290    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2291        ::protobuf::reflect::ReflectValueRef::Message(self)
2292    }
2293}
2294
2295#[derive(PartialEq,Clone,Default)]
2296pub struct UpdateDatabaseMetadata {
2297    // message fields
2298    pub request: ::protobuf::SingularPtrField<UpdateDatabaseRequest>,
2299    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
2300    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
2301    // special fields
2302    pub unknown_fields: ::protobuf::UnknownFields,
2303    pub cached_size: ::protobuf::CachedSize,
2304}
2305
2306impl<'a> ::std::default::Default for &'a UpdateDatabaseMetadata {
2307    fn default() -> &'a UpdateDatabaseMetadata {
2308        <UpdateDatabaseMetadata as ::protobuf::Message>::default_instance()
2309    }
2310}
2311
2312impl UpdateDatabaseMetadata {
2313    pub fn new() -> UpdateDatabaseMetadata {
2314        ::std::default::Default::default()
2315    }
2316
2317    // .google.spanner.admin.database.v1.UpdateDatabaseRequest request = 1;
2318
2319
2320    pub fn get_request(&self) -> &UpdateDatabaseRequest {
2321        self.request.as_ref().unwrap_or_else(|| <UpdateDatabaseRequest as ::protobuf::Message>::default_instance())
2322    }
2323    pub fn clear_request(&mut self) {
2324        self.request.clear();
2325    }
2326
2327    pub fn has_request(&self) -> bool {
2328        self.request.is_some()
2329    }
2330
2331    // Param is passed by value, moved
2332    pub fn set_request(&mut self, v: UpdateDatabaseRequest) {
2333        self.request = ::protobuf::SingularPtrField::some(v);
2334    }
2335
2336    // Mutable pointer to the field.
2337    // If field is not initialized, it is initialized with default value first.
2338    pub fn mut_request(&mut self) -> &mut UpdateDatabaseRequest {
2339        if self.request.is_none() {
2340            self.request.set_default();
2341        }
2342        self.request.as_mut().unwrap()
2343    }
2344
2345    // Take field
2346    pub fn take_request(&mut self) -> UpdateDatabaseRequest {
2347        self.request.take().unwrap_or_else(|| UpdateDatabaseRequest::new())
2348    }
2349
2350    // .google.spanner.admin.database.v1.OperationProgress progress = 2;
2351
2352
2353    pub fn get_progress(&self) -> &super::common::OperationProgress {
2354        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
2355    }
2356    pub fn clear_progress(&mut self) {
2357        self.progress.clear();
2358    }
2359
2360    pub fn has_progress(&self) -> bool {
2361        self.progress.is_some()
2362    }
2363
2364    // Param is passed by value, moved
2365    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
2366        self.progress = ::protobuf::SingularPtrField::some(v);
2367    }
2368
2369    // Mutable pointer to the field.
2370    // If field is not initialized, it is initialized with default value first.
2371    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
2372        if self.progress.is_none() {
2373            self.progress.set_default();
2374        }
2375        self.progress.as_mut().unwrap()
2376    }
2377
2378    // Take field
2379    pub fn take_progress(&mut self) -> super::common::OperationProgress {
2380        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
2381    }
2382
2383    // .google.protobuf.Timestamp cancel_time = 3;
2384
2385
2386    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
2387        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
2388    }
2389    pub fn clear_cancel_time(&mut self) {
2390        self.cancel_time.clear();
2391    }
2392
2393    pub fn has_cancel_time(&self) -> bool {
2394        self.cancel_time.is_some()
2395    }
2396
2397    // Param is passed by value, moved
2398    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
2399        self.cancel_time = ::protobuf::SingularPtrField::some(v);
2400    }
2401
2402    // Mutable pointer to the field.
2403    // If field is not initialized, it is initialized with default value first.
2404    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
2405        if self.cancel_time.is_none() {
2406            self.cancel_time.set_default();
2407        }
2408        self.cancel_time.as_mut().unwrap()
2409    }
2410
2411    // Take field
2412    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
2413        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
2414    }
2415}
2416
2417impl ::protobuf::Message for UpdateDatabaseMetadata {
2418    fn is_initialized(&self) -> bool {
2419        for v in &self.request {
2420            if !v.is_initialized() {
2421                return false;
2422            }
2423        };
2424        for v in &self.progress {
2425            if !v.is_initialized() {
2426                return false;
2427            }
2428        };
2429        for v in &self.cancel_time {
2430            if !v.is_initialized() {
2431                return false;
2432            }
2433        };
2434        true
2435    }
2436
2437    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2438        while !is.eof()? {
2439            let (field_number, wire_type) = is.read_tag_unpack()?;
2440            match field_number {
2441                1 => {
2442                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.request)?;
2443                },
2444                2 => {
2445                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
2446                },
2447                3 => {
2448                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
2449                },
2450                _ => {
2451                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2452                },
2453            };
2454        }
2455        ::std::result::Result::Ok(())
2456    }
2457
2458    // Compute sizes of nested messages
2459    #[allow(unused_variables)]
2460    fn compute_size(&self) -> u32 {
2461        let mut my_size = 0;
2462        if let Some(ref v) = self.request.as_ref() {
2463            let len = v.compute_size();
2464            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2465        }
2466        if let Some(ref v) = self.progress.as_ref() {
2467            let len = v.compute_size();
2468            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2469        }
2470        if let Some(ref v) = self.cancel_time.as_ref() {
2471            let len = v.compute_size();
2472            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2473        }
2474        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2475        self.cached_size.set(my_size);
2476        my_size
2477    }
2478
2479    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2480        if let Some(ref v) = self.request.as_ref() {
2481            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2482            os.write_raw_varint32(v.get_cached_size())?;
2483            v.write_to_with_cached_sizes(os)?;
2484        }
2485        if let Some(ref v) = self.progress.as_ref() {
2486            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2487            os.write_raw_varint32(v.get_cached_size())?;
2488            v.write_to_with_cached_sizes(os)?;
2489        }
2490        if let Some(ref v) = self.cancel_time.as_ref() {
2491            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2492            os.write_raw_varint32(v.get_cached_size())?;
2493            v.write_to_with_cached_sizes(os)?;
2494        }
2495        os.write_unknown_fields(self.get_unknown_fields())?;
2496        ::std::result::Result::Ok(())
2497    }
2498
2499    fn get_cached_size(&self) -> u32 {
2500        self.cached_size.get()
2501    }
2502
2503    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2504        &self.unknown_fields
2505    }
2506
2507    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2508        &mut self.unknown_fields
2509    }
2510
2511    fn as_any(&self) -> &dyn (::std::any::Any) {
2512        self as &dyn (::std::any::Any)
2513    }
2514    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2515        self as &mut dyn (::std::any::Any)
2516    }
2517    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2518        self
2519    }
2520
2521    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2522        Self::descriptor_static()
2523    }
2524
2525    fn new() -> UpdateDatabaseMetadata {
2526        UpdateDatabaseMetadata::new()
2527    }
2528
2529    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2530        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2531        descriptor.get(|| {
2532            let mut fields = ::std::vec::Vec::new();
2533            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UpdateDatabaseRequest>>(
2534                "request",
2535                |m: &UpdateDatabaseMetadata| { &m.request },
2536                |m: &mut UpdateDatabaseMetadata| { &mut m.request },
2537            ));
2538            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
2539                "progress",
2540                |m: &UpdateDatabaseMetadata| { &m.progress },
2541                |m: &mut UpdateDatabaseMetadata| { &mut m.progress },
2542            ));
2543            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
2544                "cancel_time",
2545                |m: &UpdateDatabaseMetadata| { &m.cancel_time },
2546                |m: &mut UpdateDatabaseMetadata| { &mut m.cancel_time },
2547            ));
2548            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateDatabaseMetadata>(
2549                "UpdateDatabaseMetadata",
2550                fields,
2551                file_descriptor_proto()
2552            )
2553        })
2554    }
2555
2556    fn default_instance() -> &'static UpdateDatabaseMetadata {
2557        static instance: ::protobuf::rt::LazyV2<UpdateDatabaseMetadata> = ::protobuf::rt::LazyV2::INIT;
2558        instance.get(UpdateDatabaseMetadata::new)
2559    }
2560}
2561
2562impl ::protobuf::Clear for UpdateDatabaseMetadata {
2563    fn clear(&mut self) {
2564        self.request.clear();
2565        self.progress.clear();
2566        self.cancel_time.clear();
2567        self.unknown_fields.clear();
2568    }
2569}
2570
2571impl ::std::fmt::Debug for UpdateDatabaseMetadata {
2572    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2573        ::protobuf::text_format::fmt(self, f)
2574    }
2575}
2576
2577impl ::protobuf::reflect::ProtobufValue for UpdateDatabaseMetadata {
2578    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2579        ::protobuf::reflect::ReflectValueRef::Message(self)
2580    }
2581}
2582
2583#[derive(PartialEq,Clone,Default)]
2584pub struct UpdateDatabaseDdlRequest {
2585    // message fields
2586    pub database: ::std::string::String,
2587    pub statements: ::protobuf::RepeatedField<::std::string::String>,
2588    pub operation_id: ::std::string::String,
2589    // special fields
2590    pub unknown_fields: ::protobuf::UnknownFields,
2591    pub cached_size: ::protobuf::CachedSize,
2592}
2593
2594impl<'a> ::std::default::Default for &'a UpdateDatabaseDdlRequest {
2595    fn default() -> &'a UpdateDatabaseDdlRequest {
2596        <UpdateDatabaseDdlRequest as ::protobuf::Message>::default_instance()
2597    }
2598}
2599
2600impl UpdateDatabaseDdlRequest {
2601    pub fn new() -> UpdateDatabaseDdlRequest {
2602        ::std::default::Default::default()
2603    }
2604
2605    // string database = 1;
2606
2607
2608    pub fn get_database(&self) -> &str {
2609        &self.database
2610    }
2611    pub fn clear_database(&mut self) {
2612        self.database.clear();
2613    }
2614
2615    // Param is passed by value, moved
2616    pub fn set_database(&mut self, v: ::std::string::String) {
2617        self.database = v;
2618    }
2619
2620    // Mutable pointer to the field.
2621    // If field is not initialized, it is initialized with default value first.
2622    pub fn mut_database(&mut self) -> &mut ::std::string::String {
2623        &mut self.database
2624    }
2625
2626    // Take field
2627    pub fn take_database(&mut self) -> ::std::string::String {
2628        ::std::mem::replace(&mut self.database, ::std::string::String::new())
2629    }
2630
2631    // repeated string statements = 2;
2632
2633
2634    pub fn get_statements(&self) -> &[::std::string::String] {
2635        &self.statements
2636    }
2637    pub fn clear_statements(&mut self) {
2638        self.statements.clear();
2639    }
2640
2641    // Param is passed by value, moved
2642    pub fn set_statements(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
2643        self.statements = v;
2644    }
2645
2646    // Mutable pointer to the field.
2647    pub fn mut_statements(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
2648        &mut self.statements
2649    }
2650
2651    // Take field
2652    pub fn take_statements(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
2653        ::std::mem::replace(&mut self.statements, ::protobuf::RepeatedField::new())
2654    }
2655
2656    // string operation_id = 3;
2657
2658
2659    pub fn get_operation_id(&self) -> &str {
2660        &self.operation_id
2661    }
2662    pub fn clear_operation_id(&mut self) {
2663        self.operation_id.clear();
2664    }
2665
2666    // Param is passed by value, moved
2667    pub fn set_operation_id(&mut self, v: ::std::string::String) {
2668        self.operation_id = v;
2669    }
2670
2671    // Mutable pointer to the field.
2672    // If field is not initialized, it is initialized with default value first.
2673    pub fn mut_operation_id(&mut self) -> &mut ::std::string::String {
2674        &mut self.operation_id
2675    }
2676
2677    // Take field
2678    pub fn take_operation_id(&mut self) -> ::std::string::String {
2679        ::std::mem::replace(&mut self.operation_id, ::std::string::String::new())
2680    }
2681}
2682
2683impl ::protobuf::Message for UpdateDatabaseDdlRequest {
2684    fn is_initialized(&self) -> bool {
2685        true
2686    }
2687
2688    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2689        while !is.eof()? {
2690            let (field_number, wire_type) = is.read_tag_unpack()?;
2691            match field_number {
2692                1 => {
2693                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
2694                },
2695                2 => {
2696                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.statements)?;
2697                },
2698                3 => {
2699                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.operation_id)?;
2700                },
2701                _ => {
2702                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2703                },
2704            };
2705        }
2706        ::std::result::Result::Ok(())
2707    }
2708
2709    // Compute sizes of nested messages
2710    #[allow(unused_variables)]
2711    fn compute_size(&self) -> u32 {
2712        let mut my_size = 0;
2713        if !self.database.is_empty() {
2714            my_size += ::protobuf::rt::string_size(1, &self.database);
2715        }
2716        for value in &self.statements {
2717            my_size += ::protobuf::rt::string_size(2, &value);
2718        };
2719        if !self.operation_id.is_empty() {
2720            my_size += ::protobuf::rt::string_size(3, &self.operation_id);
2721        }
2722        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2723        self.cached_size.set(my_size);
2724        my_size
2725    }
2726
2727    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2728        if !self.database.is_empty() {
2729            os.write_string(1, &self.database)?;
2730        }
2731        for v in &self.statements {
2732            os.write_string(2, &v)?;
2733        };
2734        if !self.operation_id.is_empty() {
2735            os.write_string(3, &self.operation_id)?;
2736        }
2737        os.write_unknown_fields(self.get_unknown_fields())?;
2738        ::std::result::Result::Ok(())
2739    }
2740
2741    fn get_cached_size(&self) -> u32 {
2742        self.cached_size.get()
2743    }
2744
2745    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2746        &self.unknown_fields
2747    }
2748
2749    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2750        &mut self.unknown_fields
2751    }
2752
2753    fn as_any(&self) -> &dyn (::std::any::Any) {
2754        self as &dyn (::std::any::Any)
2755    }
2756    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2757        self as &mut dyn (::std::any::Any)
2758    }
2759    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2760        self
2761    }
2762
2763    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2764        Self::descriptor_static()
2765    }
2766
2767    fn new() -> UpdateDatabaseDdlRequest {
2768        UpdateDatabaseDdlRequest::new()
2769    }
2770
2771    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2772        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2773        descriptor.get(|| {
2774            let mut fields = ::std::vec::Vec::new();
2775            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2776                "database",
2777                |m: &UpdateDatabaseDdlRequest| { &m.database },
2778                |m: &mut UpdateDatabaseDdlRequest| { &mut m.database },
2779            ));
2780            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2781                "statements",
2782                |m: &UpdateDatabaseDdlRequest| { &m.statements },
2783                |m: &mut UpdateDatabaseDdlRequest| { &mut m.statements },
2784            ));
2785            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2786                "operation_id",
2787                |m: &UpdateDatabaseDdlRequest| { &m.operation_id },
2788                |m: &mut UpdateDatabaseDdlRequest| { &mut m.operation_id },
2789            ));
2790            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateDatabaseDdlRequest>(
2791                "UpdateDatabaseDdlRequest",
2792                fields,
2793                file_descriptor_proto()
2794            )
2795        })
2796    }
2797
2798    fn default_instance() -> &'static UpdateDatabaseDdlRequest {
2799        static instance: ::protobuf::rt::LazyV2<UpdateDatabaseDdlRequest> = ::protobuf::rt::LazyV2::INIT;
2800        instance.get(UpdateDatabaseDdlRequest::new)
2801    }
2802}
2803
2804impl ::protobuf::Clear for UpdateDatabaseDdlRequest {
2805    fn clear(&mut self) {
2806        self.database.clear();
2807        self.statements.clear();
2808        self.operation_id.clear();
2809        self.unknown_fields.clear();
2810    }
2811}
2812
2813impl ::std::fmt::Debug for UpdateDatabaseDdlRequest {
2814    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2815        ::protobuf::text_format::fmt(self, f)
2816    }
2817}
2818
2819impl ::protobuf::reflect::ProtobufValue for UpdateDatabaseDdlRequest {
2820    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2821        ::protobuf::reflect::ReflectValueRef::Message(self)
2822    }
2823}
2824
2825#[derive(PartialEq,Clone,Default)]
2826pub struct DdlStatementActionInfo {
2827    // message fields
2828    pub action: ::std::string::String,
2829    pub entity_type: ::std::string::String,
2830    pub entity_names: ::protobuf::RepeatedField<::std::string::String>,
2831    // special fields
2832    pub unknown_fields: ::protobuf::UnknownFields,
2833    pub cached_size: ::protobuf::CachedSize,
2834}
2835
2836impl<'a> ::std::default::Default for &'a DdlStatementActionInfo {
2837    fn default() -> &'a DdlStatementActionInfo {
2838        <DdlStatementActionInfo as ::protobuf::Message>::default_instance()
2839    }
2840}
2841
2842impl DdlStatementActionInfo {
2843    pub fn new() -> DdlStatementActionInfo {
2844        ::std::default::Default::default()
2845    }
2846
2847    // string action = 1;
2848
2849
2850    pub fn get_action(&self) -> &str {
2851        &self.action
2852    }
2853    pub fn clear_action(&mut self) {
2854        self.action.clear();
2855    }
2856
2857    // Param is passed by value, moved
2858    pub fn set_action(&mut self, v: ::std::string::String) {
2859        self.action = v;
2860    }
2861
2862    // Mutable pointer to the field.
2863    // If field is not initialized, it is initialized with default value first.
2864    pub fn mut_action(&mut self) -> &mut ::std::string::String {
2865        &mut self.action
2866    }
2867
2868    // Take field
2869    pub fn take_action(&mut self) -> ::std::string::String {
2870        ::std::mem::replace(&mut self.action, ::std::string::String::new())
2871    }
2872
2873    // string entity_type = 2;
2874
2875
2876    pub fn get_entity_type(&self) -> &str {
2877        &self.entity_type
2878    }
2879    pub fn clear_entity_type(&mut self) {
2880        self.entity_type.clear();
2881    }
2882
2883    // Param is passed by value, moved
2884    pub fn set_entity_type(&mut self, v: ::std::string::String) {
2885        self.entity_type = v;
2886    }
2887
2888    // Mutable pointer to the field.
2889    // If field is not initialized, it is initialized with default value first.
2890    pub fn mut_entity_type(&mut self) -> &mut ::std::string::String {
2891        &mut self.entity_type
2892    }
2893
2894    // Take field
2895    pub fn take_entity_type(&mut self) -> ::std::string::String {
2896        ::std::mem::replace(&mut self.entity_type, ::std::string::String::new())
2897    }
2898
2899    // repeated string entity_names = 3;
2900
2901
2902    pub fn get_entity_names(&self) -> &[::std::string::String] {
2903        &self.entity_names
2904    }
2905    pub fn clear_entity_names(&mut self) {
2906        self.entity_names.clear();
2907    }
2908
2909    // Param is passed by value, moved
2910    pub fn set_entity_names(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
2911        self.entity_names = v;
2912    }
2913
2914    // Mutable pointer to the field.
2915    pub fn mut_entity_names(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
2916        &mut self.entity_names
2917    }
2918
2919    // Take field
2920    pub fn take_entity_names(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
2921        ::std::mem::replace(&mut self.entity_names, ::protobuf::RepeatedField::new())
2922    }
2923}
2924
2925impl ::protobuf::Message for DdlStatementActionInfo {
2926    fn is_initialized(&self) -> bool {
2927        true
2928    }
2929
2930    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2931        while !is.eof()? {
2932            let (field_number, wire_type) = is.read_tag_unpack()?;
2933            match field_number {
2934                1 => {
2935                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.action)?;
2936                },
2937                2 => {
2938                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.entity_type)?;
2939                },
2940                3 => {
2941                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.entity_names)?;
2942                },
2943                _ => {
2944                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2945                },
2946            };
2947        }
2948        ::std::result::Result::Ok(())
2949    }
2950
2951    // Compute sizes of nested messages
2952    #[allow(unused_variables)]
2953    fn compute_size(&self) -> u32 {
2954        let mut my_size = 0;
2955        if !self.action.is_empty() {
2956            my_size += ::protobuf::rt::string_size(1, &self.action);
2957        }
2958        if !self.entity_type.is_empty() {
2959            my_size += ::protobuf::rt::string_size(2, &self.entity_type);
2960        }
2961        for value in &self.entity_names {
2962            my_size += ::protobuf::rt::string_size(3, &value);
2963        };
2964        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2965        self.cached_size.set(my_size);
2966        my_size
2967    }
2968
2969    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2970        if !self.action.is_empty() {
2971            os.write_string(1, &self.action)?;
2972        }
2973        if !self.entity_type.is_empty() {
2974            os.write_string(2, &self.entity_type)?;
2975        }
2976        for v in &self.entity_names {
2977            os.write_string(3, &v)?;
2978        };
2979        os.write_unknown_fields(self.get_unknown_fields())?;
2980        ::std::result::Result::Ok(())
2981    }
2982
2983    fn get_cached_size(&self) -> u32 {
2984        self.cached_size.get()
2985    }
2986
2987    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2988        &self.unknown_fields
2989    }
2990
2991    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2992        &mut self.unknown_fields
2993    }
2994
2995    fn as_any(&self) -> &dyn (::std::any::Any) {
2996        self as &dyn (::std::any::Any)
2997    }
2998    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2999        self as &mut dyn (::std::any::Any)
3000    }
3001    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3002        self
3003    }
3004
3005    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3006        Self::descriptor_static()
3007    }
3008
3009    fn new() -> DdlStatementActionInfo {
3010        DdlStatementActionInfo::new()
3011    }
3012
3013    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3014        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3015        descriptor.get(|| {
3016            let mut fields = ::std::vec::Vec::new();
3017            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3018                "action",
3019                |m: &DdlStatementActionInfo| { &m.action },
3020                |m: &mut DdlStatementActionInfo| { &mut m.action },
3021            ));
3022            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3023                "entity_type",
3024                |m: &DdlStatementActionInfo| { &m.entity_type },
3025                |m: &mut DdlStatementActionInfo| { &mut m.entity_type },
3026            ));
3027            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3028                "entity_names",
3029                |m: &DdlStatementActionInfo| { &m.entity_names },
3030                |m: &mut DdlStatementActionInfo| { &mut m.entity_names },
3031            ));
3032            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DdlStatementActionInfo>(
3033                "DdlStatementActionInfo",
3034                fields,
3035                file_descriptor_proto()
3036            )
3037        })
3038    }
3039
3040    fn default_instance() -> &'static DdlStatementActionInfo {
3041        static instance: ::protobuf::rt::LazyV2<DdlStatementActionInfo> = ::protobuf::rt::LazyV2::INIT;
3042        instance.get(DdlStatementActionInfo::new)
3043    }
3044}
3045
3046impl ::protobuf::Clear for DdlStatementActionInfo {
3047    fn clear(&mut self) {
3048        self.action.clear();
3049        self.entity_type.clear();
3050        self.entity_names.clear();
3051        self.unknown_fields.clear();
3052    }
3053}
3054
3055impl ::std::fmt::Debug for DdlStatementActionInfo {
3056    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3057        ::protobuf::text_format::fmt(self, f)
3058    }
3059}
3060
3061impl ::protobuf::reflect::ProtobufValue for DdlStatementActionInfo {
3062    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3063        ::protobuf::reflect::ReflectValueRef::Message(self)
3064    }
3065}
3066
3067#[derive(PartialEq,Clone,Default)]
3068pub struct UpdateDatabaseDdlMetadata {
3069    // message fields
3070    pub database: ::std::string::String,
3071    pub statements: ::protobuf::RepeatedField<::std::string::String>,
3072    pub commit_timestamps: ::protobuf::RepeatedField<::protobuf::well_known_types::Timestamp>,
3073    pub throttled: bool,
3074    pub progress: ::protobuf::RepeatedField<super::common::OperationProgress>,
3075    pub actions: ::protobuf::RepeatedField<DdlStatementActionInfo>,
3076    // special fields
3077    pub unknown_fields: ::protobuf::UnknownFields,
3078    pub cached_size: ::protobuf::CachedSize,
3079}
3080
3081impl<'a> ::std::default::Default for &'a UpdateDatabaseDdlMetadata {
3082    fn default() -> &'a UpdateDatabaseDdlMetadata {
3083        <UpdateDatabaseDdlMetadata as ::protobuf::Message>::default_instance()
3084    }
3085}
3086
3087impl UpdateDatabaseDdlMetadata {
3088    pub fn new() -> UpdateDatabaseDdlMetadata {
3089        ::std::default::Default::default()
3090    }
3091
3092    // string database = 1;
3093
3094
3095    pub fn get_database(&self) -> &str {
3096        &self.database
3097    }
3098    pub fn clear_database(&mut self) {
3099        self.database.clear();
3100    }
3101
3102    // Param is passed by value, moved
3103    pub fn set_database(&mut self, v: ::std::string::String) {
3104        self.database = v;
3105    }
3106
3107    // Mutable pointer to the field.
3108    // If field is not initialized, it is initialized with default value first.
3109    pub fn mut_database(&mut self) -> &mut ::std::string::String {
3110        &mut self.database
3111    }
3112
3113    // Take field
3114    pub fn take_database(&mut self) -> ::std::string::String {
3115        ::std::mem::replace(&mut self.database, ::std::string::String::new())
3116    }
3117
3118    // repeated string statements = 2;
3119
3120
3121    pub fn get_statements(&self) -> &[::std::string::String] {
3122        &self.statements
3123    }
3124    pub fn clear_statements(&mut self) {
3125        self.statements.clear();
3126    }
3127
3128    // Param is passed by value, moved
3129    pub fn set_statements(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
3130        self.statements = v;
3131    }
3132
3133    // Mutable pointer to the field.
3134    pub fn mut_statements(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
3135        &mut self.statements
3136    }
3137
3138    // Take field
3139    pub fn take_statements(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
3140        ::std::mem::replace(&mut self.statements, ::protobuf::RepeatedField::new())
3141    }
3142
3143    // repeated .google.protobuf.Timestamp commit_timestamps = 3;
3144
3145
3146    pub fn get_commit_timestamps(&self) -> &[::protobuf::well_known_types::Timestamp] {
3147        &self.commit_timestamps
3148    }
3149    pub fn clear_commit_timestamps(&mut self) {
3150        self.commit_timestamps.clear();
3151    }
3152
3153    // Param is passed by value, moved
3154    pub fn set_commit_timestamps(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::Timestamp>) {
3155        self.commit_timestamps = v;
3156    }
3157
3158    // Mutable pointer to the field.
3159    pub fn mut_commit_timestamps(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::Timestamp> {
3160        &mut self.commit_timestamps
3161    }
3162
3163    // Take field
3164    pub fn take_commit_timestamps(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::Timestamp> {
3165        ::std::mem::replace(&mut self.commit_timestamps, ::protobuf::RepeatedField::new())
3166    }
3167
3168    // bool throttled = 4;
3169
3170
3171    pub fn get_throttled(&self) -> bool {
3172        self.throttled
3173    }
3174    pub fn clear_throttled(&mut self) {
3175        self.throttled = false;
3176    }
3177
3178    // Param is passed by value, moved
3179    pub fn set_throttled(&mut self, v: bool) {
3180        self.throttled = v;
3181    }
3182
3183    // repeated .google.spanner.admin.database.v1.OperationProgress progress = 5;
3184
3185
3186    pub fn get_progress(&self) -> &[super::common::OperationProgress] {
3187        &self.progress
3188    }
3189    pub fn clear_progress(&mut self) {
3190        self.progress.clear();
3191    }
3192
3193    // Param is passed by value, moved
3194    pub fn set_progress(&mut self, v: ::protobuf::RepeatedField<super::common::OperationProgress>) {
3195        self.progress = v;
3196    }
3197
3198    // Mutable pointer to the field.
3199    pub fn mut_progress(&mut self) -> &mut ::protobuf::RepeatedField<super::common::OperationProgress> {
3200        &mut self.progress
3201    }
3202
3203    // Take field
3204    pub fn take_progress(&mut self) -> ::protobuf::RepeatedField<super::common::OperationProgress> {
3205        ::std::mem::replace(&mut self.progress, ::protobuf::RepeatedField::new())
3206    }
3207
3208    // repeated .google.spanner.admin.database.v1.DdlStatementActionInfo actions = 6;
3209
3210
3211    pub fn get_actions(&self) -> &[DdlStatementActionInfo] {
3212        &self.actions
3213    }
3214    pub fn clear_actions(&mut self) {
3215        self.actions.clear();
3216    }
3217
3218    // Param is passed by value, moved
3219    pub fn set_actions(&mut self, v: ::protobuf::RepeatedField<DdlStatementActionInfo>) {
3220        self.actions = v;
3221    }
3222
3223    // Mutable pointer to the field.
3224    pub fn mut_actions(&mut self) -> &mut ::protobuf::RepeatedField<DdlStatementActionInfo> {
3225        &mut self.actions
3226    }
3227
3228    // Take field
3229    pub fn take_actions(&mut self) -> ::protobuf::RepeatedField<DdlStatementActionInfo> {
3230        ::std::mem::replace(&mut self.actions, ::protobuf::RepeatedField::new())
3231    }
3232}
3233
3234impl ::protobuf::Message for UpdateDatabaseDdlMetadata {
3235    fn is_initialized(&self) -> bool {
3236        for v in &self.commit_timestamps {
3237            if !v.is_initialized() {
3238                return false;
3239            }
3240        };
3241        for v in &self.progress {
3242            if !v.is_initialized() {
3243                return false;
3244            }
3245        };
3246        for v in &self.actions {
3247            if !v.is_initialized() {
3248                return false;
3249            }
3250        };
3251        true
3252    }
3253
3254    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3255        while !is.eof()? {
3256            let (field_number, wire_type) = is.read_tag_unpack()?;
3257            match field_number {
3258                1 => {
3259                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
3260                },
3261                2 => {
3262                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.statements)?;
3263                },
3264                3 => {
3265                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.commit_timestamps)?;
3266                },
3267                4 => {
3268                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3269                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3270                    }
3271                    let tmp = is.read_bool()?;
3272                    self.throttled = tmp;
3273                },
3274                5 => {
3275                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.progress)?;
3276                },
3277                6 => {
3278                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.actions)?;
3279                },
3280                _ => {
3281                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3282                },
3283            };
3284        }
3285        ::std::result::Result::Ok(())
3286    }
3287
3288    // Compute sizes of nested messages
3289    #[allow(unused_variables)]
3290    fn compute_size(&self) -> u32 {
3291        let mut my_size = 0;
3292        if !self.database.is_empty() {
3293            my_size += ::protobuf::rt::string_size(1, &self.database);
3294        }
3295        for value in &self.statements {
3296            my_size += ::protobuf::rt::string_size(2, &value);
3297        };
3298        for value in &self.commit_timestamps {
3299            let len = value.compute_size();
3300            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3301        };
3302        if self.throttled != false {
3303            my_size += 2;
3304        }
3305        for value in &self.progress {
3306            let len = value.compute_size();
3307            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3308        };
3309        for value in &self.actions {
3310            let len = value.compute_size();
3311            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3312        };
3313        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3314        self.cached_size.set(my_size);
3315        my_size
3316    }
3317
3318    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3319        if !self.database.is_empty() {
3320            os.write_string(1, &self.database)?;
3321        }
3322        for v in &self.statements {
3323            os.write_string(2, &v)?;
3324        };
3325        for v in &self.commit_timestamps {
3326            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3327            os.write_raw_varint32(v.get_cached_size())?;
3328            v.write_to_with_cached_sizes(os)?;
3329        };
3330        if self.throttled != false {
3331            os.write_bool(4, self.throttled)?;
3332        }
3333        for v in &self.progress {
3334            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3335            os.write_raw_varint32(v.get_cached_size())?;
3336            v.write_to_with_cached_sizes(os)?;
3337        };
3338        for v in &self.actions {
3339            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3340            os.write_raw_varint32(v.get_cached_size())?;
3341            v.write_to_with_cached_sizes(os)?;
3342        };
3343        os.write_unknown_fields(self.get_unknown_fields())?;
3344        ::std::result::Result::Ok(())
3345    }
3346
3347    fn get_cached_size(&self) -> u32 {
3348        self.cached_size.get()
3349    }
3350
3351    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3352        &self.unknown_fields
3353    }
3354
3355    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3356        &mut self.unknown_fields
3357    }
3358
3359    fn as_any(&self) -> &dyn (::std::any::Any) {
3360        self as &dyn (::std::any::Any)
3361    }
3362    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3363        self as &mut dyn (::std::any::Any)
3364    }
3365    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3366        self
3367    }
3368
3369    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3370        Self::descriptor_static()
3371    }
3372
3373    fn new() -> UpdateDatabaseDdlMetadata {
3374        UpdateDatabaseDdlMetadata::new()
3375    }
3376
3377    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3378        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3379        descriptor.get(|| {
3380            let mut fields = ::std::vec::Vec::new();
3381            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3382                "database",
3383                |m: &UpdateDatabaseDdlMetadata| { &m.database },
3384                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.database },
3385            ));
3386            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3387                "statements",
3388                |m: &UpdateDatabaseDdlMetadata| { &m.statements },
3389                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.statements },
3390            ));
3391            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
3392                "commit_timestamps",
3393                |m: &UpdateDatabaseDdlMetadata| { &m.commit_timestamps },
3394                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.commit_timestamps },
3395            ));
3396            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3397                "throttled",
3398                |m: &UpdateDatabaseDdlMetadata| { &m.throttled },
3399                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.throttled },
3400            ));
3401            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
3402                "progress",
3403                |m: &UpdateDatabaseDdlMetadata| { &m.progress },
3404                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.progress },
3405            ));
3406            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DdlStatementActionInfo>>(
3407                "actions",
3408                |m: &UpdateDatabaseDdlMetadata| { &m.actions },
3409                |m: &mut UpdateDatabaseDdlMetadata| { &mut m.actions },
3410            ));
3411            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateDatabaseDdlMetadata>(
3412                "UpdateDatabaseDdlMetadata",
3413                fields,
3414                file_descriptor_proto()
3415            )
3416        })
3417    }
3418
3419    fn default_instance() -> &'static UpdateDatabaseDdlMetadata {
3420        static instance: ::protobuf::rt::LazyV2<UpdateDatabaseDdlMetadata> = ::protobuf::rt::LazyV2::INIT;
3421        instance.get(UpdateDatabaseDdlMetadata::new)
3422    }
3423}
3424
3425impl ::protobuf::Clear for UpdateDatabaseDdlMetadata {
3426    fn clear(&mut self) {
3427        self.database.clear();
3428        self.statements.clear();
3429        self.commit_timestamps.clear();
3430        self.throttled = false;
3431        self.progress.clear();
3432        self.actions.clear();
3433        self.unknown_fields.clear();
3434    }
3435}
3436
3437impl ::std::fmt::Debug for UpdateDatabaseDdlMetadata {
3438    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3439        ::protobuf::text_format::fmt(self, f)
3440    }
3441}
3442
3443impl ::protobuf::reflect::ProtobufValue for UpdateDatabaseDdlMetadata {
3444    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3445        ::protobuf::reflect::ReflectValueRef::Message(self)
3446    }
3447}
3448
3449#[derive(PartialEq,Clone,Default)]
3450pub struct DropDatabaseRequest {
3451    // message fields
3452    pub database: ::std::string::String,
3453    // special fields
3454    pub unknown_fields: ::protobuf::UnknownFields,
3455    pub cached_size: ::protobuf::CachedSize,
3456}
3457
3458impl<'a> ::std::default::Default for &'a DropDatabaseRequest {
3459    fn default() -> &'a DropDatabaseRequest {
3460        <DropDatabaseRequest as ::protobuf::Message>::default_instance()
3461    }
3462}
3463
3464impl DropDatabaseRequest {
3465    pub fn new() -> DropDatabaseRequest {
3466        ::std::default::Default::default()
3467    }
3468
3469    // string database = 1;
3470
3471
3472    pub fn get_database(&self) -> &str {
3473        &self.database
3474    }
3475    pub fn clear_database(&mut self) {
3476        self.database.clear();
3477    }
3478
3479    // Param is passed by value, moved
3480    pub fn set_database(&mut self, v: ::std::string::String) {
3481        self.database = v;
3482    }
3483
3484    // Mutable pointer to the field.
3485    // If field is not initialized, it is initialized with default value first.
3486    pub fn mut_database(&mut self) -> &mut ::std::string::String {
3487        &mut self.database
3488    }
3489
3490    // Take field
3491    pub fn take_database(&mut self) -> ::std::string::String {
3492        ::std::mem::replace(&mut self.database, ::std::string::String::new())
3493    }
3494}
3495
3496impl ::protobuf::Message for DropDatabaseRequest {
3497    fn is_initialized(&self) -> bool {
3498        true
3499    }
3500
3501    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3502        while !is.eof()? {
3503            let (field_number, wire_type) = is.read_tag_unpack()?;
3504            match field_number {
3505                1 => {
3506                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
3507                },
3508                _ => {
3509                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3510                },
3511            };
3512        }
3513        ::std::result::Result::Ok(())
3514    }
3515
3516    // Compute sizes of nested messages
3517    #[allow(unused_variables)]
3518    fn compute_size(&self) -> u32 {
3519        let mut my_size = 0;
3520        if !self.database.is_empty() {
3521            my_size += ::protobuf::rt::string_size(1, &self.database);
3522        }
3523        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3524        self.cached_size.set(my_size);
3525        my_size
3526    }
3527
3528    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3529        if !self.database.is_empty() {
3530            os.write_string(1, &self.database)?;
3531        }
3532        os.write_unknown_fields(self.get_unknown_fields())?;
3533        ::std::result::Result::Ok(())
3534    }
3535
3536    fn get_cached_size(&self) -> u32 {
3537        self.cached_size.get()
3538    }
3539
3540    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3541        &self.unknown_fields
3542    }
3543
3544    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3545        &mut self.unknown_fields
3546    }
3547
3548    fn as_any(&self) -> &dyn (::std::any::Any) {
3549        self as &dyn (::std::any::Any)
3550    }
3551    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3552        self as &mut dyn (::std::any::Any)
3553    }
3554    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3555        self
3556    }
3557
3558    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3559        Self::descriptor_static()
3560    }
3561
3562    fn new() -> DropDatabaseRequest {
3563        DropDatabaseRequest::new()
3564    }
3565
3566    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3567        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3568        descriptor.get(|| {
3569            let mut fields = ::std::vec::Vec::new();
3570            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3571                "database",
3572                |m: &DropDatabaseRequest| { &m.database },
3573                |m: &mut DropDatabaseRequest| { &mut m.database },
3574            ));
3575            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DropDatabaseRequest>(
3576                "DropDatabaseRequest",
3577                fields,
3578                file_descriptor_proto()
3579            )
3580        })
3581    }
3582
3583    fn default_instance() -> &'static DropDatabaseRequest {
3584        static instance: ::protobuf::rt::LazyV2<DropDatabaseRequest> = ::protobuf::rt::LazyV2::INIT;
3585        instance.get(DropDatabaseRequest::new)
3586    }
3587}
3588
3589impl ::protobuf::Clear for DropDatabaseRequest {
3590    fn clear(&mut self) {
3591        self.database.clear();
3592        self.unknown_fields.clear();
3593    }
3594}
3595
3596impl ::std::fmt::Debug for DropDatabaseRequest {
3597    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3598        ::protobuf::text_format::fmt(self, f)
3599    }
3600}
3601
3602impl ::protobuf::reflect::ProtobufValue for DropDatabaseRequest {
3603    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3604        ::protobuf::reflect::ReflectValueRef::Message(self)
3605    }
3606}
3607
3608#[derive(PartialEq,Clone,Default)]
3609pub struct GetDatabaseDdlRequest {
3610    // message fields
3611    pub database: ::std::string::String,
3612    // special fields
3613    pub unknown_fields: ::protobuf::UnknownFields,
3614    pub cached_size: ::protobuf::CachedSize,
3615}
3616
3617impl<'a> ::std::default::Default for &'a GetDatabaseDdlRequest {
3618    fn default() -> &'a GetDatabaseDdlRequest {
3619        <GetDatabaseDdlRequest as ::protobuf::Message>::default_instance()
3620    }
3621}
3622
3623impl GetDatabaseDdlRequest {
3624    pub fn new() -> GetDatabaseDdlRequest {
3625        ::std::default::Default::default()
3626    }
3627
3628    // string database = 1;
3629
3630
3631    pub fn get_database(&self) -> &str {
3632        &self.database
3633    }
3634    pub fn clear_database(&mut self) {
3635        self.database.clear();
3636    }
3637
3638    // Param is passed by value, moved
3639    pub fn set_database(&mut self, v: ::std::string::String) {
3640        self.database = v;
3641    }
3642
3643    // Mutable pointer to the field.
3644    // If field is not initialized, it is initialized with default value first.
3645    pub fn mut_database(&mut self) -> &mut ::std::string::String {
3646        &mut self.database
3647    }
3648
3649    // Take field
3650    pub fn take_database(&mut self) -> ::std::string::String {
3651        ::std::mem::replace(&mut self.database, ::std::string::String::new())
3652    }
3653}
3654
3655impl ::protobuf::Message for GetDatabaseDdlRequest {
3656    fn is_initialized(&self) -> bool {
3657        true
3658    }
3659
3660    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3661        while !is.eof()? {
3662            let (field_number, wire_type) = is.read_tag_unpack()?;
3663            match field_number {
3664                1 => {
3665                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database)?;
3666                },
3667                _ => {
3668                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3669                },
3670            };
3671        }
3672        ::std::result::Result::Ok(())
3673    }
3674
3675    // Compute sizes of nested messages
3676    #[allow(unused_variables)]
3677    fn compute_size(&self) -> u32 {
3678        let mut my_size = 0;
3679        if !self.database.is_empty() {
3680            my_size += ::protobuf::rt::string_size(1, &self.database);
3681        }
3682        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3683        self.cached_size.set(my_size);
3684        my_size
3685    }
3686
3687    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3688        if !self.database.is_empty() {
3689            os.write_string(1, &self.database)?;
3690        }
3691        os.write_unknown_fields(self.get_unknown_fields())?;
3692        ::std::result::Result::Ok(())
3693    }
3694
3695    fn get_cached_size(&self) -> u32 {
3696        self.cached_size.get()
3697    }
3698
3699    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3700        &self.unknown_fields
3701    }
3702
3703    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3704        &mut self.unknown_fields
3705    }
3706
3707    fn as_any(&self) -> &dyn (::std::any::Any) {
3708        self as &dyn (::std::any::Any)
3709    }
3710    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3711        self as &mut dyn (::std::any::Any)
3712    }
3713    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3714        self
3715    }
3716
3717    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3718        Self::descriptor_static()
3719    }
3720
3721    fn new() -> GetDatabaseDdlRequest {
3722        GetDatabaseDdlRequest::new()
3723    }
3724
3725    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3726        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3727        descriptor.get(|| {
3728            let mut fields = ::std::vec::Vec::new();
3729            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3730                "database",
3731                |m: &GetDatabaseDdlRequest| { &m.database },
3732                |m: &mut GetDatabaseDdlRequest| { &mut m.database },
3733            ));
3734            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetDatabaseDdlRequest>(
3735                "GetDatabaseDdlRequest",
3736                fields,
3737                file_descriptor_proto()
3738            )
3739        })
3740    }
3741
3742    fn default_instance() -> &'static GetDatabaseDdlRequest {
3743        static instance: ::protobuf::rt::LazyV2<GetDatabaseDdlRequest> = ::protobuf::rt::LazyV2::INIT;
3744        instance.get(GetDatabaseDdlRequest::new)
3745    }
3746}
3747
3748impl ::protobuf::Clear for GetDatabaseDdlRequest {
3749    fn clear(&mut self) {
3750        self.database.clear();
3751        self.unknown_fields.clear();
3752    }
3753}
3754
3755impl ::std::fmt::Debug for GetDatabaseDdlRequest {
3756    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3757        ::protobuf::text_format::fmt(self, f)
3758    }
3759}
3760
3761impl ::protobuf::reflect::ProtobufValue for GetDatabaseDdlRequest {
3762    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3763        ::protobuf::reflect::ReflectValueRef::Message(self)
3764    }
3765}
3766
3767#[derive(PartialEq,Clone,Default)]
3768pub struct GetDatabaseDdlResponse {
3769    // message fields
3770    pub statements: ::protobuf::RepeatedField<::std::string::String>,
3771    // special fields
3772    pub unknown_fields: ::protobuf::UnknownFields,
3773    pub cached_size: ::protobuf::CachedSize,
3774}
3775
3776impl<'a> ::std::default::Default for &'a GetDatabaseDdlResponse {
3777    fn default() -> &'a GetDatabaseDdlResponse {
3778        <GetDatabaseDdlResponse as ::protobuf::Message>::default_instance()
3779    }
3780}
3781
3782impl GetDatabaseDdlResponse {
3783    pub fn new() -> GetDatabaseDdlResponse {
3784        ::std::default::Default::default()
3785    }
3786
3787    // repeated string statements = 1;
3788
3789
3790    pub fn get_statements(&self) -> &[::std::string::String] {
3791        &self.statements
3792    }
3793    pub fn clear_statements(&mut self) {
3794        self.statements.clear();
3795    }
3796
3797    // Param is passed by value, moved
3798    pub fn set_statements(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
3799        self.statements = v;
3800    }
3801
3802    // Mutable pointer to the field.
3803    pub fn mut_statements(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
3804        &mut self.statements
3805    }
3806
3807    // Take field
3808    pub fn take_statements(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
3809        ::std::mem::replace(&mut self.statements, ::protobuf::RepeatedField::new())
3810    }
3811}
3812
3813impl ::protobuf::Message for GetDatabaseDdlResponse {
3814    fn is_initialized(&self) -> bool {
3815        true
3816    }
3817
3818    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3819        while !is.eof()? {
3820            let (field_number, wire_type) = is.read_tag_unpack()?;
3821            match field_number {
3822                1 => {
3823                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.statements)?;
3824                },
3825                _ => {
3826                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3827                },
3828            };
3829        }
3830        ::std::result::Result::Ok(())
3831    }
3832
3833    // Compute sizes of nested messages
3834    #[allow(unused_variables)]
3835    fn compute_size(&self) -> u32 {
3836        let mut my_size = 0;
3837        for value in &self.statements {
3838            my_size += ::protobuf::rt::string_size(1, &value);
3839        };
3840        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3841        self.cached_size.set(my_size);
3842        my_size
3843    }
3844
3845    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3846        for v in &self.statements {
3847            os.write_string(1, &v)?;
3848        };
3849        os.write_unknown_fields(self.get_unknown_fields())?;
3850        ::std::result::Result::Ok(())
3851    }
3852
3853    fn get_cached_size(&self) -> u32 {
3854        self.cached_size.get()
3855    }
3856
3857    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3858        &self.unknown_fields
3859    }
3860
3861    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3862        &mut self.unknown_fields
3863    }
3864
3865    fn as_any(&self) -> &dyn (::std::any::Any) {
3866        self as &dyn (::std::any::Any)
3867    }
3868    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3869        self as &mut dyn (::std::any::Any)
3870    }
3871    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3872        self
3873    }
3874
3875    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3876        Self::descriptor_static()
3877    }
3878
3879    fn new() -> GetDatabaseDdlResponse {
3880        GetDatabaseDdlResponse::new()
3881    }
3882
3883    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3884        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3885        descriptor.get(|| {
3886            let mut fields = ::std::vec::Vec::new();
3887            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3888                "statements",
3889                |m: &GetDatabaseDdlResponse| { &m.statements },
3890                |m: &mut GetDatabaseDdlResponse| { &mut m.statements },
3891            ));
3892            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetDatabaseDdlResponse>(
3893                "GetDatabaseDdlResponse",
3894                fields,
3895                file_descriptor_proto()
3896            )
3897        })
3898    }
3899
3900    fn default_instance() -> &'static GetDatabaseDdlResponse {
3901        static instance: ::protobuf::rt::LazyV2<GetDatabaseDdlResponse> = ::protobuf::rt::LazyV2::INIT;
3902        instance.get(GetDatabaseDdlResponse::new)
3903    }
3904}
3905
3906impl ::protobuf::Clear for GetDatabaseDdlResponse {
3907    fn clear(&mut self) {
3908        self.statements.clear();
3909        self.unknown_fields.clear();
3910    }
3911}
3912
3913impl ::std::fmt::Debug for GetDatabaseDdlResponse {
3914    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3915        ::protobuf::text_format::fmt(self, f)
3916    }
3917}
3918
3919impl ::protobuf::reflect::ProtobufValue for GetDatabaseDdlResponse {
3920    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3921        ::protobuf::reflect::ReflectValueRef::Message(self)
3922    }
3923}
3924
3925#[derive(PartialEq,Clone,Default)]
3926pub struct ListDatabaseOperationsRequest {
3927    // message fields
3928    pub parent: ::std::string::String,
3929    pub filter: ::std::string::String,
3930    pub page_size: i32,
3931    pub page_token: ::std::string::String,
3932    // special fields
3933    pub unknown_fields: ::protobuf::UnknownFields,
3934    pub cached_size: ::protobuf::CachedSize,
3935}
3936
3937impl<'a> ::std::default::Default for &'a ListDatabaseOperationsRequest {
3938    fn default() -> &'a ListDatabaseOperationsRequest {
3939        <ListDatabaseOperationsRequest as ::protobuf::Message>::default_instance()
3940    }
3941}
3942
3943impl ListDatabaseOperationsRequest {
3944    pub fn new() -> ListDatabaseOperationsRequest {
3945        ::std::default::Default::default()
3946    }
3947
3948    // string parent = 1;
3949
3950
3951    pub fn get_parent(&self) -> &str {
3952        &self.parent
3953    }
3954    pub fn clear_parent(&mut self) {
3955        self.parent.clear();
3956    }
3957
3958    // Param is passed by value, moved
3959    pub fn set_parent(&mut self, v: ::std::string::String) {
3960        self.parent = v;
3961    }
3962
3963    // Mutable pointer to the field.
3964    // If field is not initialized, it is initialized with default value first.
3965    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
3966        &mut self.parent
3967    }
3968
3969    // Take field
3970    pub fn take_parent(&mut self) -> ::std::string::String {
3971        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
3972    }
3973
3974    // string filter = 2;
3975
3976
3977    pub fn get_filter(&self) -> &str {
3978        &self.filter
3979    }
3980    pub fn clear_filter(&mut self) {
3981        self.filter.clear();
3982    }
3983
3984    // Param is passed by value, moved
3985    pub fn set_filter(&mut self, v: ::std::string::String) {
3986        self.filter = v;
3987    }
3988
3989    // Mutable pointer to the field.
3990    // If field is not initialized, it is initialized with default value first.
3991    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
3992        &mut self.filter
3993    }
3994
3995    // Take field
3996    pub fn take_filter(&mut self) -> ::std::string::String {
3997        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
3998    }
3999
4000    // int32 page_size = 3;
4001
4002
4003    pub fn get_page_size(&self) -> i32 {
4004        self.page_size
4005    }
4006    pub fn clear_page_size(&mut self) {
4007        self.page_size = 0;
4008    }
4009
4010    // Param is passed by value, moved
4011    pub fn set_page_size(&mut self, v: i32) {
4012        self.page_size = v;
4013    }
4014
4015    // string page_token = 4;
4016
4017
4018    pub fn get_page_token(&self) -> &str {
4019        &self.page_token
4020    }
4021    pub fn clear_page_token(&mut self) {
4022        self.page_token.clear();
4023    }
4024
4025    // Param is passed by value, moved
4026    pub fn set_page_token(&mut self, v: ::std::string::String) {
4027        self.page_token = v;
4028    }
4029
4030    // Mutable pointer to the field.
4031    // If field is not initialized, it is initialized with default value first.
4032    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
4033        &mut self.page_token
4034    }
4035
4036    // Take field
4037    pub fn take_page_token(&mut self) -> ::std::string::String {
4038        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
4039    }
4040}
4041
4042impl ::protobuf::Message for ListDatabaseOperationsRequest {
4043    fn is_initialized(&self) -> bool {
4044        true
4045    }
4046
4047    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4048        while !is.eof()? {
4049            let (field_number, wire_type) = is.read_tag_unpack()?;
4050            match field_number {
4051                1 => {
4052                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
4053                },
4054                2 => {
4055                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
4056                },
4057                3 => {
4058                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4059                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4060                    }
4061                    let tmp = is.read_int32()?;
4062                    self.page_size = tmp;
4063                },
4064                4 => {
4065                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
4066                },
4067                _ => {
4068                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4069                },
4070            };
4071        }
4072        ::std::result::Result::Ok(())
4073    }
4074
4075    // Compute sizes of nested messages
4076    #[allow(unused_variables)]
4077    fn compute_size(&self) -> u32 {
4078        let mut my_size = 0;
4079        if !self.parent.is_empty() {
4080            my_size += ::protobuf::rt::string_size(1, &self.parent);
4081        }
4082        if !self.filter.is_empty() {
4083            my_size += ::protobuf::rt::string_size(2, &self.filter);
4084        }
4085        if self.page_size != 0 {
4086            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
4087        }
4088        if !self.page_token.is_empty() {
4089            my_size += ::protobuf::rt::string_size(4, &self.page_token);
4090        }
4091        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4092        self.cached_size.set(my_size);
4093        my_size
4094    }
4095
4096    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4097        if !self.parent.is_empty() {
4098            os.write_string(1, &self.parent)?;
4099        }
4100        if !self.filter.is_empty() {
4101            os.write_string(2, &self.filter)?;
4102        }
4103        if self.page_size != 0 {
4104            os.write_int32(3, self.page_size)?;
4105        }
4106        if !self.page_token.is_empty() {
4107            os.write_string(4, &self.page_token)?;
4108        }
4109        os.write_unknown_fields(self.get_unknown_fields())?;
4110        ::std::result::Result::Ok(())
4111    }
4112
4113    fn get_cached_size(&self) -> u32 {
4114        self.cached_size.get()
4115    }
4116
4117    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4118        &self.unknown_fields
4119    }
4120
4121    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4122        &mut self.unknown_fields
4123    }
4124
4125    fn as_any(&self) -> &dyn (::std::any::Any) {
4126        self as &dyn (::std::any::Any)
4127    }
4128    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4129        self as &mut dyn (::std::any::Any)
4130    }
4131    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4132        self
4133    }
4134
4135    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4136        Self::descriptor_static()
4137    }
4138
4139    fn new() -> ListDatabaseOperationsRequest {
4140        ListDatabaseOperationsRequest::new()
4141    }
4142
4143    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4144        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4145        descriptor.get(|| {
4146            let mut fields = ::std::vec::Vec::new();
4147            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4148                "parent",
4149                |m: &ListDatabaseOperationsRequest| { &m.parent },
4150                |m: &mut ListDatabaseOperationsRequest| { &mut m.parent },
4151            ));
4152            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4153                "filter",
4154                |m: &ListDatabaseOperationsRequest| { &m.filter },
4155                |m: &mut ListDatabaseOperationsRequest| { &mut m.filter },
4156            ));
4157            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
4158                "page_size",
4159                |m: &ListDatabaseOperationsRequest| { &m.page_size },
4160                |m: &mut ListDatabaseOperationsRequest| { &mut m.page_size },
4161            ));
4162            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4163                "page_token",
4164                |m: &ListDatabaseOperationsRequest| { &m.page_token },
4165                |m: &mut ListDatabaseOperationsRequest| { &mut m.page_token },
4166            ));
4167            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabaseOperationsRequest>(
4168                "ListDatabaseOperationsRequest",
4169                fields,
4170                file_descriptor_proto()
4171            )
4172        })
4173    }
4174
4175    fn default_instance() -> &'static ListDatabaseOperationsRequest {
4176        static instance: ::protobuf::rt::LazyV2<ListDatabaseOperationsRequest> = ::protobuf::rt::LazyV2::INIT;
4177        instance.get(ListDatabaseOperationsRequest::new)
4178    }
4179}
4180
4181impl ::protobuf::Clear for ListDatabaseOperationsRequest {
4182    fn clear(&mut self) {
4183        self.parent.clear();
4184        self.filter.clear();
4185        self.page_size = 0;
4186        self.page_token.clear();
4187        self.unknown_fields.clear();
4188    }
4189}
4190
4191impl ::std::fmt::Debug for ListDatabaseOperationsRequest {
4192    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4193        ::protobuf::text_format::fmt(self, f)
4194    }
4195}
4196
4197impl ::protobuf::reflect::ProtobufValue for ListDatabaseOperationsRequest {
4198    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4199        ::protobuf::reflect::ReflectValueRef::Message(self)
4200    }
4201}
4202
4203#[derive(PartialEq,Clone,Default)]
4204pub struct ListDatabaseOperationsResponse {
4205    // message fields
4206    pub operations: ::protobuf::RepeatedField<super::operations::Operation>,
4207    pub next_page_token: ::std::string::String,
4208    // special fields
4209    pub unknown_fields: ::protobuf::UnknownFields,
4210    pub cached_size: ::protobuf::CachedSize,
4211}
4212
4213impl<'a> ::std::default::Default for &'a ListDatabaseOperationsResponse {
4214    fn default() -> &'a ListDatabaseOperationsResponse {
4215        <ListDatabaseOperationsResponse as ::protobuf::Message>::default_instance()
4216    }
4217}
4218
4219impl ListDatabaseOperationsResponse {
4220    pub fn new() -> ListDatabaseOperationsResponse {
4221        ::std::default::Default::default()
4222    }
4223
4224    // repeated .google.longrunning.Operation operations = 1;
4225
4226
4227    pub fn get_operations(&self) -> &[super::operations::Operation] {
4228        &self.operations
4229    }
4230    pub fn clear_operations(&mut self) {
4231        self.operations.clear();
4232    }
4233
4234    // Param is passed by value, moved
4235    pub fn set_operations(&mut self, v: ::protobuf::RepeatedField<super::operations::Operation>) {
4236        self.operations = v;
4237    }
4238
4239    // Mutable pointer to the field.
4240    pub fn mut_operations(&mut self) -> &mut ::protobuf::RepeatedField<super::operations::Operation> {
4241        &mut self.operations
4242    }
4243
4244    // Take field
4245    pub fn take_operations(&mut self) -> ::protobuf::RepeatedField<super::operations::Operation> {
4246        ::std::mem::replace(&mut self.operations, ::protobuf::RepeatedField::new())
4247    }
4248
4249    // string next_page_token = 2;
4250
4251
4252    pub fn get_next_page_token(&self) -> &str {
4253        &self.next_page_token
4254    }
4255    pub fn clear_next_page_token(&mut self) {
4256        self.next_page_token.clear();
4257    }
4258
4259    // Param is passed by value, moved
4260    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
4261        self.next_page_token = v;
4262    }
4263
4264    // Mutable pointer to the field.
4265    // If field is not initialized, it is initialized with default value first.
4266    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
4267        &mut self.next_page_token
4268    }
4269
4270    // Take field
4271    pub fn take_next_page_token(&mut self) -> ::std::string::String {
4272        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
4273    }
4274}
4275
4276impl ::protobuf::Message for ListDatabaseOperationsResponse {
4277    fn is_initialized(&self) -> bool {
4278        for v in &self.operations {
4279            if !v.is_initialized() {
4280                return false;
4281            }
4282        };
4283        true
4284    }
4285
4286    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4287        while !is.eof()? {
4288            let (field_number, wire_type) = is.read_tag_unpack()?;
4289            match field_number {
4290                1 => {
4291                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.operations)?;
4292                },
4293                2 => {
4294                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
4295                },
4296                _ => {
4297                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4298                },
4299            };
4300        }
4301        ::std::result::Result::Ok(())
4302    }
4303
4304    // Compute sizes of nested messages
4305    #[allow(unused_variables)]
4306    fn compute_size(&self) -> u32 {
4307        let mut my_size = 0;
4308        for value in &self.operations {
4309            let len = value.compute_size();
4310            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4311        };
4312        if !self.next_page_token.is_empty() {
4313            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
4314        }
4315        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4316        self.cached_size.set(my_size);
4317        my_size
4318    }
4319
4320    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4321        for v in &self.operations {
4322            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4323            os.write_raw_varint32(v.get_cached_size())?;
4324            v.write_to_with_cached_sizes(os)?;
4325        };
4326        if !self.next_page_token.is_empty() {
4327            os.write_string(2, &self.next_page_token)?;
4328        }
4329        os.write_unknown_fields(self.get_unknown_fields())?;
4330        ::std::result::Result::Ok(())
4331    }
4332
4333    fn get_cached_size(&self) -> u32 {
4334        self.cached_size.get()
4335    }
4336
4337    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4338        &self.unknown_fields
4339    }
4340
4341    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4342        &mut self.unknown_fields
4343    }
4344
4345    fn as_any(&self) -> &dyn (::std::any::Any) {
4346        self as &dyn (::std::any::Any)
4347    }
4348    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4349        self as &mut dyn (::std::any::Any)
4350    }
4351    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4352        self
4353    }
4354
4355    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4356        Self::descriptor_static()
4357    }
4358
4359    fn new() -> ListDatabaseOperationsResponse {
4360        ListDatabaseOperationsResponse::new()
4361    }
4362
4363    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4364        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4365        descriptor.get(|| {
4366            let mut fields = ::std::vec::Vec::new();
4367            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::operations::Operation>>(
4368                "operations",
4369                |m: &ListDatabaseOperationsResponse| { &m.operations },
4370                |m: &mut ListDatabaseOperationsResponse| { &mut m.operations },
4371            ));
4372            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4373                "next_page_token",
4374                |m: &ListDatabaseOperationsResponse| { &m.next_page_token },
4375                |m: &mut ListDatabaseOperationsResponse| { &mut m.next_page_token },
4376            ));
4377            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabaseOperationsResponse>(
4378                "ListDatabaseOperationsResponse",
4379                fields,
4380                file_descriptor_proto()
4381            )
4382        })
4383    }
4384
4385    fn default_instance() -> &'static ListDatabaseOperationsResponse {
4386        static instance: ::protobuf::rt::LazyV2<ListDatabaseOperationsResponse> = ::protobuf::rt::LazyV2::INIT;
4387        instance.get(ListDatabaseOperationsResponse::new)
4388    }
4389}
4390
4391impl ::protobuf::Clear for ListDatabaseOperationsResponse {
4392    fn clear(&mut self) {
4393        self.operations.clear();
4394        self.next_page_token.clear();
4395        self.unknown_fields.clear();
4396    }
4397}
4398
4399impl ::std::fmt::Debug for ListDatabaseOperationsResponse {
4400    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4401        ::protobuf::text_format::fmt(self, f)
4402    }
4403}
4404
4405impl ::protobuf::reflect::ProtobufValue for ListDatabaseOperationsResponse {
4406    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4407        ::protobuf::reflect::ReflectValueRef::Message(self)
4408    }
4409}
4410
4411#[derive(PartialEq,Clone,Default)]
4412pub struct RestoreDatabaseRequest {
4413    // message fields
4414    pub parent: ::std::string::String,
4415    pub database_id: ::std::string::String,
4416    pub encryption_config: ::protobuf::SingularPtrField<RestoreDatabaseEncryptionConfig>,
4417    // message oneof groups
4418    pub source: ::std::option::Option<RestoreDatabaseRequest_oneof_source>,
4419    // special fields
4420    pub unknown_fields: ::protobuf::UnknownFields,
4421    pub cached_size: ::protobuf::CachedSize,
4422}
4423
4424impl<'a> ::std::default::Default for &'a RestoreDatabaseRequest {
4425    fn default() -> &'a RestoreDatabaseRequest {
4426        <RestoreDatabaseRequest as ::protobuf::Message>::default_instance()
4427    }
4428}
4429
4430#[derive(Clone,PartialEq,Debug)]
4431pub enum RestoreDatabaseRequest_oneof_source {
4432    backup(::std::string::String),
4433}
4434
4435impl RestoreDatabaseRequest {
4436    pub fn new() -> RestoreDatabaseRequest {
4437        ::std::default::Default::default()
4438    }
4439
4440    // string parent = 1;
4441
4442
4443    pub fn get_parent(&self) -> &str {
4444        &self.parent
4445    }
4446    pub fn clear_parent(&mut self) {
4447        self.parent.clear();
4448    }
4449
4450    // Param is passed by value, moved
4451    pub fn set_parent(&mut self, v: ::std::string::String) {
4452        self.parent = v;
4453    }
4454
4455    // Mutable pointer to the field.
4456    // If field is not initialized, it is initialized with default value first.
4457    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
4458        &mut self.parent
4459    }
4460
4461    // Take field
4462    pub fn take_parent(&mut self) -> ::std::string::String {
4463        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
4464    }
4465
4466    // string database_id = 2;
4467
4468
4469    pub fn get_database_id(&self) -> &str {
4470        &self.database_id
4471    }
4472    pub fn clear_database_id(&mut self) {
4473        self.database_id.clear();
4474    }
4475
4476    // Param is passed by value, moved
4477    pub fn set_database_id(&mut self, v: ::std::string::String) {
4478        self.database_id = v;
4479    }
4480
4481    // Mutable pointer to the field.
4482    // If field is not initialized, it is initialized with default value first.
4483    pub fn mut_database_id(&mut self) -> &mut ::std::string::String {
4484        &mut self.database_id
4485    }
4486
4487    // Take field
4488    pub fn take_database_id(&mut self) -> ::std::string::String {
4489        ::std::mem::replace(&mut self.database_id, ::std::string::String::new())
4490    }
4491
4492    // string backup = 3;
4493
4494
4495    pub fn get_backup(&self) -> &str {
4496        match self.source {
4497            ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(ref v)) => v,
4498            _ => "",
4499        }
4500    }
4501    pub fn clear_backup(&mut self) {
4502        self.source = ::std::option::Option::None;
4503    }
4504
4505    pub fn has_backup(&self) -> bool {
4506        match self.source {
4507            ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(..)) => true,
4508            _ => false,
4509        }
4510    }
4511
4512    // Param is passed by value, moved
4513    pub fn set_backup(&mut self, v: ::std::string::String) {
4514        self.source = ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(v))
4515    }
4516
4517    // Mutable pointer to the field.
4518    pub fn mut_backup(&mut self) -> &mut ::std::string::String {
4519        if let ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(_)) = self.source {
4520        } else {
4521            self.source = ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(::std::string::String::new()));
4522        }
4523        match self.source {
4524            ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(ref mut v)) => v,
4525            _ => panic!(),
4526        }
4527    }
4528
4529    // Take field
4530    pub fn take_backup(&mut self) -> ::std::string::String {
4531        if self.has_backup() {
4532            match self.source.take() {
4533                ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(v)) => v,
4534                _ => panic!(),
4535            }
4536        } else {
4537            ::std::string::String::new()
4538        }
4539    }
4540
4541    // .google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig encryption_config = 4;
4542
4543
4544    pub fn get_encryption_config(&self) -> &RestoreDatabaseEncryptionConfig {
4545        self.encryption_config.as_ref().unwrap_or_else(|| <RestoreDatabaseEncryptionConfig as ::protobuf::Message>::default_instance())
4546    }
4547    pub fn clear_encryption_config(&mut self) {
4548        self.encryption_config.clear();
4549    }
4550
4551    pub fn has_encryption_config(&self) -> bool {
4552        self.encryption_config.is_some()
4553    }
4554
4555    // Param is passed by value, moved
4556    pub fn set_encryption_config(&mut self, v: RestoreDatabaseEncryptionConfig) {
4557        self.encryption_config = ::protobuf::SingularPtrField::some(v);
4558    }
4559
4560    // Mutable pointer to the field.
4561    // If field is not initialized, it is initialized with default value first.
4562    pub fn mut_encryption_config(&mut self) -> &mut RestoreDatabaseEncryptionConfig {
4563        if self.encryption_config.is_none() {
4564            self.encryption_config.set_default();
4565        }
4566        self.encryption_config.as_mut().unwrap()
4567    }
4568
4569    // Take field
4570    pub fn take_encryption_config(&mut self) -> RestoreDatabaseEncryptionConfig {
4571        self.encryption_config.take().unwrap_or_else(|| RestoreDatabaseEncryptionConfig::new())
4572    }
4573}
4574
4575impl ::protobuf::Message for RestoreDatabaseRequest {
4576    fn is_initialized(&self) -> bool {
4577        for v in &self.encryption_config {
4578            if !v.is_initialized() {
4579                return false;
4580            }
4581        };
4582        true
4583    }
4584
4585    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4586        while !is.eof()? {
4587            let (field_number, wire_type) = is.read_tag_unpack()?;
4588            match field_number {
4589                1 => {
4590                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
4591                },
4592                2 => {
4593                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.database_id)?;
4594                },
4595                3 => {
4596                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
4597                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4598                    }
4599                    self.source = ::std::option::Option::Some(RestoreDatabaseRequest_oneof_source::backup(is.read_string()?));
4600                },
4601                4 => {
4602                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.encryption_config)?;
4603                },
4604                _ => {
4605                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4606                },
4607            };
4608        }
4609        ::std::result::Result::Ok(())
4610    }
4611
4612    // Compute sizes of nested messages
4613    #[allow(unused_variables)]
4614    fn compute_size(&self) -> u32 {
4615        let mut my_size = 0;
4616        if !self.parent.is_empty() {
4617            my_size += ::protobuf::rt::string_size(1, &self.parent);
4618        }
4619        if !self.database_id.is_empty() {
4620            my_size += ::protobuf::rt::string_size(2, &self.database_id);
4621        }
4622        if let Some(ref v) = self.encryption_config.as_ref() {
4623            let len = v.compute_size();
4624            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4625        }
4626        if let ::std::option::Option::Some(ref v) = self.source {
4627            match v {
4628                &RestoreDatabaseRequest_oneof_source::backup(ref v) => {
4629                    my_size += ::protobuf::rt::string_size(3, &v);
4630                },
4631            };
4632        }
4633        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4634        self.cached_size.set(my_size);
4635        my_size
4636    }
4637
4638    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4639        if !self.parent.is_empty() {
4640            os.write_string(1, &self.parent)?;
4641        }
4642        if !self.database_id.is_empty() {
4643            os.write_string(2, &self.database_id)?;
4644        }
4645        if let Some(ref v) = self.encryption_config.as_ref() {
4646            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4647            os.write_raw_varint32(v.get_cached_size())?;
4648            v.write_to_with_cached_sizes(os)?;
4649        }
4650        if let ::std::option::Option::Some(ref v) = self.source {
4651            match v {
4652                &RestoreDatabaseRequest_oneof_source::backup(ref v) => {
4653                    os.write_string(3, v)?;
4654                },
4655            };
4656        }
4657        os.write_unknown_fields(self.get_unknown_fields())?;
4658        ::std::result::Result::Ok(())
4659    }
4660
4661    fn get_cached_size(&self) -> u32 {
4662        self.cached_size.get()
4663    }
4664
4665    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4666        &self.unknown_fields
4667    }
4668
4669    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4670        &mut self.unknown_fields
4671    }
4672
4673    fn as_any(&self) -> &dyn (::std::any::Any) {
4674        self as &dyn (::std::any::Any)
4675    }
4676    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4677        self as &mut dyn (::std::any::Any)
4678    }
4679    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4680        self
4681    }
4682
4683    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4684        Self::descriptor_static()
4685    }
4686
4687    fn new() -> RestoreDatabaseRequest {
4688        RestoreDatabaseRequest::new()
4689    }
4690
4691    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4692        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4693        descriptor.get(|| {
4694            let mut fields = ::std::vec::Vec::new();
4695            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4696                "parent",
4697                |m: &RestoreDatabaseRequest| { &m.parent },
4698                |m: &mut RestoreDatabaseRequest| { &mut m.parent },
4699            ));
4700            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4701                "database_id",
4702                |m: &RestoreDatabaseRequest| { &m.database_id },
4703                |m: &mut RestoreDatabaseRequest| { &mut m.database_id },
4704            ));
4705            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
4706                "backup",
4707                RestoreDatabaseRequest::has_backup,
4708                RestoreDatabaseRequest::get_backup,
4709            ));
4710            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RestoreDatabaseEncryptionConfig>>(
4711                "encryption_config",
4712                |m: &RestoreDatabaseRequest| { &m.encryption_config },
4713                |m: &mut RestoreDatabaseRequest| { &mut m.encryption_config },
4714            ));
4715            ::protobuf::reflect::MessageDescriptor::new_pb_name::<RestoreDatabaseRequest>(
4716                "RestoreDatabaseRequest",
4717                fields,
4718                file_descriptor_proto()
4719            )
4720        })
4721    }
4722
4723    fn default_instance() -> &'static RestoreDatabaseRequest {
4724        static instance: ::protobuf::rt::LazyV2<RestoreDatabaseRequest> = ::protobuf::rt::LazyV2::INIT;
4725        instance.get(RestoreDatabaseRequest::new)
4726    }
4727}
4728
4729impl ::protobuf::Clear for RestoreDatabaseRequest {
4730    fn clear(&mut self) {
4731        self.parent.clear();
4732        self.database_id.clear();
4733        self.source = ::std::option::Option::None;
4734        self.encryption_config.clear();
4735        self.unknown_fields.clear();
4736    }
4737}
4738
4739impl ::std::fmt::Debug for RestoreDatabaseRequest {
4740    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4741        ::protobuf::text_format::fmt(self, f)
4742    }
4743}
4744
4745impl ::protobuf::reflect::ProtobufValue for RestoreDatabaseRequest {
4746    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4747        ::protobuf::reflect::ReflectValueRef::Message(self)
4748    }
4749}
4750
4751#[derive(PartialEq,Clone,Default)]
4752pub struct RestoreDatabaseEncryptionConfig {
4753    // message fields
4754    pub encryption_type: RestoreDatabaseEncryptionConfig_EncryptionType,
4755    pub kms_key_name: ::std::string::String,
4756    // special fields
4757    pub unknown_fields: ::protobuf::UnknownFields,
4758    pub cached_size: ::protobuf::CachedSize,
4759}
4760
4761impl<'a> ::std::default::Default for &'a RestoreDatabaseEncryptionConfig {
4762    fn default() -> &'a RestoreDatabaseEncryptionConfig {
4763        <RestoreDatabaseEncryptionConfig as ::protobuf::Message>::default_instance()
4764    }
4765}
4766
4767impl RestoreDatabaseEncryptionConfig {
4768    pub fn new() -> RestoreDatabaseEncryptionConfig {
4769        ::std::default::Default::default()
4770    }
4771
4772    // .google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.EncryptionType encryption_type = 1;
4773
4774
4775    pub fn get_encryption_type(&self) -> RestoreDatabaseEncryptionConfig_EncryptionType {
4776        self.encryption_type
4777    }
4778    pub fn clear_encryption_type(&mut self) {
4779        self.encryption_type = RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
4780    }
4781
4782    // Param is passed by value, moved
4783    pub fn set_encryption_type(&mut self, v: RestoreDatabaseEncryptionConfig_EncryptionType) {
4784        self.encryption_type = v;
4785    }
4786
4787    // string kms_key_name = 2;
4788
4789
4790    pub fn get_kms_key_name(&self) -> &str {
4791        &self.kms_key_name
4792    }
4793    pub fn clear_kms_key_name(&mut self) {
4794        self.kms_key_name.clear();
4795    }
4796
4797    // Param is passed by value, moved
4798    pub fn set_kms_key_name(&mut self, v: ::std::string::String) {
4799        self.kms_key_name = v;
4800    }
4801
4802    // Mutable pointer to the field.
4803    // If field is not initialized, it is initialized with default value first.
4804    pub fn mut_kms_key_name(&mut self) -> &mut ::std::string::String {
4805        &mut self.kms_key_name
4806    }
4807
4808    // Take field
4809    pub fn take_kms_key_name(&mut self) -> ::std::string::String {
4810        ::std::mem::replace(&mut self.kms_key_name, ::std::string::String::new())
4811    }
4812}
4813
4814impl ::protobuf::Message for RestoreDatabaseEncryptionConfig {
4815    fn is_initialized(&self) -> bool {
4816        true
4817    }
4818
4819    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4820        while !is.eof()? {
4821            let (field_number, wire_type) = is.read_tag_unpack()?;
4822            match field_number {
4823                1 => {
4824                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.encryption_type, 1, &mut self.unknown_fields)?
4825                },
4826                2 => {
4827                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.kms_key_name)?;
4828                },
4829                _ => {
4830                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4831                },
4832            };
4833        }
4834        ::std::result::Result::Ok(())
4835    }
4836
4837    // Compute sizes of nested messages
4838    #[allow(unused_variables)]
4839    fn compute_size(&self) -> u32 {
4840        let mut my_size = 0;
4841        if self.encryption_type != RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
4842            my_size += ::protobuf::rt::enum_size(1, self.encryption_type);
4843        }
4844        if !self.kms_key_name.is_empty() {
4845            my_size += ::protobuf::rt::string_size(2, &self.kms_key_name);
4846        }
4847        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4848        self.cached_size.set(my_size);
4849        my_size
4850    }
4851
4852    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4853        if self.encryption_type != RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED {
4854            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.encryption_type))?;
4855        }
4856        if !self.kms_key_name.is_empty() {
4857            os.write_string(2, &self.kms_key_name)?;
4858        }
4859        os.write_unknown_fields(self.get_unknown_fields())?;
4860        ::std::result::Result::Ok(())
4861    }
4862
4863    fn get_cached_size(&self) -> u32 {
4864        self.cached_size.get()
4865    }
4866
4867    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4868        &self.unknown_fields
4869    }
4870
4871    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4872        &mut self.unknown_fields
4873    }
4874
4875    fn as_any(&self) -> &dyn (::std::any::Any) {
4876        self as &dyn (::std::any::Any)
4877    }
4878    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4879        self as &mut dyn (::std::any::Any)
4880    }
4881    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4882        self
4883    }
4884
4885    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4886        Self::descriptor_static()
4887    }
4888
4889    fn new() -> RestoreDatabaseEncryptionConfig {
4890        RestoreDatabaseEncryptionConfig::new()
4891    }
4892
4893    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4894        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4895        descriptor.get(|| {
4896            let mut fields = ::std::vec::Vec::new();
4897            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<RestoreDatabaseEncryptionConfig_EncryptionType>>(
4898                "encryption_type",
4899                |m: &RestoreDatabaseEncryptionConfig| { &m.encryption_type },
4900                |m: &mut RestoreDatabaseEncryptionConfig| { &mut m.encryption_type },
4901            ));
4902            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4903                "kms_key_name",
4904                |m: &RestoreDatabaseEncryptionConfig| { &m.kms_key_name },
4905                |m: &mut RestoreDatabaseEncryptionConfig| { &mut m.kms_key_name },
4906            ));
4907            ::protobuf::reflect::MessageDescriptor::new_pb_name::<RestoreDatabaseEncryptionConfig>(
4908                "RestoreDatabaseEncryptionConfig",
4909                fields,
4910                file_descriptor_proto()
4911            )
4912        })
4913    }
4914
4915    fn default_instance() -> &'static RestoreDatabaseEncryptionConfig {
4916        static instance: ::protobuf::rt::LazyV2<RestoreDatabaseEncryptionConfig> = ::protobuf::rt::LazyV2::INIT;
4917        instance.get(RestoreDatabaseEncryptionConfig::new)
4918    }
4919}
4920
4921impl ::protobuf::Clear for RestoreDatabaseEncryptionConfig {
4922    fn clear(&mut self) {
4923        self.encryption_type = RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED;
4924        self.kms_key_name.clear();
4925        self.unknown_fields.clear();
4926    }
4927}
4928
4929impl ::std::fmt::Debug for RestoreDatabaseEncryptionConfig {
4930    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4931        ::protobuf::text_format::fmt(self, f)
4932    }
4933}
4934
4935impl ::protobuf::reflect::ProtobufValue for RestoreDatabaseEncryptionConfig {
4936    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4937        ::protobuf::reflect::ReflectValueRef::Message(self)
4938    }
4939}
4940
4941#[derive(Clone,PartialEq,Eq,Debug,Hash)]
4942pub enum RestoreDatabaseEncryptionConfig_EncryptionType {
4943    ENCRYPTION_TYPE_UNSPECIFIED = 0,
4944    USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION = 1,
4945    GOOGLE_DEFAULT_ENCRYPTION = 2,
4946    CUSTOMER_MANAGED_ENCRYPTION = 3,
4947}
4948
4949impl ::protobuf::ProtobufEnum for RestoreDatabaseEncryptionConfig_EncryptionType {
4950    fn value(&self) -> i32 {
4951        *self as i32
4952    }
4953
4954    fn from_i32(value: i32) -> ::std::option::Option<RestoreDatabaseEncryptionConfig_EncryptionType> {
4955        match value {
4956            0 => ::std::option::Option::Some(RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED),
4957            1 => ::std::option::Option::Some(RestoreDatabaseEncryptionConfig_EncryptionType::USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION),
4958            2 => ::std::option::Option::Some(RestoreDatabaseEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION),
4959            3 => ::std::option::Option::Some(RestoreDatabaseEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION),
4960            _ => ::std::option::Option::None
4961        }
4962    }
4963
4964    fn values() -> &'static [Self] {
4965        static values: &'static [RestoreDatabaseEncryptionConfig_EncryptionType] = &[
4966            RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED,
4967            RestoreDatabaseEncryptionConfig_EncryptionType::USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION,
4968            RestoreDatabaseEncryptionConfig_EncryptionType::GOOGLE_DEFAULT_ENCRYPTION,
4969            RestoreDatabaseEncryptionConfig_EncryptionType::CUSTOMER_MANAGED_ENCRYPTION,
4970        ];
4971        values
4972    }
4973
4974    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
4975        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
4976        descriptor.get(|| {
4977            ::protobuf::reflect::EnumDescriptor::new_pb_name::<RestoreDatabaseEncryptionConfig_EncryptionType>("RestoreDatabaseEncryptionConfig.EncryptionType", file_descriptor_proto())
4978        })
4979    }
4980}
4981
4982impl ::std::marker::Copy for RestoreDatabaseEncryptionConfig_EncryptionType {
4983}
4984
4985impl ::std::default::Default for RestoreDatabaseEncryptionConfig_EncryptionType {
4986    fn default() -> Self {
4987        RestoreDatabaseEncryptionConfig_EncryptionType::ENCRYPTION_TYPE_UNSPECIFIED
4988    }
4989}
4990
4991impl ::protobuf::reflect::ProtobufValue for RestoreDatabaseEncryptionConfig_EncryptionType {
4992    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4993        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
4994    }
4995}
4996
4997#[derive(PartialEq,Clone,Default)]
4998pub struct RestoreDatabaseMetadata {
4999    // message fields
5000    pub name: ::std::string::String,
5001    pub source_type: RestoreSourceType,
5002    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
5003    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5004    pub optimize_database_operation_name: ::std::string::String,
5005    // message oneof groups
5006    pub source_info: ::std::option::Option<RestoreDatabaseMetadata_oneof_source_info>,
5007    // special fields
5008    pub unknown_fields: ::protobuf::UnknownFields,
5009    pub cached_size: ::protobuf::CachedSize,
5010}
5011
5012impl<'a> ::std::default::Default for &'a RestoreDatabaseMetadata {
5013    fn default() -> &'a RestoreDatabaseMetadata {
5014        <RestoreDatabaseMetadata as ::protobuf::Message>::default_instance()
5015    }
5016}
5017
5018#[derive(Clone,PartialEq,Debug)]
5019pub enum RestoreDatabaseMetadata_oneof_source_info {
5020    backup_info(super::backup::BackupInfo),
5021}
5022
5023impl RestoreDatabaseMetadata {
5024    pub fn new() -> RestoreDatabaseMetadata {
5025        ::std::default::Default::default()
5026    }
5027
5028    // string name = 1;
5029
5030
5031    pub fn get_name(&self) -> &str {
5032        &self.name
5033    }
5034    pub fn clear_name(&mut self) {
5035        self.name.clear();
5036    }
5037
5038    // Param is passed by value, moved
5039    pub fn set_name(&mut self, v: ::std::string::String) {
5040        self.name = v;
5041    }
5042
5043    // Mutable pointer to the field.
5044    // If field is not initialized, it is initialized with default value first.
5045    pub fn mut_name(&mut self) -> &mut ::std::string::String {
5046        &mut self.name
5047    }
5048
5049    // Take field
5050    pub fn take_name(&mut self) -> ::std::string::String {
5051        ::std::mem::replace(&mut self.name, ::std::string::String::new())
5052    }
5053
5054    // .google.spanner.admin.database.v1.RestoreSourceType source_type = 2;
5055
5056
5057    pub fn get_source_type(&self) -> RestoreSourceType {
5058        self.source_type
5059    }
5060    pub fn clear_source_type(&mut self) {
5061        self.source_type = RestoreSourceType::TYPE_UNSPECIFIED;
5062    }
5063
5064    // Param is passed by value, moved
5065    pub fn set_source_type(&mut self, v: RestoreSourceType) {
5066        self.source_type = v;
5067    }
5068
5069    // .google.spanner.admin.database.v1.BackupInfo backup_info = 3;
5070
5071
5072    pub fn get_backup_info(&self) -> &super::backup::BackupInfo {
5073        match self.source_info {
5074            ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(ref v)) => v,
5075            _ => <super::backup::BackupInfo as ::protobuf::Message>::default_instance(),
5076        }
5077    }
5078    pub fn clear_backup_info(&mut self) {
5079        self.source_info = ::std::option::Option::None;
5080    }
5081
5082    pub fn has_backup_info(&self) -> bool {
5083        match self.source_info {
5084            ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(..)) => true,
5085            _ => false,
5086        }
5087    }
5088
5089    // Param is passed by value, moved
5090    pub fn set_backup_info(&mut self, v: super::backup::BackupInfo) {
5091        self.source_info = ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(v))
5092    }
5093
5094    // Mutable pointer to the field.
5095    pub fn mut_backup_info(&mut self) -> &mut super::backup::BackupInfo {
5096        if let ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(_)) = self.source_info {
5097        } else {
5098            self.source_info = ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(super::backup::BackupInfo::new()));
5099        }
5100        match self.source_info {
5101            ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(ref mut v)) => v,
5102            _ => panic!(),
5103        }
5104    }
5105
5106    // Take field
5107    pub fn take_backup_info(&mut self) -> super::backup::BackupInfo {
5108        if self.has_backup_info() {
5109            match self.source_info.take() {
5110                ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(v)) => v,
5111                _ => panic!(),
5112            }
5113        } else {
5114            super::backup::BackupInfo::new()
5115        }
5116    }
5117
5118    // .google.spanner.admin.database.v1.OperationProgress progress = 4;
5119
5120
5121    pub fn get_progress(&self) -> &super::common::OperationProgress {
5122        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
5123    }
5124    pub fn clear_progress(&mut self) {
5125        self.progress.clear();
5126    }
5127
5128    pub fn has_progress(&self) -> bool {
5129        self.progress.is_some()
5130    }
5131
5132    // Param is passed by value, moved
5133    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
5134        self.progress = ::protobuf::SingularPtrField::some(v);
5135    }
5136
5137    // Mutable pointer to the field.
5138    // If field is not initialized, it is initialized with default value first.
5139    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
5140        if self.progress.is_none() {
5141            self.progress.set_default();
5142        }
5143        self.progress.as_mut().unwrap()
5144    }
5145
5146    // Take field
5147    pub fn take_progress(&mut self) -> super::common::OperationProgress {
5148        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
5149    }
5150
5151    // .google.protobuf.Timestamp cancel_time = 5;
5152
5153
5154    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
5155        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
5156    }
5157    pub fn clear_cancel_time(&mut self) {
5158        self.cancel_time.clear();
5159    }
5160
5161    pub fn has_cancel_time(&self) -> bool {
5162        self.cancel_time.is_some()
5163    }
5164
5165    // Param is passed by value, moved
5166    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
5167        self.cancel_time = ::protobuf::SingularPtrField::some(v);
5168    }
5169
5170    // Mutable pointer to the field.
5171    // If field is not initialized, it is initialized with default value first.
5172    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
5173        if self.cancel_time.is_none() {
5174            self.cancel_time.set_default();
5175        }
5176        self.cancel_time.as_mut().unwrap()
5177    }
5178
5179    // Take field
5180    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
5181        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
5182    }
5183
5184    // string optimize_database_operation_name = 6;
5185
5186
5187    pub fn get_optimize_database_operation_name(&self) -> &str {
5188        &self.optimize_database_operation_name
5189    }
5190    pub fn clear_optimize_database_operation_name(&mut self) {
5191        self.optimize_database_operation_name.clear();
5192    }
5193
5194    // Param is passed by value, moved
5195    pub fn set_optimize_database_operation_name(&mut self, v: ::std::string::String) {
5196        self.optimize_database_operation_name = v;
5197    }
5198
5199    // Mutable pointer to the field.
5200    // If field is not initialized, it is initialized with default value first.
5201    pub fn mut_optimize_database_operation_name(&mut self) -> &mut ::std::string::String {
5202        &mut self.optimize_database_operation_name
5203    }
5204
5205    // Take field
5206    pub fn take_optimize_database_operation_name(&mut self) -> ::std::string::String {
5207        ::std::mem::replace(&mut self.optimize_database_operation_name, ::std::string::String::new())
5208    }
5209}
5210
5211impl ::protobuf::Message for RestoreDatabaseMetadata {
5212    fn is_initialized(&self) -> bool {
5213        if let Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(ref v)) = self.source_info {
5214            if !v.is_initialized() {
5215                return false;
5216            }
5217        }
5218        for v in &self.progress {
5219            if !v.is_initialized() {
5220                return false;
5221            }
5222        };
5223        for v in &self.cancel_time {
5224            if !v.is_initialized() {
5225                return false;
5226            }
5227        };
5228        true
5229    }
5230
5231    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5232        while !is.eof()? {
5233            let (field_number, wire_type) = is.read_tag_unpack()?;
5234            match field_number {
5235                1 => {
5236                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
5237                },
5238                2 => {
5239                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.source_type, 2, &mut self.unknown_fields)?
5240                },
5241                3 => {
5242                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
5243                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5244                    }
5245                    self.source_info = ::std::option::Option::Some(RestoreDatabaseMetadata_oneof_source_info::backup_info(is.read_message()?));
5246                },
5247                4 => {
5248                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
5249                },
5250                5 => {
5251                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
5252                },
5253                6 => {
5254                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.optimize_database_operation_name)?;
5255                },
5256                _ => {
5257                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5258                },
5259            };
5260        }
5261        ::std::result::Result::Ok(())
5262    }
5263
5264    // Compute sizes of nested messages
5265    #[allow(unused_variables)]
5266    fn compute_size(&self) -> u32 {
5267        let mut my_size = 0;
5268        if !self.name.is_empty() {
5269            my_size += ::protobuf::rt::string_size(1, &self.name);
5270        }
5271        if self.source_type != RestoreSourceType::TYPE_UNSPECIFIED {
5272            my_size += ::protobuf::rt::enum_size(2, self.source_type);
5273        }
5274        if let Some(ref v) = self.progress.as_ref() {
5275            let len = v.compute_size();
5276            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5277        }
5278        if let Some(ref v) = self.cancel_time.as_ref() {
5279            let len = v.compute_size();
5280            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5281        }
5282        if !self.optimize_database_operation_name.is_empty() {
5283            my_size += ::protobuf::rt::string_size(6, &self.optimize_database_operation_name);
5284        }
5285        if let ::std::option::Option::Some(ref v) = self.source_info {
5286            match v {
5287                &RestoreDatabaseMetadata_oneof_source_info::backup_info(ref v) => {
5288                    let len = v.compute_size();
5289                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5290                },
5291            };
5292        }
5293        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5294        self.cached_size.set(my_size);
5295        my_size
5296    }
5297
5298    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5299        if !self.name.is_empty() {
5300            os.write_string(1, &self.name)?;
5301        }
5302        if self.source_type != RestoreSourceType::TYPE_UNSPECIFIED {
5303            os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.source_type))?;
5304        }
5305        if let Some(ref v) = self.progress.as_ref() {
5306            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5307            os.write_raw_varint32(v.get_cached_size())?;
5308            v.write_to_with_cached_sizes(os)?;
5309        }
5310        if let Some(ref v) = self.cancel_time.as_ref() {
5311            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5312            os.write_raw_varint32(v.get_cached_size())?;
5313            v.write_to_with_cached_sizes(os)?;
5314        }
5315        if !self.optimize_database_operation_name.is_empty() {
5316            os.write_string(6, &self.optimize_database_operation_name)?;
5317        }
5318        if let ::std::option::Option::Some(ref v) = self.source_info {
5319            match v {
5320                &RestoreDatabaseMetadata_oneof_source_info::backup_info(ref v) => {
5321                    os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5322                    os.write_raw_varint32(v.get_cached_size())?;
5323                    v.write_to_with_cached_sizes(os)?;
5324                },
5325            };
5326        }
5327        os.write_unknown_fields(self.get_unknown_fields())?;
5328        ::std::result::Result::Ok(())
5329    }
5330
5331    fn get_cached_size(&self) -> u32 {
5332        self.cached_size.get()
5333    }
5334
5335    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5336        &self.unknown_fields
5337    }
5338
5339    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5340        &mut self.unknown_fields
5341    }
5342
5343    fn as_any(&self) -> &dyn (::std::any::Any) {
5344        self as &dyn (::std::any::Any)
5345    }
5346    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5347        self as &mut dyn (::std::any::Any)
5348    }
5349    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5350        self
5351    }
5352
5353    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5354        Self::descriptor_static()
5355    }
5356
5357    fn new() -> RestoreDatabaseMetadata {
5358        RestoreDatabaseMetadata::new()
5359    }
5360
5361    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5362        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5363        descriptor.get(|| {
5364            let mut fields = ::std::vec::Vec::new();
5365            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5366                "name",
5367                |m: &RestoreDatabaseMetadata| { &m.name },
5368                |m: &mut RestoreDatabaseMetadata| { &mut m.name },
5369            ));
5370            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<RestoreSourceType>>(
5371                "source_type",
5372                |m: &RestoreDatabaseMetadata| { &m.source_type },
5373                |m: &mut RestoreDatabaseMetadata| { &mut m.source_type },
5374            ));
5375            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::backup::BackupInfo>(
5376                "backup_info",
5377                RestoreDatabaseMetadata::has_backup_info,
5378                RestoreDatabaseMetadata::get_backup_info,
5379            ));
5380            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
5381                "progress",
5382                |m: &RestoreDatabaseMetadata| { &m.progress },
5383                |m: &mut RestoreDatabaseMetadata| { &mut m.progress },
5384            ));
5385            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
5386                "cancel_time",
5387                |m: &RestoreDatabaseMetadata| { &m.cancel_time },
5388                |m: &mut RestoreDatabaseMetadata| { &mut m.cancel_time },
5389            ));
5390            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5391                "optimize_database_operation_name",
5392                |m: &RestoreDatabaseMetadata| { &m.optimize_database_operation_name },
5393                |m: &mut RestoreDatabaseMetadata| { &mut m.optimize_database_operation_name },
5394            ));
5395            ::protobuf::reflect::MessageDescriptor::new_pb_name::<RestoreDatabaseMetadata>(
5396                "RestoreDatabaseMetadata",
5397                fields,
5398                file_descriptor_proto()
5399            )
5400        })
5401    }
5402
5403    fn default_instance() -> &'static RestoreDatabaseMetadata {
5404        static instance: ::protobuf::rt::LazyV2<RestoreDatabaseMetadata> = ::protobuf::rt::LazyV2::INIT;
5405        instance.get(RestoreDatabaseMetadata::new)
5406    }
5407}
5408
5409impl ::protobuf::Clear for RestoreDatabaseMetadata {
5410    fn clear(&mut self) {
5411        self.name.clear();
5412        self.source_type = RestoreSourceType::TYPE_UNSPECIFIED;
5413        self.source_info = ::std::option::Option::None;
5414        self.progress.clear();
5415        self.cancel_time.clear();
5416        self.optimize_database_operation_name.clear();
5417        self.unknown_fields.clear();
5418    }
5419}
5420
5421impl ::std::fmt::Debug for RestoreDatabaseMetadata {
5422    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5423        ::protobuf::text_format::fmt(self, f)
5424    }
5425}
5426
5427impl ::protobuf::reflect::ProtobufValue for RestoreDatabaseMetadata {
5428    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5429        ::protobuf::reflect::ReflectValueRef::Message(self)
5430    }
5431}
5432
5433#[derive(PartialEq,Clone,Default)]
5434pub struct OptimizeRestoredDatabaseMetadata {
5435    // message fields
5436    pub name: ::std::string::String,
5437    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
5438    // special fields
5439    pub unknown_fields: ::protobuf::UnknownFields,
5440    pub cached_size: ::protobuf::CachedSize,
5441}
5442
5443impl<'a> ::std::default::Default for &'a OptimizeRestoredDatabaseMetadata {
5444    fn default() -> &'a OptimizeRestoredDatabaseMetadata {
5445        <OptimizeRestoredDatabaseMetadata as ::protobuf::Message>::default_instance()
5446    }
5447}
5448
5449impl OptimizeRestoredDatabaseMetadata {
5450    pub fn new() -> OptimizeRestoredDatabaseMetadata {
5451        ::std::default::Default::default()
5452    }
5453
5454    // string name = 1;
5455
5456
5457    pub fn get_name(&self) -> &str {
5458        &self.name
5459    }
5460    pub fn clear_name(&mut self) {
5461        self.name.clear();
5462    }
5463
5464    // Param is passed by value, moved
5465    pub fn set_name(&mut self, v: ::std::string::String) {
5466        self.name = v;
5467    }
5468
5469    // Mutable pointer to the field.
5470    // If field is not initialized, it is initialized with default value first.
5471    pub fn mut_name(&mut self) -> &mut ::std::string::String {
5472        &mut self.name
5473    }
5474
5475    // Take field
5476    pub fn take_name(&mut self) -> ::std::string::String {
5477        ::std::mem::replace(&mut self.name, ::std::string::String::new())
5478    }
5479
5480    // .google.spanner.admin.database.v1.OperationProgress progress = 2;
5481
5482
5483    pub fn get_progress(&self) -> &super::common::OperationProgress {
5484        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
5485    }
5486    pub fn clear_progress(&mut self) {
5487        self.progress.clear();
5488    }
5489
5490    pub fn has_progress(&self) -> bool {
5491        self.progress.is_some()
5492    }
5493
5494    // Param is passed by value, moved
5495    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
5496        self.progress = ::protobuf::SingularPtrField::some(v);
5497    }
5498
5499    // Mutable pointer to the field.
5500    // If field is not initialized, it is initialized with default value first.
5501    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
5502        if self.progress.is_none() {
5503            self.progress.set_default();
5504        }
5505        self.progress.as_mut().unwrap()
5506    }
5507
5508    // Take field
5509    pub fn take_progress(&mut self) -> super::common::OperationProgress {
5510        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
5511    }
5512}
5513
5514impl ::protobuf::Message for OptimizeRestoredDatabaseMetadata {
5515    fn is_initialized(&self) -> bool {
5516        for v in &self.progress {
5517            if !v.is_initialized() {
5518                return false;
5519            }
5520        };
5521        true
5522    }
5523
5524    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5525        while !is.eof()? {
5526            let (field_number, wire_type) = is.read_tag_unpack()?;
5527            match field_number {
5528                1 => {
5529                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
5530                },
5531                2 => {
5532                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
5533                },
5534                _ => {
5535                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5536                },
5537            };
5538        }
5539        ::std::result::Result::Ok(())
5540    }
5541
5542    // Compute sizes of nested messages
5543    #[allow(unused_variables)]
5544    fn compute_size(&self) -> u32 {
5545        let mut my_size = 0;
5546        if !self.name.is_empty() {
5547            my_size += ::protobuf::rt::string_size(1, &self.name);
5548        }
5549        if let Some(ref v) = self.progress.as_ref() {
5550            let len = v.compute_size();
5551            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5552        }
5553        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5554        self.cached_size.set(my_size);
5555        my_size
5556    }
5557
5558    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5559        if !self.name.is_empty() {
5560            os.write_string(1, &self.name)?;
5561        }
5562        if let Some(ref v) = self.progress.as_ref() {
5563            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5564            os.write_raw_varint32(v.get_cached_size())?;
5565            v.write_to_with_cached_sizes(os)?;
5566        }
5567        os.write_unknown_fields(self.get_unknown_fields())?;
5568        ::std::result::Result::Ok(())
5569    }
5570
5571    fn get_cached_size(&self) -> u32 {
5572        self.cached_size.get()
5573    }
5574
5575    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5576        &self.unknown_fields
5577    }
5578
5579    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5580        &mut self.unknown_fields
5581    }
5582
5583    fn as_any(&self) -> &dyn (::std::any::Any) {
5584        self as &dyn (::std::any::Any)
5585    }
5586    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5587        self as &mut dyn (::std::any::Any)
5588    }
5589    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5590        self
5591    }
5592
5593    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5594        Self::descriptor_static()
5595    }
5596
5597    fn new() -> OptimizeRestoredDatabaseMetadata {
5598        OptimizeRestoredDatabaseMetadata::new()
5599    }
5600
5601    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5602        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5603        descriptor.get(|| {
5604            let mut fields = ::std::vec::Vec::new();
5605            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5606                "name",
5607                |m: &OptimizeRestoredDatabaseMetadata| { &m.name },
5608                |m: &mut OptimizeRestoredDatabaseMetadata| { &mut m.name },
5609            ));
5610            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
5611                "progress",
5612                |m: &OptimizeRestoredDatabaseMetadata| { &m.progress },
5613                |m: &mut OptimizeRestoredDatabaseMetadata| { &mut m.progress },
5614            ));
5615            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OptimizeRestoredDatabaseMetadata>(
5616                "OptimizeRestoredDatabaseMetadata",
5617                fields,
5618                file_descriptor_proto()
5619            )
5620        })
5621    }
5622
5623    fn default_instance() -> &'static OptimizeRestoredDatabaseMetadata {
5624        static instance: ::protobuf::rt::LazyV2<OptimizeRestoredDatabaseMetadata> = ::protobuf::rt::LazyV2::INIT;
5625        instance.get(OptimizeRestoredDatabaseMetadata::new)
5626    }
5627}
5628
5629impl ::protobuf::Clear for OptimizeRestoredDatabaseMetadata {
5630    fn clear(&mut self) {
5631        self.name.clear();
5632        self.progress.clear();
5633        self.unknown_fields.clear();
5634    }
5635}
5636
5637impl ::std::fmt::Debug for OptimizeRestoredDatabaseMetadata {
5638    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5639        ::protobuf::text_format::fmt(self, f)
5640    }
5641}
5642
5643impl ::protobuf::reflect::ProtobufValue for OptimizeRestoredDatabaseMetadata {
5644    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5645        ::protobuf::reflect::ReflectValueRef::Message(self)
5646    }
5647}
5648
5649#[derive(PartialEq,Clone,Default)]
5650pub struct DatabaseRole {
5651    // message fields
5652    pub name: ::std::string::String,
5653    // special fields
5654    pub unknown_fields: ::protobuf::UnknownFields,
5655    pub cached_size: ::protobuf::CachedSize,
5656}
5657
5658impl<'a> ::std::default::Default for &'a DatabaseRole {
5659    fn default() -> &'a DatabaseRole {
5660        <DatabaseRole as ::protobuf::Message>::default_instance()
5661    }
5662}
5663
5664impl DatabaseRole {
5665    pub fn new() -> DatabaseRole {
5666        ::std::default::Default::default()
5667    }
5668
5669    // string name = 1;
5670
5671
5672    pub fn get_name(&self) -> &str {
5673        &self.name
5674    }
5675    pub fn clear_name(&mut self) {
5676        self.name.clear();
5677    }
5678
5679    // Param is passed by value, moved
5680    pub fn set_name(&mut self, v: ::std::string::String) {
5681        self.name = v;
5682    }
5683
5684    // Mutable pointer to the field.
5685    // If field is not initialized, it is initialized with default value first.
5686    pub fn mut_name(&mut self) -> &mut ::std::string::String {
5687        &mut self.name
5688    }
5689
5690    // Take field
5691    pub fn take_name(&mut self) -> ::std::string::String {
5692        ::std::mem::replace(&mut self.name, ::std::string::String::new())
5693    }
5694}
5695
5696impl ::protobuf::Message for DatabaseRole {
5697    fn is_initialized(&self) -> bool {
5698        true
5699    }
5700
5701    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5702        while !is.eof()? {
5703            let (field_number, wire_type) = is.read_tag_unpack()?;
5704            match field_number {
5705                1 => {
5706                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
5707                },
5708                _ => {
5709                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5710                },
5711            };
5712        }
5713        ::std::result::Result::Ok(())
5714    }
5715
5716    // Compute sizes of nested messages
5717    #[allow(unused_variables)]
5718    fn compute_size(&self) -> u32 {
5719        let mut my_size = 0;
5720        if !self.name.is_empty() {
5721            my_size += ::protobuf::rt::string_size(1, &self.name);
5722        }
5723        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5724        self.cached_size.set(my_size);
5725        my_size
5726    }
5727
5728    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5729        if !self.name.is_empty() {
5730            os.write_string(1, &self.name)?;
5731        }
5732        os.write_unknown_fields(self.get_unknown_fields())?;
5733        ::std::result::Result::Ok(())
5734    }
5735
5736    fn get_cached_size(&self) -> u32 {
5737        self.cached_size.get()
5738    }
5739
5740    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5741        &self.unknown_fields
5742    }
5743
5744    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5745        &mut self.unknown_fields
5746    }
5747
5748    fn as_any(&self) -> &dyn (::std::any::Any) {
5749        self as &dyn (::std::any::Any)
5750    }
5751    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5752        self as &mut dyn (::std::any::Any)
5753    }
5754    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5755        self
5756    }
5757
5758    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5759        Self::descriptor_static()
5760    }
5761
5762    fn new() -> DatabaseRole {
5763        DatabaseRole::new()
5764    }
5765
5766    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5767        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5768        descriptor.get(|| {
5769            let mut fields = ::std::vec::Vec::new();
5770            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5771                "name",
5772                |m: &DatabaseRole| { &m.name },
5773                |m: &mut DatabaseRole| { &mut m.name },
5774            ));
5775            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DatabaseRole>(
5776                "DatabaseRole",
5777                fields,
5778                file_descriptor_proto()
5779            )
5780        })
5781    }
5782
5783    fn default_instance() -> &'static DatabaseRole {
5784        static instance: ::protobuf::rt::LazyV2<DatabaseRole> = ::protobuf::rt::LazyV2::INIT;
5785        instance.get(DatabaseRole::new)
5786    }
5787}
5788
5789impl ::protobuf::Clear for DatabaseRole {
5790    fn clear(&mut self) {
5791        self.name.clear();
5792        self.unknown_fields.clear();
5793    }
5794}
5795
5796impl ::std::fmt::Debug for DatabaseRole {
5797    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5798        ::protobuf::text_format::fmt(self, f)
5799    }
5800}
5801
5802impl ::protobuf::reflect::ProtobufValue for DatabaseRole {
5803    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5804        ::protobuf::reflect::ReflectValueRef::Message(self)
5805    }
5806}
5807
5808#[derive(PartialEq,Clone,Default)]
5809pub struct ListDatabaseRolesRequest {
5810    // message fields
5811    pub parent: ::std::string::String,
5812    pub page_size: i32,
5813    pub page_token: ::std::string::String,
5814    // special fields
5815    pub unknown_fields: ::protobuf::UnknownFields,
5816    pub cached_size: ::protobuf::CachedSize,
5817}
5818
5819impl<'a> ::std::default::Default for &'a ListDatabaseRolesRequest {
5820    fn default() -> &'a ListDatabaseRolesRequest {
5821        <ListDatabaseRolesRequest as ::protobuf::Message>::default_instance()
5822    }
5823}
5824
5825impl ListDatabaseRolesRequest {
5826    pub fn new() -> ListDatabaseRolesRequest {
5827        ::std::default::Default::default()
5828    }
5829
5830    // string parent = 1;
5831
5832
5833    pub fn get_parent(&self) -> &str {
5834        &self.parent
5835    }
5836    pub fn clear_parent(&mut self) {
5837        self.parent.clear();
5838    }
5839
5840    // Param is passed by value, moved
5841    pub fn set_parent(&mut self, v: ::std::string::String) {
5842        self.parent = v;
5843    }
5844
5845    // Mutable pointer to the field.
5846    // If field is not initialized, it is initialized with default value first.
5847    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
5848        &mut self.parent
5849    }
5850
5851    // Take field
5852    pub fn take_parent(&mut self) -> ::std::string::String {
5853        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
5854    }
5855
5856    // int32 page_size = 2;
5857
5858
5859    pub fn get_page_size(&self) -> i32 {
5860        self.page_size
5861    }
5862    pub fn clear_page_size(&mut self) {
5863        self.page_size = 0;
5864    }
5865
5866    // Param is passed by value, moved
5867    pub fn set_page_size(&mut self, v: i32) {
5868        self.page_size = v;
5869    }
5870
5871    // string page_token = 3;
5872
5873
5874    pub fn get_page_token(&self) -> &str {
5875        &self.page_token
5876    }
5877    pub fn clear_page_token(&mut self) {
5878        self.page_token.clear();
5879    }
5880
5881    // Param is passed by value, moved
5882    pub fn set_page_token(&mut self, v: ::std::string::String) {
5883        self.page_token = v;
5884    }
5885
5886    // Mutable pointer to the field.
5887    // If field is not initialized, it is initialized with default value first.
5888    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
5889        &mut self.page_token
5890    }
5891
5892    // Take field
5893    pub fn take_page_token(&mut self) -> ::std::string::String {
5894        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
5895    }
5896}
5897
5898impl ::protobuf::Message for ListDatabaseRolesRequest {
5899    fn is_initialized(&self) -> bool {
5900        true
5901    }
5902
5903    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5904        while !is.eof()? {
5905            let (field_number, wire_type) = is.read_tag_unpack()?;
5906            match field_number {
5907                1 => {
5908                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
5909                },
5910                2 => {
5911                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5912                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5913                    }
5914                    let tmp = is.read_int32()?;
5915                    self.page_size = tmp;
5916                },
5917                3 => {
5918                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
5919                },
5920                _ => {
5921                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5922                },
5923            };
5924        }
5925        ::std::result::Result::Ok(())
5926    }
5927
5928    // Compute sizes of nested messages
5929    #[allow(unused_variables)]
5930    fn compute_size(&self) -> u32 {
5931        let mut my_size = 0;
5932        if !self.parent.is_empty() {
5933            my_size += ::protobuf::rt::string_size(1, &self.parent);
5934        }
5935        if self.page_size != 0 {
5936            my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
5937        }
5938        if !self.page_token.is_empty() {
5939            my_size += ::protobuf::rt::string_size(3, &self.page_token);
5940        }
5941        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5942        self.cached_size.set(my_size);
5943        my_size
5944    }
5945
5946    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5947        if !self.parent.is_empty() {
5948            os.write_string(1, &self.parent)?;
5949        }
5950        if self.page_size != 0 {
5951            os.write_int32(2, self.page_size)?;
5952        }
5953        if !self.page_token.is_empty() {
5954            os.write_string(3, &self.page_token)?;
5955        }
5956        os.write_unknown_fields(self.get_unknown_fields())?;
5957        ::std::result::Result::Ok(())
5958    }
5959
5960    fn get_cached_size(&self) -> u32 {
5961        self.cached_size.get()
5962    }
5963
5964    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5965        &self.unknown_fields
5966    }
5967
5968    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5969        &mut self.unknown_fields
5970    }
5971
5972    fn as_any(&self) -> &dyn (::std::any::Any) {
5973        self as &dyn (::std::any::Any)
5974    }
5975    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5976        self as &mut dyn (::std::any::Any)
5977    }
5978    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5979        self
5980    }
5981
5982    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5983        Self::descriptor_static()
5984    }
5985
5986    fn new() -> ListDatabaseRolesRequest {
5987        ListDatabaseRolesRequest::new()
5988    }
5989
5990    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5991        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5992        descriptor.get(|| {
5993            let mut fields = ::std::vec::Vec::new();
5994            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5995                "parent",
5996                |m: &ListDatabaseRolesRequest| { &m.parent },
5997                |m: &mut ListDatabaseRolesRequest| { &mut m.parent },
5998            ));
5999            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
6000                "page_size",
6001                |m: &ListDatabaseRolesRequest| { &m.page_size },
6002                |m: &mut ListDatabaseRolesRequest| { &mut m.page_size },
6003            ));
6004            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6005                "page_token",
6006                |m: &ListDatabaseRolesRequest| { &m.page_token },
6007                |m: &mut ListDatabaseRolesRequest| { &mut m.page_token },
6008            ));
6009            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabaseRolesRequest>(
6010                "ListDatabaseRolesRequest",
6011                fields,
6012                file_descriptor_proto()
6013            )
6014        })
6015    }
6016
6017    fn default_instance() -> &'static ListDatabaseRolesRequest {
6018        static instance: ::protobuf::rt::LazyV2<ListDatabaseRolesRequest> = ::protobuf::rt::LazyV2::INIT;
6019        instance.get(ListDatabaseRolesRequest::new)
6020    }
6021}
6022
6023impl ::protobuf::Clear for ListDatabaseRolesRequest {
6024    fn clear(&mut self) {
6025        self.parent.clear();
6026        self.page_size = 0;
6027        self.page_token.clear();
6028        self.unknown_fields.clear();
6029    }
6030}
6031
6032impl ::std::fmt::Debug for ListDatabaseRolesRequest {
6033    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6034        ::protobuf::text_format::fmt(self, f)
6035    }
6036}
6037
6038impl ::protobuf::reflect::ProtobufValue for ListDatabaseRolesRequest {
6039    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6040        ::protobuf::reflect::ReflectValueRef::Message(self)
6041    }
6042}
6043
6044#[derive(PartialEq,Clone,Default)]
6045pub struct ListDatabaseRolesResponse {
6046    // message fields
6047    pub database_roles: ::protobuf::RepeatedField<DatabaseRole>,
6048    pub next_page_token: ::std::string::String,
6049    // special fields
6050    pub unknown_fields: ::protobuf::UnknownFields,
6051    pub cached_size: ::protobuf::CachedSize,
6052}
6053
6054impl<'a> ::std::default::Default for &'a ListDatabaseRolesResponse {
6055    fn default() -> &'a ListDatabaseRolesResponse {
6056        <ListDatabaseRolesResponse as ::protobuf::Message>::default_instance()
6057    }
6058}
6059
6060impl ListDatabaseRolesResponse {
6061    pub fn new() -> ListDatabaseRolesResponse {
6062        ::std::default::Default::default()
6063    }
6064
6065    // repeated .google.spanner.admin.database.v1.DatabaseRole database_roles = 1;
6066
6067
6068    pub fn get_database_roles(&self) -> &[DatabaseRole] {
6069        &self.database_roles
6070    }
6071    pub fn clear_database_roles(&mut self) {
6072        self.database_roles.clear();
6073    }
6074
6075    // Param is passed by value, moved
6076    pub fn set_database_roles(&mut self, v: ::protobuf::RepeatedField<DatabaseRole>) {
6077        self.database_roles = v;
6078    }
6079
6080    // Mutable pointer to the field.
6081    pub fn mut_database_roles(&mut self) -> &mut ::protobuf::RepeatedField<DatabaseRole> {
6082        &mut self.database_roles
6083    }
6084
6085    // Take field
6086    pub fn take_database_roles(&mut self) -> ::protobuf::RepeatedField<DatabaseRole> {
6087        ::std::mem::replace(&mut self.database_roles, ::protobuf::RepeatedField::new())
6088    }
6089
6090    // string next_page_token = 2;
6091
6092
6093    pub fn get_next_page_token(&self) -> &str {
6094        &self.next_page_token
6095    }
6096    pub fn clear_next_page_token(&mut self) {
6097        self.next_page_token.clear();
6098    }
6099
6100    // Param is passed by value, moved
6101    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
6102        self.next_page_token = v;
6103    }
6104
6105    // Mutable pointer to the field.
6106    // If field is not initialized, it is initialized with default value first.
6107    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
6108        &mut self.next_page_token
6109    }
6110
6111    // Take field
6112    pub fn take_next_page_token(&mut self) -> ::std::string::String {
6113        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
6114    }
6115}
6116
6117impl ::protobuf::Message for ListDatabaseRolesResponse {
6118    fn is_initialized(&self) -> bool {
6119        for v in &self.database_roles {
6120            if !v.is_initialized() {
6121                return false;
6122            }
6123        };
6124        true
6125    }
6126
6127    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6128        while !is.eof()? {
6129            let (field_number, wire_type) = is.read_tag_unpack()?;
6130            match field_number {
6131                1 => {
6132                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.database_roles)?;
6133                },
6134                2 => {
6135                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
6136                },
6137                _ => {
6138                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6139                },
6140            };
6141        }
6142        ::std::result::Result::Ok(())
6143    }
6144
6145    // Compute sizes of nested messages
6146    #[allow(unused_variables)]
6147    fn compute_size(&self) -> u32 {
6148        let mut my_size = 0;
6149        for value in &self.database_roles {
6150            let len = value.compute_size();
6151            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6152        };
6153        if !self.next_page_token.is_empty() {
6154            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
6155        }
6156        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6157        self.cached_size.set(my_size);
6158        my_size
6159    }
6160
6161    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6162        for v in &self.database_roles {
6163            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6164            os.write_raw_varint32(v.get_cached_size())?;
6165            v.write_to_with_cached_sizes(os)?;
6166        };
6167        if !self.next_page_token.is_empty() {
6168            os.write_string(2, &self.next_page_token)?;
6169        }
6170        os.write_unknown_fields(self.get_unknown_fields())?;
6171        ::std::result::Result::Ok(())
6172    }
6173
6174    fn get_cached_size(&self) -> u32 {
6175        self.cached_size.get()
6176    }
6177
6178    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6179        &self.unknown_fields
6180    }
6181
6182    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6183        &mut self.unknown_fields
6184    }
6185
6186    fn as_any(&self) -> &dyn (::std::any::Any) {
6187        self as &dyn (::std::any::Any)
6188    }
6189    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6190        self as &mut dyn (::std::any::Any)
6191    }
6192    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6193        self
6194    }
6195
6196    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6197        Self::descriptor_static()
6198    }
6199
6200    fn new() -> ListDatabaseRolesResponse {
6201        ListDatabaseRolesResponse::new()
6202    }
6203
6204    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6205        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6206        descriptor.get(|| {
6207            let mut fields = ::std::vec::Vec::new();
6208            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DatabaseRole>>(
6209                "database_roles",
6210                |m: &ListDatabaseRolesResponse| { &m.database_roles },
6211                |m: &mut ListDatabaseRolesResponse| { &mut m.database_roles },
6212            ));
6213            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6214                "next_page_token",
6215                |m: &ListDatabaseRolesResponse| { &m.next_page_token },
6216                |m: &mut ListDatabaseRolesResponse| { &mut m.next_page_token },
6217            ));
6218            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListDatabaseRolesResponse>(
6219                "ListDatabaseRolesResponse",
6220                fields,
6221                file_descriptor_proto()
6222            )
6223        })
6224    }
6225
6226    fn default_instance() -> &'static ListDatabaseRolesResponse {
6227        static instance: ::protobuf::rt::LazyV2<ListDatabaseRolesResponse> = ::protobuf::rt::LazyV2::INIT;
6228        instance.get(ListDatabaseRolesResponse::new)
6229    }
6230}
6231
6232impl ::protobuf::Clear for ListDatabaseRolesResponse {
6233    fn clear(&mut self) {
6234        self.database_roles.clear();
6235        self.next_page_token.clear();
6236        self.unknown_fields.clear();
6237    }
6238}
6239
6240impl ::std::fmt::Debug for ListDatabaseRolesResponse {
6241    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6242        ::protobuf::text_format::fmt(self, f)
6243    }
6244}
6245
6246impl ::protobuf::reflect::ProtobufValue for ListDatabaseRolesResponse {
6247    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6248        ::protobuf::reflect::ReflectValueRef::Message(self)
6249    }
6250}
6251
6252#[derive(Clone,PartialEq,Eq,Debug,Hash)]
6253pub enum RestoreSourceType {
6254    TYPE_UNSPECIFIED = 0,
6255    BACKUP = 1,
6256}
6257
6258impl ::protobuf::ProtobufEnum for RestoreSourceType {
6259    fn value(&self) -> i32 {
6260        *self as i32
6261    }
6262
6263    fn from_i32(value: i32) -> ::std::option::Option<RestoreSourceType> {
6264        match value {
6265            0 => ::std::option::Option::Some(RestoreSourceType::TYPE_UNSPECIFIED),
6266            1 => ::std::option::Option::Some(RestoreSourceType::BACKUP),
6267            _ => ::std::option::Option::None
6268        }
6269    }
6270
6271    fn values() -> &'static [Self] {
6272        static values: &'static [RestoreSourceType] = &[
6273            RestoreSourceType::TYPE_UNSPECIFIED,
6274            RestoreSourceType::BACKUP,
6275        ];
6276        values
6277    }
6278
6279    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
6280        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
6281        descriptor.get(|| {
6282            ::protobuf::reflect::EnumDescriptor::new_pb_name::<RestoreSourceType>("RestoreSourceType", file_descriptor_proto())
6283        })
6284    }
6285}
6286
6287impl ::std::marker::Copy for RestoreSourceType {
6288}
6289
6290impl ::std::default::Default for RestoreSourceType {
6291    fn default() -> Self {
6292        RestoreSourceType::TYPE_UNSPECIFIED
6293    }
6294}
6295
6296impl ::protobuf::reflect::ProtobufValue for RestoreSourceType {
6297    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6298        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
6299    }
6300}
6301
6302static file_descriptor_proto_data: &'static [u8] = b"\
6303    \n=google/spanner/admin/database/v1/spanner_database_admin.proto\x12\x20\
6304    google.spanner.admin.database.v1\x1a\x1cgoogle/api/annotations.proto\x1a\
6305    \x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\
6306    \x19google/api/resource.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\
6307    \x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\
6308    \x1a\x1bgoogle/protobuf/empty.proto\x1a\x20google/protobuf/field_mask.pr\
6309    oto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a-google/spanner/admin/data\
6310    base/v1/backup.proto\x1a-google/spanner/admin/database/v1/common.proto\"\
6311    \xc3\x01\n\x0bRestoreInfo\x12T\n\x0bsource_type\x18\x01\x20\x01(\x0e23.g\
6312    oogle.spanner.admin.database.v1.RestoreSourceTypeR\nsourceType\x12O\n\
6313    \x0bbackup_info\x18\x02\x20\x01(\x0b2,.google.spanner.admin.database.v1.\
6314    BackupInfoH\0R\nbackupInfoB\r\n\x0bsource_info\"\x82\x08\n\x08Database\
6315    \x12\x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0A\x02\x12K\n\x05s\
6316    tate\x18\x02\x20\x01(\x0e20.google.spanner.admin.database.v1.Database.St\
6317    ateR\x05stateB\x03\xe0A\x03\x12@\n\x0bcreate_time\x18\x03\x20\x01(\x0b2\
6318    \x1a.google.protobuf.TimestampR\ncreateTimeB\x03\xe0A\x03\x12U\n\x0crest\
6319    ore_info\x18\x04\x20\x01(\x0b2-.google.spanner.admin.database.v1.Restore\
6320    InfoR\x0brestoreInfoB\x03\xe0A\x03\x12d\n\x11encryption_config\x18\x05\
6321    \x20\x01(\x0b22.google.spanner.admin.database.v1.EncryptionConfigR\x10en\
6322    cryptionConfigB\x03\xe0A\x03\x12^\n\x0fencryption_info\x18\x08\x20\x03(\
6323    \x0b20.google.spanner.admin.database.v1.EncryptionInfoR\x0eencryptionInf\
6324    oB\x03\xe0A\x03\x12=\n\x18version_retention_period\x18\x06\x20\x01(\tR\
6325    \x16versionRetentionPeriodB\x03\xe0A\x03\x12S\n\x15earliest_version_time\
6326    \x18\x07\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\x13earliestVersion\
6327    TimeB\x03\xe0A\x03\x12*\n\x0edefault_leader\x18\t\x20\x01(\tR\rdefaultLe\
6328    aderB\x03\xe0A\x03\x12a\n\x10database_dialect\x18\n\x20\x01(\x0e21.googl\
6329    e.spanner.admin.database.v1.DatabaseDialectR\x0fdatabaseDialectB\x03\xe0\
6330    A\x03\x124\n\x16enable_drop_protection\x18\x0b\x20\x01(\x08R\x14enableDr\
6331    opProtection\x12%\n\x0breconciling\x18\x0c\x20\x01(\x08R\x0breconcilingB\
6332    \x03\xe0A\x03\"M\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\0\x12\x0c\
6333    \n\x08CREATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x14\n\x10READY_OPTIM\
6334    IZING\x10\x03:b\xeaA_\n\x1fspanner.googleapis.com/Database\x12<projects/\
6335    {project}/instances/{instance}/databases/{database}\"\x93\x01\n\x14ListD\
6336    atabasesRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06parentB'\xfaA!\n\
6337    \x1fspanner.googleapis.com/Instance\xe0A\x02\x12\x1b\n\tpage_size\x18\
6338    \x03\x20\x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x04\x20\x01(\tR\
6339    \tpageToken\"\x89\x01\n\x15ListDatabasesResponse\x12H\n\tdatabases\x18\
6340    \x01\x20\x03(\x0b2*.google.spanner.admin.database.v1.DatabaseR\tdatabase\
6341    s\x12&\n\x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPageToken\"\x81\x03\
6342    \n\x15CreateDatabaseRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06pare\
6343    ntB'\xfaA!\n\x1fspanner.googleapis.com/Instance\xe0A\x02\x12.\n\x10creat\
6344    e_statement\x18\x02\x20\x01(\tR\x0fcreateStatementB\x03\xe0A\x02\x12.\n\
6345    \x10extra_statements\x18\x03\x20\x03(\tR\x0fextraStatementsB\x03\xe0A\
6346    \x01\x12d\n\x11encryption_config\x18\x04\x20\x01(\x0b22.google.spanner.a\
6347    dmin.database.v1.EncryptionConfigR\x10encryptionConfigB\x03\xe0A\x01\x12\
6348    a\n\x10database_dialect\x18\x05\x20\x01(\x0e21.google.spanner.admin.data\
6349    base.v1.DatabaseDialectR\x0fdatabaseDialectB\x03\xe0A\x01\"Z\n\x16Create\
6350    DatabaseMetadata\x12@\n\x08database\x18\x01\x20\x01(\tR\x08databaseB$\
6351    \xfaA!\n\x1fspanner.googleapis.com/Database\"Q\n\x12GetDatabaseRequest\
6352    \x12;\n\x04name\x18\x01\x20\x01(\tR\x04nameB'\xfaA!\n\x1fspanner.googlea\
6353    pis.com/Database\xe0A\x02\"\xa6\x01\n\x15UpdateDatabaseRequest\x12K\n\
6354    \x08database\x18\x01\x20\x01(\x0b2*.google.spanner.admin.database.v1.Dat\
6355    abaseR\x08databaseB\x03\xe0A\x02\x12@\n\x0bupdate_mask\x18\x02\x20\x01(\
6356    \x0b2\x1a.google.protobuf.FieldMaskR\nupdateMaskB\x03\xe0A\x02\"\xf9\x01\
6357    \n\x16UpdateDatabaseMetadata\x12Q\n\x07request\x18\x01\x20\x01(\x0b27.go\
6358    ogle.spanner.admin.database.v1.UpdateDatabaseRequestR\x07request\x12O\n\
6359    \x08progress\x18\x02\x20\x01(\x0b23.google.spanner.admin.database.v1.Ope\
6360    rationProgressR\x08progress\x12;\n\x0bcancel_time\x18\x03\x20\x01(\x0b2\
6361    \x1a.google.protobuf.TimestampR\ncancelTime\"\xa7\x01\n\x18UpdateDatabas\
6362    eDdlRequest\x12C\n\x08database\x18\x01\x20\x01(\tR\x08databaseB'\xfaA!\n\
6363    \x1fspanner.googleapis.com/Database\xe0A\x02\x12#\n\nstatements\x18\x02\
6364    \x20\x03(\tR\nstatementsB\x03\xe0A\x02\x12!\n\x0coperation_id\x18\x03\
6365    \x20\x01(\tR\x0boperationId\"t\n\x16DdlStatementActionInfo\x12\x16\n\x06\
6366    action\x18\x01\x20\x01(\tR\x06action\x12\x1f\n\x0bentity_type\x18\x02\
6367    \x20\x01(\tR\nentityType\x12!\n\x0centity_names\x18\x03\x20\x03(\tR\x0be\
6368    ntityNames\"\x8e\x03\n\x19UpdateDatabaseDdlMetadata\x12@\n\x08database\
6369    \x18\x01\x20\x01(\tR\x08databaseB$\xfaA!\n\x1fspanner.googleapis.com/Dat\
6370    abase\x12\x1e\n\nstatements\x18\x02\x20\x03(\tR\nstatements\x12G\n\x11co\
6371    mmit_timestamps\x18\x03\x20\x03(\x0b2\x1a.google.protobuf.TimestampR\x10\
6372    commitTimestamps\x12!\n\tthrottled\x18\x04\x20\x01(\x08R\tthrottledB\x03\
6373    \xe0A\x03\x12O\n\x08progress\x18\x05\x20\x03(\x0b23.google.spanner.admin\
6374    .database.v1.OperationProgressR\x08progress\x12R\n\x07actions\x18\x06\
6375    \x20\x03(\x0b28.google.spanner.admin.database.v1.DdlStatementActionInfoR\
6376    \x07actions\"Z\n\x13DropDatabaseRequest\x12C\n\x08database\x18\x01\x20\
6377    \x01(\tR\x08databaseB'\xfaA!\n\x1fspanner.googleapis.com/Database\xe0A\
6378    \x02\"\\\n\x15GetDatabaseDdlRequest\x12C\n\x08database\x18\x01\x20\x01(\
6379    \tR\x08databaseB'\xfaA!\n\x1fspanner.googleapis.com/Database\xe0A\x02\"8\
6380    \n\x16GetDatabaseDdlResponse\x12\x1e\n\nstatements\x18\x01\x20\x03(\tR\n\
6381    statements\"\xb4\x01\n\x1dListDatabaseOperationsRequest\x12?\n\x06parent\
6382    \x18\x01\x20\x01(\tR\x06parentB'\xfaA!\n\x1fspanner.googleapis.com/Insta\
6383    nce\xe0A\x02\x12\x16\n\x06filter\x18\x02\x20\x01(\tR\x06filter\x12\x1b\n\
6384    \tpage_size\x18\x03\x20\x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\
6385    \x04\x20\x01(\tR\tpageToken\"\x87\x01\n\x1eListDatabaseOperationsRespons\
6386    e\x12=\n\noperations\x18\x01\x20\x03(\x0b2\x1d.google.longrunning.Operat\
6387    ionR\noperations\x12&\n\x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPage\
6388    Token\"\xbc\x02\n\x16RestoreDatabaseRequest\x12?\n\x06parent\x18\x01\x20\
6389    \x01(\tR\x06parentB'\xfaA!\n\x1fspanner.googleapis.com/Instance\xe0A\x02\
6390    \x12$\n\x0bdatabase_id\x18\x02\x20\x01(\tR\ndatabaseIdB\x03\xe0A\x02\x12\
6391    <\n\x06backup\x18\x03\x20\x01(\tH\0R\x06backupB\"\xfaA\x1f\n\x1dspanner.\
6392    googleapis.com/Backup\x12s\n\x11encryption_config\x18\x04\x20\x01(\x0b2A\
6393    .google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfigR\x10en\
6394    cryptionConfigB\x03\xe0A\x01B\x08\n\x06source\"\x8f\x03\n\x1fRestoreData\
6395    baseEncryptionConfig\x12~\n\x0fencryption_type\x18\x01\x20\x01(\x0e2P.go\
6396    ogle.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.Encryptio\
6397    nTypeR\x0eencryptionTypeB\x03\xe0A\x02\x12K\n\x0ckms_key_name\x18\x02\
6398    \x20\x01(\tR\nkmsKeyNameB)\xfaA#\n!cloudkms.googleapis.com/CryptoKey\xe0\
6399    A\x01\"\x9e\x01\n\x0eEncryptionType\x12\x1f\n\x1bENCRYPTION_TYPE_UNSPECI\
6400    FIED\x10\0\x12+\n'USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION\x10\x01\x12\
6401    \x1d\n\x19GOOGLE_DEFAULT_ENCRYPTION\x10\x02\x12\x1f\n\x1bCUSTOMER_MANAGE\
6402    D_ENCRYPTION\x10\x03\"\xe0\x03\n\x17RestoreDatabaseMetadata\x128\n\x04na\
6403    me\x18\x01\x20\x01(\tR\x04nameB$\xfaA!\n\x1fspanner.googleapis.com/Datab\
6404    ase\x12T\n\x0bsource_type\x18\x02\x20\x01(\x0e23.google.spanner.admin.da\
6405    tabase.v1.RestoreSourceTypeR\nsourceType\x12O\n\x0bbackup_info\x18\x03\
6406    \x20\x01(\x0b2,.google.spanner.admin.database.v1.BackupInfoH\0R\nbackupI\
6407    nfo\x12O\n\x08progress\x18\x04\x20\x01(\x0b23.google.spanner.admin.datab\
6408    ase.v1.OperationProgressR\x08progress\x12;\n\x0bcancel_time\x18\x05\x20\
6409    \x01(\x0b2\x1a.google.protobuf.TimestampR\ncancelTime\x12G\n\x20optimize\
6410    _database_operation_name\x18\x06\x20\x01(\tR\x1doptimizeDatabaseOperatio\
6411    nNameB\r\n\x0bsource_info\"\xad\x01\n\x20OptimizeRestoredDatabaseMetadat\
6412    a\x128\n\x04name\x18\x01\x20\x01(\tR\x04nameB$\xfaA!\n\x1fspanner.google\
6413    apis.com/Database\x12O\n\x08progress\x18\x02\x20\x01(\x0b23.google.spann\
6414    er.admin.database.v1.OperationProgressR\x08progress\"\xa4\x01\n\x0cDatab\
6415    aseRole\x12\x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0A\x02:{\
6416    \xeaAx\n#spanner.googleapis.com/DatabaseRole\x12Qprojects/{project}/inst\
6417    ances/{instance}/databases/{database}/databaseRoles/{role}\"\x97\x01\n\
6418    \x18ListDatabaseRolesRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06par\
6419    entB'\xfaA!\n\x1fspanner.googleapis.com/Database\xe0A\x02\x12\x1b\n\tpag\
6420    e_size\x18\x02\x20\x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03\
6421    \x20\x01(\tR\tpageToken\"\x9a\x01\n\x19ListDatabaseRolesResponse\x12U\n\
6422    \x0edatabase_roles\x18\x01\x20\x03(\x0b2..google.spanner.admin.database.\
6423    v1.DatabaseRoleR\rdatabaseRoles\x12&\n\x0fnext_page_token\x18\x02\x20\
6424    \x01(\tR\rnextPageToken*5\n\x11RestoreSourceType\x12\x14\n\x10TYPE_UNSPE\
6425    CIFIED\x10\0\x12\n\n\x06BACKUP\x10\x012\xee%\n\rDatabaseAdmin\x12\xc0\
6426    \x01\n\rListDatabases\x126.google.spanner.admin.database.v1.ListDatabase\
6427    sRequest\x1a7.google.spanner.admin.database.v1.ListDatabasesResponse\">\
6428    \x82\xd3\xe4\x93\x02/\x12-/v1/{parent=projects/*/instances/*}/databases\
6429    \xdaA\x06parent\x12\xa4\x02\n\x0eCreateDatabase\x127.google.spanner.admi\
6430    n.database.v1.CreateDatabaseRequest\x1a\x1d.google.longrunning.Operation\
6431    \"\xb9\x01\xcaAd\n)google.spanner.admin.database.v1.Database\x127google.\
6432    spanner.admin.database.v1.CreateDatabaseMetadata\x82\xd3\xe4\x93\x022\"-\
6433    /v1/{parent=projects/*/instances/*}/databases:\x01*\xdaA\x17parent,creat\
6434    e_statement\x12\xad\x01\n\x0bGetDatabase\x124.google.spanner.admin.datab\
6435    ase.v1.GetDatabaseRequest\x1a*.google.spanner.admin.database.v1.Database\
6436    \"<\x82\xd3\xe4\x93\x02/\x12-/v1/{name=projects/*/instances/*/databases/\
6437    *}\xdaA\x04name\x12\xef\x01\n\x0eUpdateDatabase\x127.google.spanner.admi\
6438    n.database.v1.UpdateDatabaseRequest\x1a\x1d.google.longrunning.Operation\
6439    \"\x84\x01\xcaA\"\n\x08Database\x12\x16UpdateDatabaseMetadata\x82\xd3\
6440    \xe4\x93\x02B26/v1/{database.name=projects/*/instances/*/databases/*}:\
6441    \x08database\xdaA\x14database,update_mask\x12\x9d\x02\n\x11UpdateDatabas\
6442    eDdl\x12:.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest\x1a\
6443    \x1d.google.longrunning.Operation\"\xac\x01\xcaAS\n\x15google.protobuf.E\
6444    mpty\x12:google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata\x82\
6445    \xd3\xe4\x93\x02:25/v1/{database=projects/*/instances/*/databases/*}/ddl\
6446    :\x01*\xdaA\x13database,statements\x12\xa3\x01\n\x0cDropDatabase\x125.go\
6447    ogle.spanner.admin.database.v1.DropDatabaseRequest\x1a\x16.google.protob\
6448    uf.Empty\"D\x82\xd3\xe4\x93\x023*1/v1/{database=projects/*/instances/*/d\
6449    atabases/*}\xdaA\x08database\x12\xcd\x01\n\x0eGetDatabaseDdl\x127.google\
6450    .spanner.admin.database.v1.GetDatabaseDdlRequest\x1a8.google.spanner.adm\
6451    in.database.v1.GetDatabaseDdlResponse\"H\x82\xd3\xe4\x93\x027\x125/v1/{d\
6452    atabase=projects/*/instances/*/databases/*}/ddl\xdaA\x08database\x12\xeb\
6453    \x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.g\
6454    oogle.iam.v1.Policy\"\x9f\x01\x82\xd3\xe4\x93\x02\x86\x01\">/v1/{resourc\
6455    e=projects/*/instances/*/databases/*}:setIamPolicy:\x01*ZA\"</v1/{resour\
6456    ce=projects/*/instances/*/backups/*}:setIamPolicy:\x01*\xdaA\x0fresource\
6457    ,policy\x12\xe4\x01\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRe\
6458    quest\x1a\x15.google.iam.v1.Policy\"\x98\x01\x82\xd3\xe4\x93\x02\x86\x01\
6459    \">/v1/{resource=projects/*/instances/*/databases/*}:getIamPolicy:\x01*Z\
6460    A\"</v1/{resource=projects/*/instances/*/backups/*}:getIamPolicy:\x01*\
6461    \xdaA\x08resource\x12\xf7\x02\n\x12TestIamPermissions\x12(.google.iam.v1\
6462    .TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\
6463    \"\x8b\x02\x82\xd3\xe4\x93\x02\xed\x01\"D/v1/{resource=projects/*/instan\
6464    ces/*/databases/*}:testIamPermissions:\x01*ZG\"B/v1/{resource=projects/*\
6465    /instances/*/backups/*}:testIamPermissions:\x01*ZY\"T/v1/{resource=proje\
6466    cts/*/instances/*/databases/*/databaseRoles/*}:testIamPermissions:\x01*\
6467    \xdaA\x14resource,permissions\x12\x9f\x02\n\x0cCreateBackup\x125.google.\
6468    spanner.admin.database.v1.CreateBackupRequest\x1a\x1d.google.longrunning\
6469    .Operation\"\xb8\x01\xcaA`\n'google.spanner.admin.database.v1.Backup\x12\
6470    5google.spanner.admin.database.v1.CreateBackupMetadata\x82\xd3\xe4\x93\
6471    \x025\"+/v1/{parent=projects/*/instances/*}/backups:\x06backup\xdaA\x17p\
6472    arent,backup,backup_id\x12\xac\x02\n\nCopyBackup\x123.google.spanner.adm\
6473    in.database.v1.CopyBackupRequest\x1a\x1d.google.longrunning.Operation\"\
6474    \xc9\x01\xcaA^\n'google.spanner.admin.database.v1.Backup\x123google.span\
6475    ner.admin.database.v1.CopyBackupMetadata\x82\xd3\xe4\x93\x025\"0/v1/{par\
6476    ent=projects/*/instances/*}/backups:copy:\x01*\xdaA*parent,backup_id,sou\
6477    rce_backup,expire_time\x12\xa5\x01\n\tGetBackup\x122.google.spanner.admi\
6478    n.database.v1.GetBackupRequest\x1a(.google.spanner.admin.database.v1.Bac\
6479    kup\":\x82\xd3\xe4\x93\x02-\x12+/v1/{name=projects/*/instances/*/backups\
6480    /*}\xdaA\x04name\x12\xc8\x01\n\x0cUpdateBackup\x125.google.spanner.admin\
6481    .database.v1.UpdateBackupRequest\x1a(.google.spanner.admin.database.v1.B\
6482    ackup\"W\x82\xd3\xe4\x93\x02<22/v1/{backup.name=projects/*/instances/*/b\
6483    ackups/*}:\x06backup\xdaA\x12backup,update_mask\x12\x99\x01\n\x0cDeleteB\
6484    ackup\x125.google.spanner.admin.database.v1.DeleteBackupRequest\x1a\x16.\
6485    google.protobuf.Empty\":\x82\xd3\xe4\x93\x02-*+/v1/{name=projects/*/inst\
6486    ances/*/backups/*}\xdaA\x04name\x12\xb8\x01\n\x0bListBackups\x124.google\
6487    .spanner.admin.database.v1.ListBackupsRequest\x1a5.google.spanner.admin.\
6488    database.v1.ListBackupsResponse\"<\x82\xd3\xe4\x93\x02-\x12+/v1/{parent=\
6489    projects/*/instances/*}/backups\xdaA\x06parent\x12\xb1\x02\n\x0fRestoreD\
6490    atabase\x128.google.spanner.admin.database.v1.RestoreDatabaseRequest\x1a\
6491    \x1d.google.longrunning.Operation\"\xc4\x01\xcaAe\n)google.spanner.admin\
6492    .database.v1.Database\x128google.spanner.admin.database.v1.RestoreDataba\
6493    seMetadata\x82\xd3\xe4\x93\x02:\"5/v1/{parent=projects/*/instances/*}/da\
6494    tabases:restore:\x01*\xdaA\x19parent,database_id,backup\x12\xe4\x01\n\
6495    \x16ListDatabaseOperations\x12?.google.spanner.admin.database.v1.ListDat\
6496    abaseOperationsRequest\x1a@.google.spanner.admin.database.v1.ListDatabas\
6497    eOperationsResponse\"G\x82\xd3\xe4\x93\x028\x126/v1/{parent=projects/*/i\
6498    nstances/*}/databaseOperations\xdaA\x06parent\x12\xdc\x01\n\x14ListBacku\
6499    pOperations\x12=.google.spanner.admin.database.v1.ListBackupOperationsRe\
6500    quest\x1a>.google.spanner.admin.database.v1.ListBackupOperationsResponse\
6501    \"E\x82\xd3\xe4\x93\x026\x124/v1/{parent=projects/*/instances/*}/backupO\
6502    perations\xdaA\x06parent\x12\xdc\x01\n\x11ListDatabaseRoles\x12:.google.\
6503    spanner.admin.database.v1.ListDatabaseRolesRequest\x1a;.google.spanner.a\
6504    dmin.database.v1.ListDatabaseRolesResponse\"N\x82\xd3\xe4\x93\x02?\x12=/\
6505    v1/{parent=projects/*/instances/*/databases/*}/databaseRoles\xdaA\x06par\
6506    ent\x1ax\xd2A\\https://www.googleapis.com/auth/cloud-platform,https://ww\
6507    w.googleapis.com/auth/spanner.admin\xcaA\x16spanner.googleapis.comB\xd8\
6508    \x02\n$com.google.spanner.admin.database.v1B\x19SpannerDatabaseAdminProt\
6509    oP\x01ZFcloud.google.com/go/spanner/admin/database/apiv1/databasepb;data\
6510    basepb\xaa\x02&Google.Cloud.Spanner.Admin.Database.V1\xca\x02&Google\\Cl\
6511    oud\\Spanner\\Admin\\Database\\V1\xea\x02+Google::Cloud::Spanner::Admin:\
6512    :Database::V1\xeaAJ\n\x1fspanner.googleapis.com/Instance\x12'projects/{p\
6513    roject}/instances/{instance}J\xaf\xc0\x02\n\x07\x12\x05\x0e\0\x92\x08\
6514    \x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202023\
6515    \x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\
6516    \x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20us\
6517    e\x20this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20Licens\
6518    e.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\
6519    \n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\
6520    \x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\
6521    \x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\x20Licen\
6522    se\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHO\
6523    UT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20\
6524    express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20sp\
6525    ecific\x20language\x20governing\x20permissions\x20and\n\x20limitations\
6526    \x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0)\n\t\n\x02\
6527    \x03\0\x12\x03\x12\0&\n\t\n\x02\x03\x01\x12\x03\x13\0!\n\t\n\x02\x03\x02\
6528    \x12\x03\x14\0)\n\t\n\x02\x03\x03\x12\x03\x15\0#\n\t\n\x02\x03\x04\x12\
6529    \x03\x16\0(\n\t\n\x02\x03\x05\x12\x03\x17\0$\n\t\n\x02\x03\x06\x12\x03\
6530    \x18\0-\n\t\n\x02\x03\x07\x12\x03\x19\0%\n\t\n\x02\x03\x08\x12\x03\x1a\0\
6531    *\n\t\n\x02\x03\t\x12\x03\x1b\0)\n\t\n\x02\x03\n\x12\x03\x1c\07\n\t\n\
6532    \x02\x03\x0b\x12\x03\x1d\07\n\x08\n\x01\x08\x12\x03\x1f\0C\n\t\n\x02\x08\
6533    %\x12\x03\x1f\0C\n\x08\n\x01\x08\x12\x03\x20\0]\n\t\n\x02\x08\x0b\x12\
6534    \x03\x20\0]\n\x08\n\x01\x08\x12\x03!\0\"\n\t\n\x02\x08\n\x12\x03!\0\"\n\
6535    \x08\n\x01\x08\x12\x03\"\0:\n\t\n\x02\x08\x08\x12\x03\"\0:\n\x08\n\x01\
6536    \x08\x12\x03#\0=\n\t\n\x02\x08\x01\x12\x03#\0=\n\x08\n\x01\x08\x12\x03$\
6537    \0E\n\t\n\x02\x08)\x12\x03$\0E\n\x08\n\x01\x08\x12\x03%\0D\n\t\n\x02\x08\
6538    -\x12\x03%\0D\n\t\n\x01\x08\x12\x04&\0)\x02\n\x0c\n\x04\x08\x9d\x08\0\
6539    \x12\x04&\0)\x02\n\xa2\x02\n\x02\x06\0\x12\x052\0\x8e\x03\x01\x1a\x94\
6540    \x02\x20Cloud\x20Spanner\x20Database\x20Admin\x20API\n\n\x20The\x20Cloud\
6541    \x20Spanner\x20Database\x20Admin\x20API\x20can\x20be\x20used\x20to:\n\
6542    \x20\x20\x20*\x20create,\x20drop,\x20and\x20list\x20databases\n\x20\x20\
6543    \x20*\x20update\x20the\x20schema\x20of\x20pre-existing\x20databases\n\
6544    \x20\x20\x20*\x20create,\x20delete\x20and\x20list\x20backups\x20for\x20a\
6545    \x20database\n\x20\x20\x20*\x20restore\x20a\x20database\x20from\x20an\
6546    \x20existing\x20backup\n\n\n\n\x03\x06\0\x01\x12\x032\x08\x15\n\n\n\x03\
6547    \x06\0\x03\x12\x033\x02>\n\x0c\n\x05\x06\0\x03\x99\x08\x12\x033\x02>\n\
6548    \x0b\n\x03\x06\0\x03\x12\x044\x0266\n\r\n\x05\x06\0\x03\x9a\x08\x12\x044\
6549    \x0266\n.\n\x04\x06\0\x02\0\x12\x049\x02>\x03\x1a\x20\x20Lists\x20Cloud\
6550    \x20Spanner\x20databases.\n\n\x0c\n\x05\x06\0\x02\0\x01\x12\x039\x06\x13\
6551    \n\x0c\n\x05\x06\0\x02\0\x02\x12\x039\x14(\n\x0c\n\x05\x06\0\x02\0\x03\
6552    \x12\x0393H\n\r\n\x05\x06\0\x02\0\x04\x12\x04:\x04<\x06\n\x11\n\t\x06\0\
6553    \x02\0\x04\xb0\xca\xbc\"\x12\x04:\x04<\x06\n\x0c\n\x05\x06\0\x02\0\x04\
6554    \x12\x03=\x044\n\x0f\n\x08\x06\0\x02\0\x04\x9b\x08\0\x12\x03=\x044\n\xc8\
6555    \x04\n\x04\x06\0\x02\x01\x12\x04H\x02R\x03\x1a\xb9\x04\x20Creates\x20a\
6556    \x20new\x20Cloud\x20Spanner\x20database\x20and\x20starts\x20to\x20prepar\
6557    e\x20it\x20for\x20serving.\n\x20The\x20returned\x20[long-running\x20oper\
6558    ation][google.longrunning.Operation]\x20will\n\x20have\x20a\x20name\x20o\
6559    f\x20the\x20format\x20`<database_name>/operations/<operation_id>`\x20and\
6560    \n\x20can\x20be\x20used\x20to\x20track\x20preparation\x20of\x20the\x20da\
6561    tabase.\x20The\n\x20[metadata][google.longrunning.Operation.metadata]\
6562    \x20field\x20type\x20is\n\x20[CreateDatabaseMetadata][google.spanner.adm\
6563    in.database.v1.CreateDatabaseMetadata].\x20The\n\x20[response][google.lo\
6564    ngrunning.Operation.response]\x20field\x20type\x20is\n\x20[Database][goo\
6565    gle.spanner.admin.database.v1.Database],\x20if\x20successful.\n\n\x0c\n\
6566    \x05\x06\0\x02\x01\x01\x12\x03H\x06\x14\n\x0c\n\x05\x06\0\x02\x01\x02\
6567    \x12\x03H\x15*\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03H5Q\n\r\n\x05\x06\0\
6568    \x02\x01\x04\x12\x04I\x04L\x06\n\x11\n\t\x06\0\x02\x01\x04\xb0\xca\xbc\"\
6569    \x12\x04I\x04L\x06\n\x0c\n\x05\x06\0\x02\x01\x04\x12\x03M\x04E\n\x0f\n\
6570    \x08\x06\0\x02\x01\x04\x9b\x08\0\x12\x03M\x04E\n\r\n\x05\x06\0\x02\x01\
6571    \x04\x12\x04N\x04Q\x06\n\x0f\n\x07\x06\0\x02\x01\x04\x99\x08\x12\x04N\
6572    \x04Q\x06\n;\n\x04\x06\0\x02\x02\x12\x04U\x02Z\x03\x1a-\x20Gets\x20the\
6573    \x20state\x20of\x20a\x20Cloud\x20Spanner\x20database.\n\n\x0c\n\x05\x06\
6574    \0\x02\x02\x01\x12\x03U\x06\x11\n\x0c\n\x05\x06\0\x02\x02\x02\x12\x03U\
6575    \x12$\n\x0c\n\x05\x06\0\x02\x02\x03\x12\x03U/7\n\r\n\x05\x06\0\x02\x02\
6576    \x04\x12\x04V\x04X\x06\n\x11\n\t\x06\0\x02\x02\x04\xb0\xca\xbc\"\x12\x04\
6577    V\x04X\x06\n\x0c\n\x05\x06\0\x02\x02\x04\x12\x03Y\x042\n\x0f\n\x08\x06\0\
6578    \x02\x02\x04\x9b\x08\0\x12\x03Y\x042\n\xa4\r\n\x04\x06\0\x02\x03\x12\x06\
6579    \x80\x01\x02\x8b\x01\x03\x1a\x93\r\x20Updates\x20a\x20Cloud\x20Spanner\
6580    \x20database.\x20The\x20returned\n\x20[long-running\x20operation][google\
6581    .longrunning.Operation]\x20can\x20be\x20used\x20to\x20track\n\x20the\x20\
6582    progress\x20of\x20updating\x20the\x20database.\x20If\x20the\x20named\x20\
6583    database\x20does\x20not\n\x20exist,\x20returns\x20`NOT_FOUND`.\n\n\x20Wh\
6584    ile\x20the\x20operation\x20is\x20pending:\n\n\x20\x20\x20*\x20The\x20dat\
6585    abase's\n\x20\x20\x20\x20\x20[reconciling][google.spanner.admin.database\
6586    .v1.Database.reconciling]\n\x20\x20\x20\x20\x20field\x20is\x20set\x20to\
6587    \x20true.\n\x20\x20\x20*\x20Cancelling\x20the\x20operation\x20is\x20best\
6588    -effort.\x20If\x20the\x20cancellation\x20succeeds,\n\x20\x20\x20\x20\x20\
6589    the\x20operation\x20metadata's\n\x20\x20\x20\x20\x20[cancel_time][google\
6590    .spanner.admin.database.v1.UpdateDatabaseMetadata.cancel_time]\n\x20\x20\
6591    \x20\x20\x20is\x20set,\x20the\x20updates\x20are\x20reverted,\x20and\x20t\
6592    he\x20operation\x20terminates\x20with\x20a\n\x20\x20\x20\x20\x20`CANCELL\
6593    ED`\x20status.\n\x20\x20\x20*\x20New\x20UpdateDatabase\x20requests\x20wi\
6594    ll\x20return\x20a\x20`FAILED_PRECONDITION`\x20error\n\x20\x20\x20\x20\
6595    \x20until\x20the\x20pending\x20operation\x20is\x20done\x20(returns\x20su\
6596    ccessfully\x20or\x20with\n\x20\x20\x20\x20\x20error).\n\x20\x20\x20*\x20\
6597    Reading\x20the\x20database\x20via\x20the\x20API\x20continues\x20to\x20gi\
6598    ve\x20the\x20pre-request\n\x20\x20\x20\x20\x20values.\n\n\x20Upon\x20com\
6599    pletion\x20of\x20the\x20returned\x20operation:\n\n\x20\x20\x20*\x20The\
6600    \x20new\x20values\x20are\x20in\x20effect\x20and\x20readable\x20via\x20th\
6601    e\x20API.\n\x20\x20\x20*\x20The\x20database's\n\x20\x20\x20\x20\x20[reco\
6602    nciling][google.spanner.admin.database.v1.Database.reconciling]\n\x20\
6603    \x20\x20\x20\x20field\x20becomes\x20false.\n\n\x20The\x20returned\x20[lo\
6604    ng-running\x20operation][google.longrunning.Operation]\x20will\n\x20have\
6605    \x20a\x20name\x20of\x20the\x20format\n\x20`projects/<project>/instances/\
6606    <instance>/databases/<database>/operations/<operation_id>`\n\x20and\x20c\
6607    an\x20be\x20used\x20to\x20track\x20the\x20database\x20modification.\x20T\
6608    he\n\x20[metadata][google.longrunning.Operation.metadata]\x20field\x20ty\
6609    pe\x20is\n\x20[UpdateDatabaseMetadata][google.spanner.admin.database.v1.\
6610    UpdateDatabaseMetadata].\n\x20The\x20[response][google.longrunning.Opera\
6611    tion.response]\x20field\x20type\x20is\n\x20[Database][google.spanner.adm\
6612    in.database.v1.Database],\x20if\x20successful.\n\n\r\n\x05\x06\0\x02\x03\
6613    \x01\x12\x04\x80\x01\x06\x14\n\r\n\x05\x06\0\x02\x03\x02\x12\x04\x80\x01\
6614    \x15*\n\r\n\x05\x06\0\x02\x03\x03\x12\x04\x81\x01\x0f+\n\x0f\n\x05\x06\0\
6615    \x02\x03\x04\x12\x06\x82\x01\x04\x85\x01\x06\n\x13\n\t\x06\0\x02\x03\x04\
6616    \xb0\xca\xbc\"\x12\x06\x82\x01\x04\x85\x01\x06\n\r\n\x05\x06\0\x02\x03\
6617    \x04\x12\x04\x86\x01\x04B\n\x10\n\x08\x06\0\x02\x03\x04\x9b\x08\0\x12\
6618    \x04\x86\x01\x04B\n\x0f\n\x05\x06\0\x02\x03\x04\x12\x06\x87\x01\x04\x8a\
6619    \x01\x06\n\x11\n\x07\x06\0\x02\x03\x04\x99\x08\x12\x06\x87\x01\x04\x8a\
6620    \x01\x06\n\x8c\x04\n\x04\x06\0\x02\x04\x12\x06\x94\x01\x02\x9e\x01\x03\
6621    \x1a\xfb\x03\x20Updates\x20the\x20schema\x20of\x20a\x20Cloud\x20Spanner\
6622    \x20database\x20by\n\x20creating/altering/dropping\x20tables,\x20columns\
6623    ,\x20indexes,\x20etc.\x20The\x20returned\n\x20[long-running\x20operation\
6624    ][google.longrunning.Operation]\x20will\x20have\x20a\x20name\x20of\n\x20\
6625    the\x20format\x20`<database_name>/operations/<operation_id>`\x20and\x20c\
6626    an\x20be\x20used\x20to\n\x20track\x20execution\x20of\x20the\x20schema\
6627    \x20change(s).\x20The\n\x20[metadata][google.longrunning.Operation.metad\
6628    ata]\x20field\x20type\x20is\n\x20[UpdateDatabaseDdlMetadata][google.span\
6629    ner.admin.database.v1.UpdateDatabaseDdlMetadata].\x20\x20The\x20operatio\
6630    n\x20has\x20no\x20response.\n\n\r\n\x05\x06\0\x02\x04\x01\x12\x04\x94\
6631    \x01\x06\x17\n\r\n\x05\x06\0\x02\x04\x02\x12\x04\x94\x01\x180\n\r\n\x05\
6632    \x06\0\x02\x04\x03\x12\x04\x94\x01;W\n\x0f\n\x05\x06\0\x02\x04\x04\x12\
6633    \x06\x95\x01\x04\x98\x01\x06\n\x13\n\t\x06\0\x02\x04\x04\xb0\xca\xbc\"\
6634    \x12\x06\x95\x01\x04\x98\x01\x06\n\r\n\x05\x06\0\x02\x04\x04\x12\x04\x99\
6635    \x01\x04A\n\x10\n\x08\x06\0\x02\x04\x04\x9b\x08\0\x12\x04\x99\x01\x04A\n\
6636    \x0f\n\x05\x06\0\x02\x04\x04\x12\x06\x9a\x01\x04\x9d\x01\x06\n\x11\n\x07\
6637    \x06\0\x02\x04\x04\x99\x08\x12\x06\x9a\x01\x04\x9d\x01\x06\n\x87\x02\n\
6638    \x04\x06\0\x02\x05\x12\x06\xa5\x01\x02\xaa\x01\x03\x1a\xf6\x01\x20Drops\
6639    \x20(aka\x20deletes)\x20a\x20Cloud\x20Spanner\x20database.\n\x20Complete\
6640    d\x20backups\x20for\x20the\x20database\x20will\x20be\x20retained\x20acco\
6641    rding\x20to\x20their\n\x20`expire_time`.\n\x20Note:\x20Cloud\x20Spanner\
6642    \x20might\x20continue\x20to\x20accept\x20requests\x20for\x20a\x20few\x20\
6643    seconds\n\x20after\x20the\x20database\x20has\x20been\x20deleted.\n\n\r\n\
6644    \x05\x06\0\x02\x05\x01\x12\x04\xa5\x01\x06\x12\n\r\n\x05\x06\0\x02\x05\
6645    \x02\x12\x04\xa5\x01\x13&\n\r\n\x05\x06\0\x02\x05\x03\x12\x04\xa5\x011F\
6646    \n\x0f\n\x05\x06\0\x02\x05\x04\x12\x06\xa6\x01\x04\xa8\x01\x06\n\x13\n\t\
6647    \x06\0\x02\x05\x04\xb0\xca\xbc\"\x12\x06\xa6\x01\x04\xa8\x01\x06\n\r\n\
6648    \x05\x06\0\x02\x05\x04\x12\x04\xa9\x01\x046\n\x10\n\x08\x06\0\x02\x05\
6649    \x04\x9b\x08\0\x12\x04\xa9\x01\x046\n\xec\x01\n\x04\x06\0\x02\x06\x12\
6650    \x06\xaf\x01\x02\xb4\x01\x03\x1a\xdb\x01\x20Returns\x20the\x20schema\x20\
6651    of\x20a\x20Cloud\x20Spanner\x20database\x20as\x20a\x20list\x20of\x20form\
6652    atted\n\x20DDL\x20statements.\x20This\x20method\x20does\x20not\x20show\
6653    \x20pending\x20schema\x20updates,\x20those\x20may\n\x20be\x20queried\x20\
6654    using\x20the\x20[Operations][google.longrunning.Operations]\x20API.\n\n\
6655    \r\n\x05\x06\0\x02\x06\x01\x12\x04\xaf\x01\x06\x14\n\r\n\x05\x06\0\x02\
6656    \x06\x02\x12\x04\xaf\x01\x15*\n\r\n\x05\x06\0\x02\x06\x03\x12\x04\xaf\
6657    \x015K\n\x0f\n\x05\x06\0\x02\x06\x04\x12\x06\xb0\x01\x04\xb2\x01\x06\n\
6658    \x13\n\t\x06\0\x02\x06\x04\xb0\xca\xbc\"\x12\x06\xb0\x01\x04\xb2\x01\x06\
6659    \n\r\n\x05\x06\0\x02\x06\x04\x12\x04\xb3\x01\x046\n\x10\n\x08\x06\0\x02\
6660    \x06\x04\x9b\x08\0\x12\x04\xb3\x01\x046\n\xfe\x02\n\x04\x06\0\x02\x07\
6661    \x12\x06\xbd\x01\x02\xc7\x01\x03\x1a\xed\x02\x20Sets\x20the\x20access\
6662    \x20control\x20policy\x20on\x20a\x20database\x20or\x20backup\x20resource\
6663    .\n\x20Replaces\x20any\x20existing\x20policy.\n\n\x20Authorization\x20re\
6664    quires\x20`spanner.databases.setIamPolicy`\n\x20permission\x20on\x20[res\
6665    ource][google.iam.v1.SetIamPolicyRequest.resource].\n\x20For\x20backups,\
6666    \x20authorization\x20requires\x20`spanner.backups.setIamPolicy`\n\x20per\
6667    mission\x20on\x20[resource][google.iam.v1.SetIamPolicyRequest.resource].\
6668    \n\n\r\n\x05\x06\0\x02\x07\x01\x12\x04\xbd\x01\x06\x12\n\r\n\x05\x06\0\
6669    \x02\x07\x02\x12\x04\xbd\x01\x134\n\r\n\x05\x06\0\x02\x07\x03\x12\x04\
6670    \xbd\x01?S\n\x0f\n\x05\x06\0\x02\x07\x04\x12\x06\xbe\x01\x04\xc5\x01\x06\
6671    \n\x13\n\t\x06\0\x02\x07\x04\xb0\xca\xbc\"\x12\x06\xbe\x01\x04\xc5\x01\
6672    \x06\n\r\n\x05\x06\0\x02\x07\x04\x12\x04\xc6\x01\x04=\n\x10\n\x08\x06\0\
6673    \x02\x07\x04\x9b\x08\0\x12\x04\xc6\x01\x04=\n\xb9\x03\n\x04\x06\0\x02\
6674    \x08\x12\x06\xd1\x01\x02\xdb\x01\x03\x1a\xa8\x03\x20Gets\x20the\x20acces\
6675    s\x20control\x20policy\x20for\x20a\x20database\x20or\x20backup\x20resour\
6676    ce.\n\x20Returns\x20an\x20empty\x20policy\x20if\x20a\x20database\x20or\
6677    \x20backup\x20exists\x20but\x20does\x20not\x20have\x20a\n\x20policy\x20s\
6678    et.\n\n\x20Authorization\x20requires\x20`spanner.databases.getIamPolicy`\
6679    \x20permission\x20on\n\x20[resource][google.iam.v1.GetIamPolicyRequest.r\
6680    esource].\n\x20For\x20backups,\x20authorization\x20requires\x20`spanner.\
6681    backups.getIamPolicy`\n\x20permission\x20on\x20[resource][google.iam.v1.\
6682    GetIamPolicyRequest.resource].\n\n\r\n\x05\x06\0\x02\x08\x01\x12\x04\xd1\
6683    \x01\x06\x12\n\r\n\x05\x06\0\x02\x08\x02\x12\x04\xd1\x01\x134\n\r\n\x05\
6684    \x06\0\x02\x08\x03\x12\x04\xd1\x01?S\n\x0f\n\x05\x06\0\x02\x08\x04\x12\
6685    \x06\xd2\x01\x04\xd9\x01\x06\n\x13\n\t\x06\0\x02\x08\x04\xb0\xca\xbc\"\
6686    \x12\x06\xd2\x01\x04\xd9\x01\x06\n\r\n\x05\x06\0\x02\x08\x04\x12\x04\xda\
6687    \x01\x046\n\x10\n\x08\x06\0\x02\x08\x04\x9b\x08\0\x12\x04\xda\x01\x046\n\
6688    \xff\x03\n\x04\x06\0\x02\t\x12\x06\xe7\x01\x02\xf5\x01\x03\x1a\xee\x03\
6689    \x20Returns\x20permissions\x20that\x20the\x20caller\x20has\x20on\x20the\
6690    \x20specified\x20database\x20or\x20backup\n\x20resource.\n\n\x20Attempti\
6691    ng\x20this\x20RPC\x20on\x20a\x20non-existent\x20Cloud\x20Spanner\x20data\
6692    base\x20will\n\x20result\x20in\x20a\x20NOT_FOUND\x20error\x20if\x20the\
6693    \x20user\x20has\n\x20`spanner.databases.list`\x20permission\x20on\x20the\
6694    \x20containing\x20Cloud\n\x20Spanner\x20instance.\x20Otherwise\x20return\
6695    s\x20an\x20empty\x20set\x20of\x20permissions.\n\x20Calling\x20this\x20me\
6696    thod\x20on\x20a\x20backup\x20that\x20does\x20not\x20exist\x20will\n\x20r\
6697    esult\x20in\x20a\x20NOT_FOUND\x20error\x20if\x20the\x20user\x20has\n\x20\
6698    `spanner.backups.list`\x20permission\x20on\x20the\x20containing\x20insta\
6699    nce.\n\n\r\n\x05\x06\0\x02\t\x01\x12\x04\xe7\x01\x06\x18\n\r\n\x05\x06\0\
6700    \x02\t\x02\x12\x04\xe7\x01\x19@\n\r\n\x05\x06\0\x02\t\x03\x12\x04\xe7\
6701    \x01Ks\n\x0f\n\x05\x06\0\x02\t\x04\x12\x06\xe8\x01\x04\xf3\x01\x06\n\x13\
6702    \n\t\x06\0\x02\t\x04\xb0\xca\xbc\"\x12\x06\xe8\x01\x04\xf3\x01\x06\n\r\n\
6703    \x05\x06\0\x02\t\x04\x12\x04\xf4\x01\x04B\n\x10\n\x08\x06\0\x02\t\x04\
6704    \x9b\x08\0\x12\x04\xf4\x01\x04B\n\x9b\x06\n\x04\x06\0\x02\n\x12\x06\x83\
6705    \x02\x02\x8d\x02\x03\x1a\x8a\x06\x20Starts\x20creating\x20a\x20new\x20Cl\
6706    oud\x20Spanner\x20Backup.\n\x20The\x20returned\x20backup\x20[long-runnin\
6707    g\x20operation][google.longrunning.Operation]\n\x20will\x20have\x20a\x20\
6708    name\x20of\x20the\x20format\n\x20`projects/<project>/instances/<instance\
6709    >/backups/<backup>/operations/<operation_id>`\n\x20and\x20can\x20be\x20u\
6710    sed\x20to\x20track\x20creation\x20of\x20the\x20backup.\x20The\n\x20[meta\
6711    data][google.longrunning.Operation.metadata]\x20field\x20type\x20is\n\
6712    \x20[CreateBackupMetadata][google.spanner.admin.database.v1.CreateBackup\
6713    Metadata].\x20The\n\x20[response][google.longrunning.Operation.response]\
6714    \x20field\x20type\x20is\n\x20[Backup][google.spanner.admin.database.v1.B\
6715    ackup],\x20if\x20successful.\x20Cancelling\x20the\x20returned\x20operati\
6716    on\x20will\x20stop\x20the\n\x20creation\x20and\x20delete\x20the\x20backu\
6717    p.\n\x20There\x20can\x20be\x20only\x20one\x20pending\x20backup\x20creati\
6718    on\x20per\x20database.\x20Backup\x20creation\n\x20of\x20different\x20dat\
6719    abases\x20can\x20run\x20concurrently.\n\n\r\n\x05\x06\0\x02\n\x01\x12\
6720    \x04\x83\x02\x06\x12\n\r\n\x05\x06\0\x02\n\x02\x12\x04\x83\x02\x13&\n\r\
6721    \n\x05\x06\0\x02\n\x03\x12\x04\x83\x021M\n\x0f\n\x05\x06\0\x02\n\x04\x12\
6722    \x06\x84\x02\x04\x87\x02\x06\n\x13\n\t\x06\0\x02\n\x04\xb0\xca\xbc\"\x12\
6723    \x06\x84\x02\x04\x87\x02\x06\n\r\n\x05\x06\0\x02\n\x04\x12\x04\x88\x02\
6724    \x04E\n\x10\n\x08\x06\0\x02\n\x04\x9b\x08\0\x12\x04\x88\x02\x04E\n\x0f\n\
6725    \x05\x06\0\x02\n\x04\x12\x06\x89\x02\x04\x8c\x02\x06\n\x11\n\x07\x06\0\
6726    \x02\n\x04\x99\x08\x12\x06\x89\x02\x04\x8c\x02\x06\n\x92\x06\n\x04\x06\0\
6727    \x02\x0b\x12\x06\x9b\x02\x02\xa5\x02\x03\x1a\x81\x06\x20Starts\x20copyin\
6728    g\x20a\x20Cloud\x20Spanner\x20Backup.\n\x20The\x20returned\x20backup\x20\
6729    [long-running\x20operation][google.longrunning.Operation]\n\x20will\x20h\
6730    ave\x20a\x20name\x20of\x20the\x20format\n\x20`projects/<project>/instanc\
6731    es/<instance>/backups/<backup>/operations/<operation_id>`\n\x20and\x20ca\
6732    n\x20be\x20used\x20to\x20track\x20copying\x20of\x20the\x20backup.\x20The\
6733    \x20operation\x20is\x20associated\n\x20with\x20the\x20destination\x20bac\
6734    kup.\n\x20The\x20[metadata][google.longrunning.Operation.metadata]\x20fi\
6735    eld\x20type\x20is\n\x20[CopyBackupMetadata][google.spanner.admin.databas\
6736    e.v1.CopyBackupMetadata].\n\x20The\x20[response][google.longrunning.Oper\
6737    ation.response]\x20field\x20type\x20is\n\x20[Backup][google.spanner.admi\
6738    n.database.v1.Backup],\x20if\x20successful.\x20Cancelling\x20the\x20retu\
6739    rned\x20operation\x20will\x20stop\x20the\n\x20copying\x20and\x20delete\
6740    \x20the\x20backup.\n\x20Concurrent\x20CopyBackup\x20requests\x20can\x20r\
6741    un\x20on\x20the\x20same\x20source\x20backup.\n\n\r\n\x05\x06\0\x02\x0b\
6742    \x01\x12\x04\x9b\x02\x06\x10\n\r\n\x05\x06\0\x02\x0b\x02\x12\x04\x9b\x02\
6743    \x11\"\n\r\n\x05\x06\0\x02\x0b\x03\x12\x04\x9b\x02-I\n\x0f\n\x05\x06\0\
6744    \x02\x0b\x04\x12\x06\x9c\x02\x04\x9f\x02\x06\n\x13\n\t\x06\0\x02\x0b\x04\
6745    \xb0\xca\xbc\"\x12\x06\x9c\x02\x04\x9f\x02\x06\n\r\n\x05\x06\0\x02\x0b\
6746    \x04\x12\x04\xa0\x02\x04X\n\x10\n\x08\x06\0\x02\x0b\x04\x9b\x08\0\x12\
6747    \x04\xa0\x02\x04X\n\x0f\n\x05\x06\0\x02\x0b\x04\x12\x06\xa1\x02\x04\xa4\
6748    \x02\x06\n\x11\n\x07\x06\0\x02\x0b\x04\x99\x08\x12\x06\xa1\x02\x04\xa4\
6749    \x02\x06\nl\n\x04\x06\0\x02\x0c\x12\x06\xa8\x02\x02\xad\x02\x03\x1a\\\
6750    \x20Gets\x20metadata\x20on\x20a\x20pending\x20or\x20completed\x20[Backup\
6751    ][google.spanner.admin.database.v1.Backup].\n\n\r\n\x05\x06\0\x02\x0c\
6752    \x01\x12\x04\xa8\x02\x06\x0f\n\r\n\x05\x06\0\x02\x0c\x02\x12\x04\xa8\x02\
6753    \x10\x20\n\r\n\x05\x06\0\x02\x0c\x03\x12\x04\xa8\x02+1\n\x0f\n\x05\x06\0\
6754    \x02\x0c\x04\x12\x06\xa9\x02\x04\xab\x02\x06\n\x13\n\t\x06\0\x02\x0c\x04\
6755    \xb0\xca\xbc\"\x12\x06\xa9\x02\x04\xab\x02\x06\n\r\n\x05\x06\0\x02\x0c\
6756    \x04\x12\x04\xac\x02\x042\n\x10\n\x08\x06\0\x02\x0c\x04\x9b\x08\0\x12\
6757    \x04\xac\x02\x042\nc\n\x04\x06\0\x02\r\x12\x06\xb0\x02\x02\xb6\x02\x03\
6758    \x1aS\x20Updates\x20a\x20pending\x20or\x20completed\x20[Backup][google.s\
6759    panner.admin.database.v1.Backup].\n\n\r\n\x05\x06\0\x02\r\x01\x12\x04\
6760    \xb0\x02\x06\x12\n\r\n\x05\x06\0\x02\r\x02\x12\x04\xb0\x02\x13&\n\r\n\
6761    \x05\x06\0\x02\r\x03\x12\x04\xb0\x0217\n\x0f\n\x05\x06\0\x02\r\x04\x12\
6762    \x06\xb1\x02\x04\xb4\x02\x06\n\x13\n\t\x06\0\x02\r\x04\xb0\xca\xbc\"\x12\
6763    \x06\xb1\x02\x04\xb4\x02\x06\n\r\n\x05\x06\0\x02\r\x04\x12\x04\xb5\x02\
6764    \x04@\n\x10\n\x08\x06\0\x02\r\x04\x9b\x08\0\x12\x04\xb5\x02\x04@\nc\n\
6765    \x04\x06\0\x02\x0e\x12\x06\xb9\x02\x02\xbe\x02\x03\x1aS\x20Deletes\x20a\
6766    \x20pending\x20or\x20completed\x20[Backup][google.spanner.admin.database\
6767    .v1.Backup].\n\n\r\n\x05\x06\0\x02\x0e\x01\x12\x04\xb9\x02\x06\x12\n\r\n\
6768    \x05\x06\0\x02\x0e\x02\x12\x04\xb9\x02\x13&\n\r\n\x05\x06\0\x02\x0e\x03\
6769    \x12\x04\xb9\x021F\n\x0f\n\x05\x06\0\x02\x0e\x04\x12\x06\xba\x02\x04\xbc\
6770    \x02\x06\n\x13\n\t\x06\0\x02\x0e\x04\xb0\xca\xbc\"\x12\x06\xba\x02\x04\
6771    \xbc\x02\x06\n\r\n\x05\x06\0\x02\x0e\x04\x12\x04\xbd\x02\x042\n\x10\n\
6772    \x08\x06\0\x02\x0e\x04\x9b\x08\0\x12\x04\xbd\x02\x042\n\xa9\x01\n\x04\
6773    \x06\0\x02\x0f\x12\x06\xc3\x02\x02\xc8\x02\x03\x1a\x98\x01\x20Lists\x20c\
6774    ompleted\x20and\x20pending\x20backups.\n\x20Backups\x20returned\x20are\
6775    \x20ordered\x20by\x20`create_time`\x20in\x20descending\x20order,\n\x20st\
6776    arting\x20from\x20the\x20most\x20recent\x20`create_time`.\n\n\r\n\x05\
6777    \x06\0\x02\x0f\x01\x12\x04\xc3\x02\x06\x11\n\r\n\x05\x06\0\x02\x0f\x02\
6778    \x12\x04\xc3\x02\x12$\n\r\n\x05\x06\0\x02\x0f\x03\x12\x04\xc3\x02/B\n\
6779    \x0f\n\x05\x06\0\x02\x0f\x04\x12\x06\xc4\x02\x04\xc6\x02\x06\n\x13\n\t\
6780    \x06\0\x02\x0f\x04\xb0\xca\xbc\"\x12\x06\xc4\x02\x04\xc6\x02\x06\n\r\n\
6781    \x05\x06\0\x02\x0f\x04\x12\x04\xc7\x02\x044\n\x10\n\x08\x06\0\x02\x0f\
6782    \x04\x9b\x08\0\x12\x04\xc7\x02\x044\n\xd6\x08\n\x04\x06\0\x02\x10\x12\
6783    \x06\xdb\x02\x02\xe5\x02\x03\x1a\xc5\x08\x20Create\x20a\x20new\x20databa\
6784    se\x20by\x20restoring\x20from\x20a\x20completed\x20backup.\x20The\x20new\
6785    \n\x20database\x20must\x20be\x20in\x20the\x20same\x20project\x20and\x20i\
6786    n\x20an\x20instance\x20with\x20the\x20same\n\x20instance\x20configuratio\
6787    n\x20as\x20the\x20instance\x20containing\n\x20the\x20backup.\x20The\x20r\
6788    eturned\x20database\x20[long-running\n\x20operation][google.longrunning.\
6789    Operation]\x20has\x20a\x20name\x20of\x20the\x20format\n\x20`projects/<pr\
6790    oject>/instances/<instance>/databases/<database>/operations/<operation_i\
6791    d>`,\n\x20and\x20can\x20be\x20used\x20to\x20track\x20the\x20progress\x20\
6792    of\x20the\x20operation,\x20and\x20to\x20cancel\x20it.\n\x20The\x20[metad\
6793    ata][google.longrunning.Operation.metadata]\x20field\x20type\x20is\n\x20\
6794    [RestoreDatabaseMetadata][google.spanner.admin.database.v1.RestoreDataba\
6795    seMetadata].\n\x20The\x20[response][google.longrunning.Operation.respons\
6796    e]\x20type\n\x20is\x20[Database][google.spanner.admin.database.v1.Databa\
6797    se],\x20if\n\x20successful.\x20Cancelling\x20the\x20returned\x20operatio\
6798    n\x20will\x20stop\x20the\x20restore\x20and\n\x20delete\x20the\x20databas\
6799    e.\n\x20There\x20can\x20be\x20only\x20one\x20database\x20being\x20restor\
6800    ed\x20into\x20an\x20instance\x20at\x20a\x20time.\n\x20Once\x20the\x20res\
6801    tore\x20operation\x20completes,\x20a\x20new\x20restore\x20operation\x20c\
6802    an\x20be\n\x20initiated,\x20without\x20waiting\x20for\x20the\x20optimize\
6803    \x20operation\x20associated\x20with\x20the\n\x20first\x20restore\x20to\
6804    \x20complete.\n\n\r\n\x05\x06\0\x02\x10\x01\x12\x04\xdb\x02\x06\x15\n\r\
6805    \n\x05\x06\0\x02\x10\x02\x12\x04\xdb\x02\x16,\n\r\n\x05\x06\0\x02\x10\
6806    \x03\x12\x04\xdb\x027S\n\x0f\n\x05\x06\0\x02\x10\x04\x12\x06\xdc\x02\x04\
6807    \xdf\x02\x06\n\x13\n\t\x06\0\x02\x10\x04\xb0\xca\xbc\"\x12\x06\xdc\x02\
6808    \x04\xdf\x02\x06\n\r\n\x05\x06\0\x02\x10\x04\x12\x04\xe0\x02\x04G\n\x10\
6809    \n\x08\x06\0\x02\x10\x04\x9b\x08\0\x12\x04\xe0\x02\x04G\n\x0f\n\x05\x06\
6810    \0\x02\x10\x04\x12\x06\xe1\x02\x04\xe4\x02\x06\n\x11\n\x07\x06\0\x02\x10\
6811    \x04\x99\x08\x12\x06\xe1\x02\x04\xe4\x02\x06\n\xe9\x03\n\x04\x06\0\x02\
6812    \x11\x12\x06\xef\x02\x02\xf4\x02\x03\x1a\xd8\x03\x20Lists\x20database\
6813    \x20[longrunning-operations][google.longrunning.Operation].\n\x20A\x20da\
6814    tabase\x20operation\x20has\x20a\x20name\x20of\x20the\x20form\n\x20`proje\
6815    cts/<project>/instances/<instance>/databases/<database>/operations/<oper\
6816    ation>`.\n\x20The\x20long-running\x20operation\n\x20[metadata][google.lo\
6817    ngrunning.Operation.metadata]\x20field\x20type\n\x20`metadata.type_url`\
6818    \x20describes\x20the\x20type\x20of\x20the\x20metadata.\x20Operations\x20\
6819    returned\n\x20include\x20those\x20that\x20have\x20completed/failed/cance\
6820    led\x20within\x20the\x20last\x207\x20days,\n\x20and\x20pending\x20operat\
6821    ions.\n\n\r\n\x05\x06\0\x02\x11\x01\x12\x04\xef\x02\x06\x1c\n\r\n\x05\
6822    \x06\0\x02\x11\x02\x12\x04\xef\x02\x1d:\n\r\n\x05\x06\0\x02\x11\x03\x12\
6823    \x04\xef\x02Ec\n\x0f\n\x05\x06\0\x02\x11\x04\x12\x06\xf0\x02\x04\xf2\x02\
6824    \x06\n\x13\n\t\x06\0\x02\x11\x04\xb0\xca\xbc\"\x12\x06\xf0\x02\x04\xf2\
6825    \x02\x06\n\r\n\x05\x06\0\x02\x11\x04\x12\x04\xf3\x02\x044\n\x10\n\x08\
6826    \x06\0\x02\x11\x04\x9b\x08\0\x12\x04\xf3\x02\x044\n\x97\x05\n\x04\x06\0\
6827    \x02\x12\x12\x06\x80\x03\x02\x85\x03\x03\x1a\x86\x05\x20Lists\x20the\x20\
6828    backup\x20[long-running\x20operations][google.longrunning.Operation]\x20\
6829    in\n\x20the\x20given\x20instance.\x20A\x20backup\x20operation\x20has\x20\
6830    a\x20name\x20of\x20the\x20form\n\x20`projects/<project>/instances/<insta\
6831    nce>/backups/<backup>/operations/<operation>`.\n\x20The\x20long-running\
6832    \x20operation\n\x20[metadata][google.longrunning.Operation.metadata]\x20\
6833    field\x20type\n\x20`metadata.type_url`\x20describes\x20the\x20type\x20of\
6834    \x20the\x20metadata.\x20Operations\x20returned\n\x20include\x20those\x20\
6835    that\x20have\x20completed/failed/canceled\x20within\x20the\x20last\x207\
6836    \x20days,\n\x20and\x20pending\x20operations.\x20Operations\x20returned\
6837    \x20are\x20ordered\x20by\n\x20`operation.metadata.value.progress.start_t\
6838    ime`\x20in\x20descending\x20order\x20starting\n\x20from\x20the\x20most\
6839    \x20recently\x20started\x20operation.\n\n\r\n\x05\x06\0\x02\x12\x01\x12\
6840    \x04\x80\x03\x06\x1a\n\r\n\x05\x06\0\x02\x12\x02\x12\x04\x80\x03\x1b6\n\
6841    \r\n\x05\x06\0\x02\x12\x03\x12\x04\x80\x03A]\n\x0f\n\x05\x06\0\x02\x12\
6842    \x04\x12\x06\x81\x03\x04\x83\x03\x06\n\x13\n\t\x06\0\x02\x12\x04\xb0\xca\
6843    \xbc\"\x12\x06\x81\x03\x04\x83\x03\x06\n\r\n\x05\x06\0\x02\x12\x04\x12\
6844    \x04\x84\x03\x044\n\x10\n\x08\x06\0\x02\x12\x04\x9b\x08\0\x12\x04\x84\
6845    \x03\x044\n5\n\x04\x06\0\x02\x13\x12\x06\x88\x03\x02\x8d\x03\x03\x1a%\
6846    \x20Lists\x20Cloud\x20Spanner\x20database\x20roles.\n\n\r\n\x05\x06\0\
6847    \x02\x13\x01\x12\x04\x88\x03\x06\x17\n\r\n\x05\x06\0\x02\x13\x02\x12\x04\
6848    \x88\x03\x180\n\r\n\x05\x06\0\x02\x13\x03\x12\x04\x88\x03;T\n\x0f\n\x05\
6849    \x06\0\x02\x13\x04\x12\x06\x89\x03\x04\x8b\x03\x06\n\x13\n\t\x06\0\x02\
6850    \x13\x04\xb0\xca\xbc\"\x12\x06\x89\x03\x04\x8b\x03\x06\n\r\n\x05\x06\0\
6851    \x02\x13\x04\x12\x04\x8c\x03\x044\n\x10\n\x08\x06\0\x02\x13\x04\x9b\x08\
6852    \0\x12\x04\x8c\x03\x044\n7\n\x02\x04\0\x12\x06\x91\x03\0\x9b\x03\x01\x1a\
6853    )\x20Information\x20about\x20the\x20database\x20restore.\n\n\x0b\n\x03\
6854    \x04\0\x01\x12\x04\x91\x03\x08\x13\n/\n\x04\x04\0\x02\0\x12\x04\x93\x03\
6855    \x02$\x1a!\x20The\x20type\x20of\x20the\x20restore\x20source.\n\n\r\n\x05\
6856    \x04\0\x02\0\x06\x12\x04\x93\x03\x02\x13\n\r\n\x05\x04\0\x02\0\x01\x12\
6857    \x04\x93\x03\x14\x1f\n\r\n\x05\x04\0\x02\0\x03\x12\x04\x93\x03\"#\nL\n\
6858    \x04\x04\0\x08\0\x12\x06\x96\x03\x02\x9a\x03\x03\x1a<\x20Information\x20\
6859    about\x20the\x20source\x20used\x20to\x20restore\x20the\x20database.\n\n\
6860    \r\n\x05\x04\0\x08\0\x01\x12\x04\x96\x03\x08\x13\nk\n\x04\x04\0\x02\x01\
6861    \x12\x04\x99\x03\x04\x1f\x1a]\x20Information\x20about\x20the\x20backup\
6862    \x20used\x20to\x20restore\x20the\x20database.\x20The\x20backup\n\x20may\
6863    \x20no\x20longer\x20exist.\n\n\r\n\x05\x04\0\x02\x01\x06\x12\x04\x99\x03\
6864    \x04\x0e\n\r\n\x05\x04\0\x02\x01\x01\x12\x04\x99\x03\x0f\x1a\n\r\n\x05\
6865    \x04\0\x02\x01\x03\x12\x04\x99\x03\x1d\x1e\n)\n\x02\x04\x01\x12\x06\x9e\
6866    \x03\0\xfd\x03\x01\x1a\x1b\x20A\x20Cloud\x20Spanner\x20database.\n\n\x0b\
6867    \n\x03\x04\x01\x01\x12\x04\x9e\x03\x08\x10\n\r\n\x03\x04\x01\x07\x12\x06\
6868    \x9f\x03\x02\xa2\x03\x04\n\x0f\n\x05\x04\x01\x07\x9d\x08\x12\x06\x9f\x03\
6869    \x02\xa2\x03\x04\n>\n\x04\x04\x01\x04\0\x12\x06\xa5\x03\x02\xb9\x03\x03\
6870    \x1a.\x20Indicates\x20the\x20current\x20state\x20of\x20the\x20database.\
6871    \n\n\r\n\x05\x04\x01\x04\0\x01\x12\x04\xa5\x03\x07\x0c\n\x20\n\x06\x04\
6872    \x01\x04\0\x02\0\x12\x04\xa7\x03\x04\x1a\x1a\x10\x20Not\x20specified.\n\
6873    \n\x0f\n\x07\x04\x01\x04\0\x02\0\x01\x12\x04\xa7\x03\x04\x15\n\x0f\n\x07\
6874    \x04\x01\x04\0\x02\0\x02\x12\x04\xa7\x03\x18\x19\n\x85\x01\n\x06\x04\x01\
6875    \x04\0\x02\x01\x12\x04\xab\x03\x04\x11\x1au\x20The\x20database\x20is\x20\
6876    still\x20being\x20created.\x20Operations\x20on\x20the\x20database\x20may\
6877    \x20fail\n\x20with\x20`FAILED_PRECONDITION`\x20in\x20this\x20state.\n\n\
6878    \x0f\n\x07\x04\x01\x04\0\x02\x01\x01\x12\x04\xab\x03\x04\x0c\n\x0f\n\x07\
6879    \x04\x01\x04\0\x02\x01\x02\x12\x04\xab\x03\x0f\x10\nB\n\x06\x04\x01\x04\
6880    \0\x02\x02\x12\x04\xae\x03\x04\x0e\x1a2\x20The\x20database\x20is\x20full\
6881    y\x20created\x20and\x20ready\x20for\x20use.\n\n\x0f\n\x07\x04\x01\x04\0\
6882    \x02\x02\x01\x12\x04\xae\x03\x04\t\n\x0f\n\x07\x04\x01\x04\0\x02\x02\x02\
6883    \x12\x04\xae\x03\x0c\r\n\x96\x03\n\x06\x04\x01\x04\0\x02\x03\x12\x04\xb8\
6884    \x03\x04\x19\x1a\x85\x03\x20The\x20database\x20is\x20fully\x20created\
6885    \x20and\x20ready\x20for\x20use,\x20but\x20is\x20still\n\x20being\x20opti\
6886    mized\x20for\x20performance\x20and\x20cannot\x20handle\x20full\x20load.\
6887    \n\n\x20In\x20this\x20state,\x20the\x20database\x20still\x20references\
6888    \x20the\x20backup\n\x20it\x20was\x20restore\x20from,\x20preventing\x20th\
6889    e\x20backup\n\x20from\x20being\x20deleted.\x20When\x20optimizations\x20a\
6890    re\x20complete,\x20the\x20full\x20performance\n\x20of\x20the\x20database\
6891    \x20will\x20be\x20restored,\x20and\x20the\x20database\x20will\x20transit\
6892    ion\x20to\n\x20`READY`\x20state.\n\n\x0f\n\x07\x04\x01\x04\0\x02\x03\x01\
6893    \x12\x04\xb8\x03\x04\x14\n\x0f\n\x07\x04\x01\x04\0\x02\x03\x02\x12\x04\
6894    \xb8\x03\x17\x18\n\x9d\x02\n\x04\x04\x01\x02\0\x12\x04\xc0\x03\x02;\x1a\
6895    \x8e\x02\x20Required.\x20The\x20name\x20of\x20the\x20database.\x20Values\
6896    \x20are\x20of\x20the\x20form\n\x20`projects/<project>/instances/<instanc\
6897    e>/databases/<database>`,\n\x20where\x20`<database>`\x20is\x20as\x20spec\
6898    ified\x20in\x20the\x20`CREATE\x20DATABASE`\n\x20statement.\x20This\x20na\
6899    me\x20can\x20be\x20passed\x20to\x20other\x20API\x20methods\x20to\n\x20id\
6900    entify\x20the\x20database.\n\n\r\n\x05\x04\x01\x02\0\x05\x12\x04\xc0\x03\
6901    \x02\x08\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\xc0\x03\t\r\n\r\n\x05\x04\
6902    \x01\x02\0\x03\x12\x04\xc0\x03\x10\x11\n\r\n\x05\x04\x01\x02\0\x08\x12\
6903    \x04\xc0\x03\x12:\n\x10\n\x08\x04\x01\x02\0\x08\x9c\x08\0\x12\x04\xc0\
6904    \x03\x139\n8\n\x04\x04\x01\x02\x01\x12\x04\xc3\x03\x02>\x1a*\x20Output\
6905    \x20only.\x20The\x20current\x20database\x20state.\n\n\r\n\x05\x04\x01\
6906    \x02\x01\x06\x12\x04\xc3\x03\x02\x07\n\r\n\x05\x04\x01\x02\x01\x01\x12\
6907    \x04\xc3\x03\x08\r\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xc3\x03\x10\x11\
6908    \n\r\n\x05\x04\x01\x02\x01\x08\x12\x04\xc3\x03\x12=\n\x10\n\x08\x04\x01\
6909    \x02\x01\x08\x9c\x08\0\x12\x04\xc3\x03\x13<\nX\n\x04\x04\x01\x02\x02\x12\
6910    \x04\xc6\x03\x02X\x1aJ\x20Output\x20only.\x20If\x20exists,\x20the\x20tim\
6911    e\x20at\x20which\x20the\x20database\x20creation\x20started.\n\n\r\n\x05\
6912    \x04\x01\x02\x02\x06\x12\x04\xc6\x03\x02\x1b\n\r\n\x05\x04\x01\x02\x02\
6913    \x01\x12\x04\xc6\x03\x1c'\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\xc6\x03*\
6914    +\n\r\n\x05\x04\x01\x02\x02\x08\x12\x04\xc6\x03,W\n\x10\n\x08\x04\x01\
6915    \x02\x02\x08\x9c\x08\0\x12\x04\xc6\x03-V\nt\n\x04\x04\x01\x02\x03\x12\
6916    \x04\xca\x03\x02K\x1af\x20Output\x20only.\x20Applicable\x20only\x20for\
6917    \x20restored\x20databases.\x20Contains\x20information\n\x20about\x20the\
6918    \x20restore\x20source.\n\n\r\n\x05\x04\x01\x02\x03\x06\x12\x04\xca\x03\
6919    \x02\r\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\xca\x03\x0e\x1a\n\r\n\x05\
6920    \x04\x01\x02\x03\x03\x12\x04\xca\x03\x1d\x1e\n\r\n\x05\x04\x01\x02\x03\
6921    \x08\x12\x04\xca\x03\x1fJ\n\x10\n\x08\x04\x01\x02\x03\x08\x9c\x08\0\x12\
6922    \x04\xca\x03\x20I\n\xfc\x01\n\x04\x04\x01\x02\x04\x12\x04\xd0\x03\x02U\
6923    \x1a\xed\x01\x20Output\x20only.\x20For\x20databases\x20that\x20are\x20us\
6924    ing\x20customer\x20managed\x20encryption,\x20this\n\x20field\x20contains\
6925    \x20the\x20encryption\x20configuration\x20for\x20the\x20database.\n\x20F\
6926    or\x20databases\x20that\x20are\x20using\x20Google\x20default\x20or\x20ot\
6927    her\x20types\x20of\x20encryption,\n\x20this\x20field\x20is\x20empty.\n\n\
6928    \r\n\x05\x04\x01\x02\x04\x06\x12\x04\xd0\x03\x02\x12\n\r\n\x05\x04\x01\
6929    \x02\x04\x01\x12\x04\xd0\x03\x13$\n\r\n\x05\x04\x01\x02\x04\x03\x12\x04\
6930    \xd0\x03'(\n\r\n\x05\x04\x01\x02\x04\x08\x12\x04\xd0\x03)T\n\x10\n\x08\
6931    \x04\x01\x02\x04\x08\x9c\x08\0\x12\x04\xd0\x03*S\n\xda\x03\n\x04\x04\x01\
6932    \x02\x05\x12\x04\xdb\x03\x02Z\x1a\xcb\x03\x20Output\x20only.\x20For\x20d\
6933    atabases\x20that\x20are\x20using\x20customer\x20managed\x20encryption,\
6934    \x20this\n\x20field\x20contains\x20the\x20encryption\x20information\x20f\
6935    or\x20the\x20database,\x20such\x20as\n\x20encryption\x20state\x20and\x20\
6936    the\x20Cloud\x20KMS\x20key\x20versions\x20that\x20are\x20in\x20use.\n\n\
6937    \x20For\x20databases\x20that\x20are\x20using\x20Google\x20default\x20or\
6938    \x20other\x20types\x20of\x20encryption,\n\x20this\x20field\x20is\x20empt\
6939    y.\n\n\x20This\x20field\x20is\x20propagated\x20lazily\x20from\x20the\x20\
6940    backend.\x20There\x20might\x20be\x20a\x20delay\n\x20from\x20when\x20a\
6941    \x20key\x20version\x20is\x20being\x20used\x20and\x20when\x20it\x20appear\
6942    s\x20in\x20this\x20field.\n\n\r\n\x05\x04\x01\x02\x05\x04\x12\x04\xdb\
6943    \x03\x02\n\n\r\n\x05\x04\x01\x02\x05\x06\x12\x04\xdb\x03\x0b\x19\n\r\n\
6944    \x05\x04\x01\x02\x05\x01\x12\x04\xdb\x03\x1a)\n\r\n\x05\x04\x01\x02\x05\
6945    \x03\x12\x04\xdb\x03,-\n\r\n\x05\x04\x01\x02\x05\x08\x12\x04\xdb\x03.Y\n\
6946    \x10\n\x08\x04\x01\x02\x05\x08\x9c\x08\0\x12\x04\xdb\x03/X\n\xbd\x02\n\
6947    \x04\x04\x01\x02\x06\x12\x04\xe2\x03\x02R\x1a\xae\x02\x20Output\x20only.\
6948    \x20The\x20period\x20in\x20which\x20Cloud\x20Spanner\x20retains\x20all\
6949    \x20versions\x20of\x20data\n\x20for\x20the\x20database.\x20This\x20is\
6950    \x20the\x20same\x20as\x20the\x20value\x20of\x20version_retention_period\
6951    \n\x20database\x20option\x20set\x20using\n\x20[UpdateDatabaseDdl][google\
6952    .spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].\x20Defaults\
6953    \x20to\x201\x20hour,\n\x20if\x20not\x20set.\n\n\r\n\x05\x04\x01\x02\x06\
6954    \x05\x12\x04\xe2\x03\x02\x08\n\r\n\x05\x04\x01\x02\x06\x01\x12\x04\xe2\
6955    \x03\t!\n\r\n\x05\x04\x01\x02\x06\x03\x12\x04\xe2\x03$%\n\r\n\x05\x04\
6956    \x01\x02\x06\x08\x12\x04\xe2\x03&Q\n\x10\n\x08\x04\x01\x02\x06\x08\x9c\
6957    \x08\0\x12\x04\xe2\x03'P\n\xec\x02\n\x04\x04\x01\x02\x07\x12\x04\xe9\x03\
6958    \x02b\x1a\xdd\x02\x20Output\x20only.\x20Earliest\x20timestamp\x20at\x20w\
6959    hich\x20older\x20versions\x20of\x20the\x20data\x20can\x20be\n\x20read.\
6960    \x20This\x20value\x20is\x20continuously\x20updated\x20by\x20Cloud\x20Spa\
6961    nner\x20and\x20becomes\x20stale\n\x20the\x20moment\x20it\x20is\x20querie\
6962    d.\x20If\x20you\x20are\x20using\x20this\x20value\x20to\x20recover\x20dat\
6963    a,\x20make\n\x20sure\x20to\x20account\x20for\x20the\x20time\x20from\x20t\
6964    he\x20moment\x20when\x20the\x20value\x20is\x20queried\x20to\n\x20the\x20\
6965    moment\x20when\x20you\x20initiate\x20the\x20recovery.\n\n\r\n\x05\x04\
6966    \x01\x02\x07\x06\x12\x04\xe9\x03\x02\x1b\n\r\n\x05\x04\x01\x02\x07\x01\
6967    \x12\x04\xe9\x03\x1c1\n\r\n\x05\x04\x01\x02\x07\x03\x12\x04\xe9\x0345\n\
6968    \r\n\x05\x04\x01\x02\x07\x08\x12\x04\xe9\x036a\n\x10\n\x08\x04\x01\x02\
6969    \x07\x08\x9c\x08\0\x12\x04\xe9\x037`\n\x98\x02\n\x04\x04\x01\x02\x08\x12\
6970    \x04\xf1\x03\x02H\x1a\x89\x02\x20Output\x20only.\x20The\x20read-write\
6971    \x20region\x20which\x20contains\x20the\x20database's\x20leader\n\x20repl\
6972    icas.\n\n\x20This\x20is\x20the\x20same\x20as\x20the\x20value\x20of\x20de\
6973    fault_leader\n\x20database\x20option\x20set\x20using\x20DatabaseAdmin.Cr\
6974    eateDatabase\x20or\n\x20DatabaseAdmin.UpdateDatabaseDdl.\x20If\x20not\
6975    \x20explicitly\x20set,\x20this\x20is\x20empty.\n\n\r\n\x05\x04\x01\x02\
6976    \x08\x05\x12\x04\xf1\x03\x02\x08\n\r\n\x05\x04\x01\x02\x08\x01\x12\x04\
6977    \xf1\x03\t\x17\n\r\n\x05\x04\x01\x02\x08\x03\x12\x04\xf1\x03\x1a\x1b\n\r\
6978    \n\x05\x04\x01\x02\x08\x08\x12\x04\xf1\x03\x1cG\n\x10\n\x08\x04\x01\x02\
6979    \x08\x08\x9c\x08\0\x12\x04\xf1\x03\x1dF\nG\n\x04\x04\x01\x02\t\x12\x04\
6980    \xf4\x03\x02T\x1a9\x20Output\x20only.\x20The\x20dialect\x20of\x20the\x20\
6981    Cloud\x20Spanner\x20Database.\n\n\r\n\x05\x04\x01\x02\t\x06\x12\x04\xf4\
6982    \x03\x02\x11\n\r\n\x05\x04\x01\x02\t\x01\x12\x04\xf4\x03\x12\"\n\r\n\x05\
6983    \x04\x01\x02\t\x03\x12\x04\xf4\x03%'\n\r\n\x05\x04\x01\x02\t\x08\x12\x04\
6984    \xf4\x03(S\n\x10\n\x08\x04\x01\x02\t\x08\x9c\x08\0\x12\x04\xf4\x03)R\ne\
6985    \n\x04\x04\x01\x02\n\x12\x04\xf8\x03\x02#\x1aW\x20Whether\x20drop\x20pro\
6986    tection\x20is\x20enabled\x20for\x20this\x20database.\x20Defaults\x20to\
6987    \x20false,\n\x20if\x20not\x20set.\n\n\r\n\x05\x04\x01\x02\n\x05\x12\x04\
6988    \xf8\x03\x02\x06\n\r\n\x05\x04\x01\x02\n\x01\x12\x04\xf8\x03\x07\x1d\n\r\
6989    \n\x05\x04\x01\x02\n\x03\x12\x04\xf8\x03\x20\"\n\x88\x01\n\x04\x04\x01\
6990    \x02\x0b\x12\x04\xfc\x03\x02D\x1az\x20Output\x20only.\x20If\x20true,\x20\
6991    the\x20database\x20is\x20being\x20updated.\x20If\x20false,\x20there\x20a\
6992    re\x20no\n\x20ongoing\x20update\x20operations\x20for\x20the\x20database.\
6993    \n\n\r\n\x05\x04\x01\x02\x0b\x05\x12\x04\xfc\x03\x02\x06\n\r\n\x05\x04\
6994    \x01\x02\x0b\x01\x12\x04\xfc\x03\x07\x12\n\r\n\x05\x04\x01\x02\x0b\x03\
6995    \x12\x04\xfc\x03\x15\x17\n\r\n\x05\x04\x01\x02\x0b\x08\x12\x04\xfc\x03\
6996    \x18C\n\x10\n\x08\x04\x01\x02\x0b\x08\x9c\x08\0\x12\x04\xfc\x03\x19B\nn\
6997    \n\x02\x04\x02\x12\x06\x80\x04\0\x92\x04\x01\x1a`\x20The\x20request\x20f\
6998    or\x20[ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.Lis\
6999    tDatabases].\n\n\x0b\n\x03\x04\x02\x01\x12\x04\x80\x04\x08\x1c\n\x8d\x01\
7000    \n\x04\x04\x02\x02\0\x12\x06\x83\x04\x02\x88\x04\x04\x1a}\x20Required.\
7001    \x20The\x20instance\x20whose\x20databases\x20should\x20be\x20listed.\n\
7002    \x20Values\x20are\x20of\x20the\x20form\x20`projects/<project>/instances/\
7003    <instance>`.\n\n\r\n\x05\x04\x02\x02\0\x05\x12\x04\x83\x04\x02\x08\n\r\n\
7004    \x05\x04\x02\x02\0\x01\x12\x04\x83\x04\t\x0f\n\r\n\x05\x04\x02\x02\0\x03\
7005    \x12\x04\x83\x04\x12\x13\n\x0f\n\x05\x04\x02\x02\0\x08\x12\x06\x83\x04\
7006    \x14\x88\x04\x03\n\x10\n\x08\x04\x02\x02\0\x08\x9c\x08\0\x12\x04\x84\x04\
7007    \x04*\n\x11\n\x07\x04\x02\x02\0\x08\x9f\x08\x12\x06\x85\x04\x04\x87\x04\
7008    \x05\n\x86\x01\n\x04\x04\x02\x02\x01\x12\x04\x8c\x04\x02\x16\x1ax\x20Num\
7009    ber\x20of\x20databases\x20to\x20be\x20returned\x20in\x20the\x20response.\
7010    \x20If\x200\x20or\x20less,\n\x20defaults\x20to\x20the\x20server's\x20max\
7011    imum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\x02\x02\x01\x05\x12\x04\
7012    \x8c\x04\x02\x07\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\x8c\x04\x08\x11\n\
7013    \r\n\x05\x04\x02\x02\x01\x03\x12\x04\x8c\x04\x14\x15\n\xf9\x01\n\x04\x04\
7014    \x02\x02\x02\x12\x04\x91\x04\x02\x18\x1a\xea\x01\x20If\x20non-empty,\x20\
7015    `page_token`\x20should\x20contain\x20a\n\x20[next_page_token][google.spa\
7016    nner.admin.database.v1.ListDatabasesResponse.next_page_token]\x20from\
7017    \x20a\n\x20previous\x20[ListDatabasesResponse][google.spanner.admin.data\
7018    base.v1.ListDatabasesResponse].\n\n\r\n\x05\x04\x02\x02\x02\x05\x12\x04\
7019    \x91\x04\x02\x08\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\x91\x04\t\x13\n\r\
7020    \n\x05\x04\x02\x02\x02\x03\x12\x04\x91\x04\x16\x17\no\n\x02\x04\x03\x12\
7021    \x06\x95\x04\0\x9d\x04\x01\x1aa\x20The\x20response\x20for\x20[ListDataba\
7022    ses][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].\n\n\
7023    \x0b\n\x03\x04\x03\x01\x12\x04\x95\x04\x08\x1d\n3\n\x04\x04\x03\x02\0\
7024    \x12\x04\x97\x04\x02\"\x1a%\x20Databases\x20that\x20matched\x20the\x20re\
7025    quest.\n\n\r\n\x05\x04\x03\x02\0\x04\x12\x04\x97\x04\x02\n\n\r\n\x05\x04\
7026    \x03\x02\0\x06\x12\x04\x97\x04\x0b\x13\n\r\n\x05\x04\x03\x02\0\x01\x12\
7027    \x04\x97\x04\x14\x1d\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\x97\x04\x20!\n\
7028    \xbc\x01\n\x04\x04\x03\x02\x01\x12\x04\x9c\x04\x02\x1d\x1a\xad\x01\x20`n\
7029    ext_page_token`\x20can\x20be\x20sent\x20in\x20a\x20subsequent\n\x20[List\
7030    Databases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases]\
7031    \x20call\x20to\x20fetch\x20more\n\x20of\x20the\x20matching\x20databases.\
7032    \n\n\r\n\x05\x04\x03\x02\x01\x05\x12\x04\x9c\x04\x02\x08\n\r\n\x05\x04\
7033    \x03\x02\x01\x01\x12\x04\x9c\x04\t\x18\n\r\n\x05\x04\x03\x02\x01\x03\x12\
7034    \x04\x9c\x04\x1b\x1c\np\n\x02\x04\x04\x12\x06\xa0\x04\0\xbe\x04\x01\x1ab\
7035    \x20The\x20request\x20for\x20[CreateDatabase][google.spanner.admin.datab\
7036    ase.v1.DatabaseAdmin.CreateDatabase].\n\n\x0b\n\x03\x04\x04\x01\x12\x04\
7037    \xa0\x04\x08\x1d\n\x9a\x01\n\x04\x04\x04\x02\0\x12\x06\xa3\x04\x02\xa8\
7038    \x04\x04\x1a\x89\x01\x20Required.\x20The\x20name\x20of\x20the\x20instanc\
7039    e\x20that\x20will\x20serve\x20the\x20new\x20database.\n\x20Values\x20are\
7040    \x20of\x20the\x20form\x20`projects/<project>/instances/<instance>`.\n\n\
7041    \r\n\x05\x04\x04\x02\0\x05\x12\x04\xa3\x04\x02\x08\n\r\n\x05\x04\x04\x02\
7042    \0\x01\x12\x04\xa3\x04\t\x0f\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\xa3\x04\
7043    \x12\x13\n\x0f\n\x05\x04\x04\x02\0\x08\x12\x06\xa3\x04\x14\xa8\x04\x03\n\
7044    \x10\n\x08\x04\x04\x02\0\x08\x9c\x08\0\x12\x04\xa4\x04\x04*\n\x11\n\x07\
7045    \x04\x04\x02\0\x08\x9f\x08\x12\x06\xa5\x04\x04\xa7\x04\x05\n\xe6\x02\n\
7046    \x04\x04\x04\x02\x01\x12\x04\xaf\x04\x02G\x1a\xd7\x02\x20Required.\x20A\
7047    \x20`CREATE\x20DATABASE`\x20statement,\x20which\x20specifies\x20the\x20I\
7048    D\x20of\x20the\n\x20new\x20database.\x20\x20The\x20database\x20ID\x20mus\
7049    t\x20conform\x20to\x20the\x20regular\x20expression\n\x20`[a-z][a-z0-9_\\\
7050    -]*[a-z0-9]`\x20and\x20be\x20between\x202\x20and\x2030\x20characters\x20\
7051    in\x20length.\n\x20If\x20the\x20database\x20ID\x20is\x20a\x20reserved\
7052    \x20word\x20or\x20if\x20it\x20contains\x20a\x20hyphen,\x20the\n\x20datab\
7053    ase\x20ID\x20must\x20be\x20enclosed\x20in\x20backticks\x20(``\x20`\x20``\
7054    ).\n\n\r\n\x05\x04\x04\x02\x01\x05\x12\x04\xaf\x04\x02\x08\n\r\n\x05\x04\
7055    \x04\x02\x01\x01\x12\x04\xaf\x04\t\x19\n\r\n\x05\x04\x04\x02\x01\x03\x12\
7056    \x04\xaf\x04\x1c\x1d\n\r\n\x05\x04\x04\x02\x01\x08\x12\x04\xaf\x04\x1eF\
7057    \n\x10\n\x08\x04\x04\x02\x01\x08\x9c\x08\0\x12\x04\xaf\x04\x1fE\n\x97\
7058    \x02\n\x04\x04\x04\x02\x02\x12\x04\xb5\x04\x02P\x1a\x88\x02\x20Optional.\
7059    \x20A\x20list\x20of\x20DDL\x20statements\x20to\x20run\x20inside\x20the\
7060    \x20newly\x20created\n\x20database.\x20Statements\x20can\x20create\x20ta\
7061    bles,\x20indexes,\x20etc.\x20These\n\x20statements\x20execute\x20atomica\
7062    lly\x20with\x20the\x20creation\x20of\x20the\x20database:\n\x20if\x20ther\
7063    e\x20is\x20an\x20error\x20in\x20any\x20statement,\x20the\x20database\x20\
7064    is\x20not\x20created.\n\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\xb5\x04\
7065    \x02\n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\xb5\x04\x0b\x11\n\r\n\x05\
7066    \x04\x04\x02\x02\x01\x12\x04\xb5\x04\x12\"\n\r\n\x05\x04\x04\x02\x02\x03\
7067    \x12\x04\xb5\x04%&\n\r\n\x05\x04\x04\x02\x02\x08\x12\x04\xb5\x04'O\n\x10\
7068    \n\x08\x04\x04\x02\x02\x08\x9c\x08\0\x12\x04\xb5\x04(N\n\xc0\x01\n\x04\
7069    \x04\x04\x02\x03\x12\x04\xba\x04\x02R\x1a\xb1\x01\x20Optional.\x20The\
7070    \x20encryption\x20configuration\x20for\x20the\x20database.\x20If\x20this\
7071    \x20field\x20is\x20not\n\x20specified,\x20Cloud\x20Spanner\x20will\x20en\
7072    crypt/decrypt\x20all\x20data\x20at\x20rest\x20using\n\x20Google\x20defau\
7073    lt\x20encryption.\n\n\r\n\x05\x04\x04\x02\x03\x06\x12\x04\xba\x04\x02\
7074    \x12\n\r\n\x05\x04\x04\x02\x03\x01\x12\x04\xba\x04\x13$\n\r\n\x05\x04\
7075    \x04\x02\x03\x03\x12\x04\xba\x04'(\n\r\n\x05\x04\x04\x02\x03\x08\x12\x04\
7076    \xba\x04)Q\n\x10\n\x08\x04\x04\x02\x03\x08\x9c\x08\0\x12\x04\xba\x04*P\n\
7077    D\n\x04\x04\x04\x02\x04\x12\x04\xbd\x04\x02P\x1a6\x20Optional.\x20The\
7078    \x20dialect\x20of\x20the\x20Cloud\x20Spanner\x20Database.\n\n\r\n\x05\
7079    \x04\x04\x02\x04\x06\x12\x04\xbd\x04\x02\x11\n\r\n\x05\x04\x04\x02\x04\
7080    \x01\x12\x04\xbd\x04\x12\"\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\xbd\x04\
7081    %&\n\r\n\x05\x04\x04\x02\x04\x08\x12\x04\xbd\x04'O\n\x10\n\x08\x04\x04\
7082    \x02\x04\x08\x9c\x08\0\x12\x04\xbd\x04(N\n\x8d\x01\n\x02\x04\x05\x12\x06\
7083    \xc2\x04\0\xc7\x04\x01\x1a\x7f\x20Metadata\x20type\x20for\x20the\x20oper\
7084    ation\x20returned\x20by\n\x20[CreateDatabase][google.spanner.admin.datab\
7085    ase.v1.DatabaseAdmin.CreateDatabase].\n\n\x0b\n\x03\x04\x05\x01\x12\x04\
7086    \xc2\x04\x08\x1e\n-\n\x04\x04\x05\x02\0\x12\x06\xc4\x04\x02\xc6\x04\x1a\
7087    \x1a\x1d\x20The\x20database\x20being\x20created.\n\n\r\n\x05\x04\x05\x02\
7088    \0\x05\x12\x04\xc4\x04\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xc4\
7089    \x04\t\x11\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xc4\x04\x14\x15\n\x0f\n\
7090    \x05\x04\x05\x02\0\x08\x12\x06\xc4\x04\x16\xc6\x04\x19\n\x11\n\x07\x04\
7091    \x05\x02\0\x08\x9f\x08\x12\x06\xc4\x04\x17\xc6\x04\x18\nj\n\x02\x04\x06\
7092    \x12\x06\xca\x04\0\xd3\x04\x01\x1a\\\x20The\x20request\x20for\x20[GetDat\
7093    abase][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase].\n\n\
7094    \x0b\n\x03\x04\x06\x01\x12\x04\xca\x04\x08\x1a\n\x98\x01\n\x04\x04\x06\
7095    \x02\0\x12\x06\xcd\x04\x02\xd2\x04\x04\x1a\x87\x01\x20Required.\x20The\
7096    \x20name\x20of\x20the\x20requested\x20database.\x20Values\x20are\x20of\
7097    \x20the\x20form\n\x20`projects/<project>/instances/<instance>/databases/\
7098    <database>`.\n\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\xcd\x04\x02\x08\n\r\n\
7099    \x05\x04\x06\x02\0\x01\x12\x04\xcd\x04\t\r\n\r\n\x05\x04\x06\x02\0\x03\
7100    \x12\x04\xcd\x04\x10\x11\n\x0f\n\x05\x04\x06\x02\0\x08\x12\x06\xcd\x04\
7101    \x12\xd2\x04\x03\n\x10\n\x08\x04\x06\x02\0\x08\x9c\x08\0\x12\x04\xce\x04\
7102    \x04*\n\x11\n\x07\x04\x06\x02\0\x08\x9f\x08\x12\x06\xcf\x04\x04\xd1\x04\
7103    \x05\nq\n\x02\x04\x07\x12\x06\xd7\x04\0\xe1\x04\x01\x1ac\x20The\x20reque\
7104    st\x20for\n\x20[UpdateDatabase][google.spanner.admin.database.v1.Databas\
7105    eAdmin.UpdateDatabase].\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xd7\x04\x08\
7106    \x1d\n\xa4\x01\n\x04\x04\x07\x02\0\x12\x04\xdb\x04\x02A\x1a\x95\x01\x20R\
7107    equired.\x20The\x20database\x20to\x20update.\n\x20The\x20`name`\x20field\
7108    \x20of\x20the\x20database\x20is\x20of\x20the\x20form\n\x20`projects/<pro\
7109    ject>/instances/<instance>/databases/<database>`.\n\n\r\n\x05\x04\x07\
7110    \x02\0\x06\x12\x04\xdb\x04\x02\n\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xdb\
7111    \x04\x0b\x13\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\xdb\x04\x16\x17\n\r\n\
7112    \x05\x04\x07\x02\0\x08\x12\x04\xdb\x04\x18@\n\x10\n\x08\x04\x07\x02\0\
7113    \x08\x9c\x08\0\x12\x04\xdb\x04\x19?\ny\n\x04\x04\x07\x02\x01\x12\x06\xdf\
7114    \x04\x02\xe0\x04/\x1ai\x20Required.\x20The\x20list\x20of\x20fields\x20to\
7115    \x20update.\x20Currently,\x20only\n\x20`enable_drop_protection`\x20field\
7116    \x20can\x20be\x20updated.\n\n\r\n\x05\x04\x07\x02\x01\x06\x12\x04\xdf\
7117    \x04\x02\x1b\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xdf\x04\x1c'\n\r\n\
7118    \x05\x04\x07\x02\x01\x03\x12\x04\xdf\x04*+\n\r\n\x05\x04\x07\x02\x01\x08\
7119    \x12\x04\xe0\x04\x06.\n\x10\n\x08\x04\x07\x02\x01\x08\x9c\x08\0\x12\x04\
7120    \xe0\x04\x07-\n\x8d\x01\n\x02\x04\x08\x12\x06\xe5\x04\0\xf2\x04\x01\x1a\
7121    \x7f\x20Metadata\x20type\x20for\x20the\x20operation\x20returned\x20by\n\
7122    \x20[UpdateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.Upda\
7123    teDatabase].\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xe5\x04\x08\x1e\nq\n\x04\
7124    \x04\x08\x02\0\x12\x04\xe8\x04\x02$\x1ac\x20The\x20request\x20for\n\x20[\
7125    UpdateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDat\
7126    abase].\n\n\r\n\x05\x04\x08\x02\0\x06\x12\x04\xe8\x04\x02\x17\n\r\n\x05\
7127    \x04\x08\x02\0\x01\x12\x04\xe8\x04\x18\x1f\n\r\n\x05\x04\x08\x02\0\x03\
7128    \x12\x04\xe8\x04\"#\n\x80\x01\n\x04\x04\x08\x02\x01\x12\x04\xed\x04\x02!\
7129    \x1ar\x20The\x20progress\x20of\x20the\n\x20[UpdateDatabase][google.spann\
7130    er.admin.database.v1.DatabaseAdmin.UpdateDatabase]\n\x20operation.\n\n\r\
7131    \n\x05\x04\x08\x02\x01\x06\x12\x04\xed\x04\x02\x13\n\r\n\x05\x04\x08\x02\
7132    \x01\x01\x12\x04\xed\x04\x14\x1c\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\
7133    \xed\x04\x1f\x20\n\x94\x01\n\x04\x04\x08\x02\x02\x12\x04\xf1\x04\x02,\
7134    \x1a\x85\x01\x20The\x20time\x20at\x20which\x20this\x20operation\x20was\
7135    \x20cancelled.\x20If\x20set,\x20this\x20operation\x20is\n\x20in\x20the\
7136    \x20process\x20of\x20undoing\x20itself\x20(which\x20is\x20best-effort).\
7137    \n\n\r\n\x05\x04\x08\x02\x02\x06\x12\x04\xf1\x04\x02\x1b\n\r\n\x05\x04\
7138    \x08\x02\x02\x01\x12\x04\xf1\x04\x1c'\n\r\n\x05\x04\x08\x02\x02\x03\x12\
7139    \x04\xf1\x04*+\n\x99\x07\n\x02\x04\t\x12\x06\x84\x05\0\xa4\x05\x01\x1a\
7140    \x8a\x07\x20Enqueues\x20the\x20given\x20DDL\x20statements\x20to\x20be\
7141    \x20applied,\x20in\x20order\x20but\x20not\n\x20necessarily\x20all\x20at\
7142    \x20once,\x20to\x20the\x20database\x20schema\x20at\x20some\x20point\x20(\
7143    or\n\x20points)\x20in\x20the\x20future.\x20The\x20server\x20checks\x20th\
7144    at\x20the\x20statements\n\x20are\x20executable\x20(syntactically\x20vali\
7145    d,\x20name\x20tables\x20that\x20exist,\x20etc.)\n\x20before\x20enqueuein\
7146    g\x20them,\x20but\x20they\x20may\x20still\x20fail\x20upon\n\x20later\x20\
7147    execution\x20(e.g.,\x20if\x20a\x20statement\x20from\x20another\x20batch\
7148    \x20of\n\x20statements\x20is\x20applied\x20first\x20and\x20it\x20conflic\
7149    ts\x20in\x20some\x20way,\x20or\x20if\n\x20there\x20is\x20some\x20data-re\
7150    lated\x20problem\x20like\x20a\x20`NULL`\x20value\x20in\x20a\x20column\
7151    \x20to\n\x20which\x20`NOT\x20NULL`\x20would\x20be\x20added).\x20If\x20a\
7152    \x20statement\x20fails,\x20all\n\x20subsequent\x20statements\x20in\x20th\
7153    e\x20batch\x20are\x20automatically\x20cancelled.\n\n\x20Each\x20batch\
7154    \x20of\x20statements\x20is\x20assigned\x20a\x20name\x20which\x20can\x20b\
7155    e\x20used\x20with\n\x20the\x20[Operations][google.longrunning.Operations\
7156    ]\x20API\x20to\x20monitor\n\x20progress.\x20See\x20the\n\x20[operation_i\
7157    d][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation_i\
7158    d]\x20field\x20for\x20more\n\x20details.\n\n\x0b\n\x03\x04\t\x01\x12\x04\
7159    \x84\x05\x08\x20\n3\n\x04\x04\t\x02\0\x12\x06\x86\x05\x02\x8b\x05\x04\
7160    \x1a#\x20Required.\x20The\x20database\x20to\x20update.\n\n\r\n\x05\x04\t\
7161    \x02\0\x05\x12\x04\x86\x05\x02\x08\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x86\
7162    \x05\t\x11\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x86\x05\x14\x15\n\x0f\n\x05\
7163    \x04\t\x02\0\x08\x12\x06\x86\x05\x16\x8b\x05\x03\n\x10\n\x08\x04\t\x02\0\
7164    \x08\x9c\x08\0\x12\x04\x87\x05\x04*\n\x11\n\x07\x04\t\x02\0\x08\x9f\x08\
7165    \x12\x06\x88\x05\x04\x8a\x05\x05\nG\n\x04\x04\t\x02\x01\x12\x04\x8e\x05\
7166    \x02J\x1a9\x20Required.\x20DDL\x20statements\x20to\x20be\x20applied\x20t\
7167    o\x20the\x20database.\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\x8e\x05\x02\
7168    \n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x8e\x05\x0b\x11\n\r\n\x05\x04\t\
7169    \x02\x01\x01\x12\x04\x8e\x05\x12\x1c\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\
7170    \x8e\x05\x1f\x20\n\r\n\x05\x04\t\x02\x01\x08\x12\x04\x8e\x05!I\n\x10\n\
7171    \x08\x04\t\x02\x01\x08\x9c\x08\0\x12\x04\x8e\x05\"H\n\xe4\x08\n\x04\x04\
7172    \t\x02\x02\x12\x04\xa3\x05\x02\x1a\x1a\xd5\x08\x20If\x20empty,\x20the\
7173    \x20new\x20update\x20request\x20is\x20assigned\x20an\n\x20automatically-\
7174    generated\x20operation\x20ID.\x20Otherwise,\x20`operation_id`\n\x20is\
7175    \x20used\x20to\x20construct\x20the\x20name\x20of\x20the\x20resulting\n\
7176    \x20[Operation][google.longrunning.Operation].\n\n\x20Specifying\x20an\
7177    \x20explicit\x20operation\x20ID\x20simplifies\x20determining\n\x20whethe\
7178    r\x20the\x20statements\x20were\x20executed\x20in\x20the\x20event\x20that\
7179    \x20the\n\x20[UpdateDatabaseDdl][google.spanner.admin.database.v1.Databa\
7180    seAdmin.UpdateDatabaseDdl]\x20call\x20is\x20replayed,\n\x20or\x20the\x20\
7181    return\x20value\x20is\x20otherwise\x20lost:\x20the\x20[database][google.\
7182    spanner.admin.database.v1.UpdateDatabaseDdlRequest.database]\x20and\n\
7183    \x20`operation_id`\x20fields\x20can\x20be\x20combined\x20to\x20form\x20t\
7184    he\n\x20[name][google.longrunning.Operation.name]\x20of\x20the\x20result\
7185    ing\n\x20[longrunning.Operation][google.longrunning.Operation]:\x20`<dat\
7186    abase>/operations/<operation_id>`.\n\n\x20`operation_id`\x20should\x20be\
7187    \x20unique\x20within\x20the\x20database,\x20and\x20must\x20be\n\x20a\x20\
7188    valid\x20identifier:\x20`[a-z][a-z0-9_]*`.\x20Note\x20that\n\x20automati\
7189    cally-generated\x20operation\x20IDs\x20always\x20begin\x20with\x20an\n\
7190    \x20underscore.\x20If\x20the\x20named\x20operation\x20already\x20exists,\
7191    \n\x20[UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin\
7192    .UpdateDatabaseDdl]\x20returns\n\x20`ALREADY_EXISTS`.\n\n\r\n\x05\x04\t\
7193    \x02\x02\x05\x12\x04\xa3\x05\x02\x08\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\
7194    \xa3\x05\t\x15\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xa3\x05\x18\x19\n\xf0\
7195    \x01\n\x02\x04\n\x12\x06\xa9\x05\0\xb9\x05\x01\x1a\xe1\x01\x20Action\x20\
7196    information\x20extracted\x20from\x20a\x20DDL\x20statement.\x20This\x20pr\
7197    oto\x20is\x20used\x20to\n\x20display\x20the\x20brief\x20info\x20of\x20th\
7198    e\x20DDL\x20statement\x20for\x20the\x20operation\n\x20[UpdateDatabaseDdl\
7199    ][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].\n\n\
7200    \x0b\n\x03\x04\n\x01\x12\x04\xa9\x05\x08\x1e\nz\n\x04\x04\n\x02\0\x12\
7201    \x04\xac\x05\x02\x14\x1al\x20The\x20action\x20for\x20the\x20DDL\x20state\
7202    ment,\x20e.g.\x20CREATE,\x20ALTER,\x20DROP,\x20GRANT,\x20etc.\n\x20This\
7203    \x20field\x20is\x20a\x20non-empty\x20string.\n\n\r\n\x05\x04\n\x02\0\x05\
7204    \x12\x04\xac\x05\x02\x08\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xac\x05\t\x0f\
7205    \n\r\n\x05\x04\n\x02\0\x03\x12\x04\xac\x05\x12\x13\n\xc0\x01\n\x04\x04\n\
7206    \x02\x01\x12\x04\xb1\x05\x02\x19\x1a\xb1\x01\x20The\x20entity\x20type\
7207    \x20for\x20the\x20DDL\x20statement,\x20e.g.\x20TABLE,\x20INDEX,\x20VIEW,\
7208    \x20etc.\n\x20This\x20field\x20can\x20be\x20empty\x20string\x20for\x20so\
7209    me\x20DDL\x20statement,\n\x20e.g.\x20for\x20statement\x20\"ANALYZE\",\
7210    \x20`entity_type`\x20=\x20\"\".\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\
7211    \xb1\x05\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xb1\x05\t\x14\n\r\n\
7212    \x05\x04\n\x02\x01\x03\x12\x04\xb1\x05\x17\x18\n\x8d\x02\n\x04\x04\n\x02\
7213    \x02\x12\x04\xb8\x05\x02#\x1a\xfe\x01\x20The\x20entity\x20name(s)\x20bei\
7214    ng\x20operated\x20on\x20the\x20DDL\x20statement.\n\x20E.g.\n\x201.\x20Fo\
7215    r\x20statement\x20\"CREATE\x20TABLE\x20t1(...)\",\x20`entity_names`\x20=\
7216    \x20[\"t1\"].\n\x202.\x20For\x20statement\x20\"GRANT\x20ROLE\x20r1,\x20r\
7217    2\x20...\",\x20`entity_names`\x20=\x20[\"r1\",\x20\"r2\"].\n\x203.\x20Fo\
7218    r\x20statement\x20\"ANALYZE\",\x20`entity_names`\x20=\x20[].\n\n\r\n\x05\
7219    \x04\n\x02\x02\x04\x12\x04\xb8\x05\x02\n\n\r\n\x05\x04\n\x02\x02\x05\x12\
7220    \x04\xb8\x05\x0b\x11\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xb8\x05\x12\x1e\
7221    \n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xb8\x05!\"\n\x94\x01\n\x02\x04\x0b\
7222    \x12\x06\xbd\x05\0\xdd\x05\x01\x1a\x85\x01\x20Metadata\x20type\x20for\
7223    \x20the\x20operation\x20returned\x20by\n\x20[UpdateDatabaseDdl][google.s\
7224    panner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].\n\n\x0b\n\x03\
7225    \x04\x0b\x01\x12\x04\xbd\x05\x08!\n.\n\x04\x04\x0b\x02\0\x12\x06\xbf\x05\
7226    \x02\xc1\x05\x1a\x1a\x1e\x20The\x20database\x20being\x20modified.\n\n\r\
7227    \n\x05\x04\x0b\x02\0\x05\x12\x04\xbf\x05\x02\x08\n\r\n\x05\x04\x0b\x02\0\
7228    \x01\x12\x04\xbf\x05\t\x11\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xbf\x05\
7229    \x14\x15\n\x0f\n\x05\x04\x0b\x02\0\x08\x12\x06\xbf\x05\x16\xc1\x05\x19\n\
7230    \x11\n\x07\x04\x0b\x02\0\x08\x9f\x08\x12\x06\xbf\x05\x17\xc1\x05\x18\n\
7231    \x8a\x01\n\x04\x04\x0b\x02\x01\x12\x04\xc5\x05\x02!\x1a|\x20For\x20an\
7232    \x20update\x20this\x20list\x20contains\x20all\x20the\x20statements.\x20F\
7233    or\x20an\n\x20individual\x20statement,\x20this\x20list\x20contains\x20on\
7234    ly\x20that\x20statement.\n\n\r\n\x05\x04\x0b\x02\x01\x04\x12\x04\xc5\x05\
7235    \x02\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xc5\x05\x0b\x11\n\r\n\x05\
7236    \x04\x0b\x02\x01\x01\x12\x04\xc5\x05\x12\x1c\n\r\n\x05\x04\x0b\x02\x01\
7237    \x03\x12\x04\xc5\x05\x1f\x20\n\xb6\x01\n\x04\x04\x0b\x02\x02\x12\x04\xca\
7238    \x05\x02;\x1a\xa7\x01\x20Reports\x20the\x20commit\x20timestamps\x20of\
7239    \x20all\x20statements\x20that\x20have\n\x20succeeded\x20so\x20far,\x20wh\
7240    ere\x20`commit_timestamps[i]`\x20is\x20the\x20commit\n\x20timestamp\x20f\
7241    or\x20the\x20statement\x20`statements[i]`.\n\n\r\n\x05\x04\x0b\x02\x02\
7242    \x04\x12\x04\xca\x05\x02\n\n\r\n\x05\x04\x0b\x02\x02\x06\x12\x04\xca\x05\
7243    \x0b$\n\r\n\x05\x04\x0b\x02\x02\x01\x12\x04\xca\x05%6\n\r\n\x05\x04\x0b\
7244    \x02\x02\x03\x12\x04\xca\x059:\n\xd4\x01\n\x04\x04\x0b\x02\x03\x12\x04\
7245    \xcf\x05\x02A\x1a\xc5\x01\x20Output\x20only.\x20When\x20true,\x20indicat\
7246    es\x20that\x20the\x20operation\x20is\x20throttled\x20e.g.\n\x20due\x20to\
7247    \x20resource\x20constraints.\x20When\x20resources\x20become\x20available\
7248    \x20the\x20operation\n\x20will\x20resume\x20and\x20this\x20field\x20will\
7249    \x20be\x20false\x20again.\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xcf\
7250    \x05\x02\x06\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xcf\x05\x07\x10\n\r\n\
7251    \x05\x04\x0b\x02\x03\x03\x12\x04\xcf\x05\x13\x14\n\r\n\x05\x04\x0b\x02\
7252    \x03\x08\x12\x04\xcf\x05\x15@\n\x10\n\x08\x04\x0b\x02\x03\x08\x9c\x08\0\
7253    \x12\x04\xcf\x05\x16?\n\xae\x03\n\x04\x04\x0b\x02\x04\x12\x04\xd8\x05\
7254    \x02*\x1a\x9f\x03\x20The\x20progress\x20of\x20the\n\x20[UpdateDatabaseDd\
7255    l][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]\n\
7256    \x20operations.\x20All\x20DDL\x20statements\x20will\x20have\x20continuou\
7257    sly\x20updating\x20progress,\n\x20and\x20`progress[i]`\x20is\x20the\x20o\
7258    peration\x20progress\x20for\x20`statements[i]`.\x20Also,\n\x20`progress[\
7259    i]`\x20will\x20have\x20start\x20time\x20and\x20end\x20time\x20populated\
7260    \x20with\x20commit\n\x20timestamp\x20of\x20operation,\x20as\x20well\x20a\
7261    s\x20a\x20progress\x20of\x20100%\x20once\x20the\x20operation\n\x20has\
7262    \x20completed.\n\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\xd8\x05\x02\n\n\r\
7263    \n\x05\x04\x0b\x02\x04\x06\x12\x04\xd8\x05\x0b\x1c\n\r\n\x05\x04\x0b\x02\
7264    \x04\x01\x12\x04\xd8\x05\x1d%\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\xd8\
7265    \x05()\nr\n\x04\x04\x0b\x02\x05\x12\x04\xdc\x05\x02.\x1ad\x20The\x20brie\
7266    f\x20action\x20info\x20for\x20the\x20DDL\x20statements.\n\x20`actions[i]\
7267    `\x20is\x20the\x20brief\x20info\x20for\x20`statements[i]`.\n\n\r\n\x05\
7268    \x04\x0b\x02\x05\x04\x12\x04\xdc\x05\x02\n\n\r\n\x05\x04\x0b\x02\x05\x06\
7269    \x12\x04\xdc\x05\x0b!\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\xdc\x05\")\n\
7270    \r\n\x05\x04\x0b\x02\x05\x03\x12\x04\xdc\x05,-\nl\n\x02\x04\x0c\x12\x06\
7271    \xe0\x05\0\xe8\x05\x01\x1a^\x20The\x20request\x20for\x20[DropDatabase][g\
7272    oogle.spanner.admin.database.v1.DatabaseAdmin.DropDatabase].\n\n\x0b\n\
7273    \x03\x04\x0c\x01\x12\x04\xe0\x05\x08\x1b\n7\n\x04\x04\x0c\x02\0\x12\x06\
7274    \xe2\x05\x02\xe7\x05\x04\x1a'\x20Required.\x20The\x20database\x20to\x20b\
7275    e\x20dropped.\n\n\r\n\x05\x04\x0c\x02\0\x05\x12\x04\xe2\x05\x02\x08\n\r\
7276    \n\x05\x04\x0c\x02\0\x01\x12\x04\xe2\x05\t\x11\n\r\n\x05\x04\x0c\x02\0\
7277    \x03\x12\x04\xe2\x05\x14\x15\n\x0f\n\x05\x04\x0c\x02\0\x08\x12\x06\xe2\
7278    \x05\x16\xe7\x05\x03\n\x10\n\x08\x04\x0c\x02\0\x08\x9c\x08\0\x12\x04\xe3\
7279    \x05\x04*\n\x11\n\x07\x04\x0c\x02\0\x08\x9f\x08\x12\x06\xe4\x05\x04\xe6\
7280    \x05\x05\np\n\x02\x04\r\x12\x06\xeb\x05\0\xf5\x05\x01\x1ab\x20The\x20req\
7281    uest\x20for\x20[GetDatabaseDdl][google.spanner.admin.database.v1.Databas\
7282    eAdmin.GetDatabaseDdl].\n\n\x0b\n\x03\x04\r\x01\x12\x04\xeb\x05\x08\x1d\
7283    \n\x9e\x01\n\x04\x04\r\x02\0\x12\x06\xef\x05\x02\xf4\x05\x04\x1a\x8d\x01\
7284    \x20Required.\x20The\x20database\x20whose\x20schema\x20we\x20wish\x20to\
7285    \x20get.\n\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<project\
7286    >/instances/<instance>/databases/<database>`\n\n\r\n\x05\x04\r\x02\0\x05\
7287    \x12\x04\xef\x05\x02\x08\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xef\x05\t\x11\
7288    \n\r\n\x05\x04\r\x02\0\x03\x12\x04\xef\x05\x14\x15\n\x0f\n\x05\x04\r\x02\
7289    \0\x08\x12\x06\xef\x05\x16\xf4\x05\x03\n\x10\n\x08\x04\r\x02\0\x08\x9c\
7290    \x08\0\x12\x04\xf0\x05\x04*\n\x11\n\x07\x04\r\x02\0\x08\x9f\x08\x12\x06\
7291    \xf1\x05\x04\xf3\x05\x05\nq\n\x02\x04\x0e\x12\x06\xf8\x05\0\xfc\x05\x01\
7292    \x1ac\x20The\x20response\x20for\x20[GetDatabaseDdl][google.spanner.admin\
7293    .database.v1.DatabaseAdmin.GetDatabaseDdl].\n\n\x0b\n\x03\x04\x0e\x01\
7294    \x12\x04\xf8\x05\x08\x1e\nq\n\x04\x04\x0e\x02\0\x12\x04\xfb\x05\x02!\x1a\
7295    c\x20A\x20list\x20of\x20formatted\x20DDL\x20statements\x20defining\x20th\
7296    e\x20schema\x20of\x20the\x20database\n\x20specified\x20in\x20the\x20requ\
7297    est.\n\n\r\n\x05\x04\x0e\x02\0\x04\x12\x04\xfb\x05\x02\n\n\r\n\x05\x04\
7298    \x0e\x02\0\x05\x12\x04\xfb\x05\x0b\x11\n\r\n\x05\x04\x0e\x02\0\x01\x12\
7299    \x04\xfb\x05\x12\x1c\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xfb\x05\x1f\x20\
7300    \n\x81\x01\n\x02\x04\x0f\x12\x06\x80\x06\0\xbf\x06\x01\x1as\x20The\x20re\
7301    quest\x20for\n\x20[ListDatabaseOperations][google.spanner.admin.database\
7302    .v1.DatabaseAdmin.ListDatabaseOperations].\n\n\x0b\n\x03\x04\x0f\x01\x12\
7303    \x04\x80\x06\x08%\n\x87\x01\n\x04\x04\x0f\x02\0\x12\x06\x83\x06\x02\x88\
7304    \x06\x04\x1aw\x20Required.\x20The\x20instance\x20of\x20the\x20database\
7305    \x20operations.\n\x20Values\x20are\x20of\x20the\x20form\x20`projects/<pr\
7306    oject>/instances/<instance>`.\n\n\r\n\x05\x04\x0f\x02\0\x05\x12\x04\x83\
7307    \x06\x02\x08\n\r\n\x05\x04\x0f\x02\0\x01\x12\x04\x83\x06\t\x0f\n\r\n\x05\
7308    \x04\x0f\x02\0\x03\x12\x04\x83\x06\x12\x13\n\x0f\n\x05\x04\x0f\x02\0\x08\
7309    \x12\x06\x83\x06\x14\x88\x06\x03\n\x10\n\x08\x04\x0f\x02\0\x08\x9c\x08\0\
7310    \x12\x04\x84\x06\x04*\n\x11\n\x07\x04\x0f\x02\0\x08\x9f\x08\x12\x06\x85\
7311    \x06\x04\x87\x06\x05\n\x95\x11\n\x04\x04\x0f\x02\x01\x12\x04\xb4\x06\x02\
7312    \x14\x1a\x86\x11\x20An\x20expression\x20that\x20filters\x20the\x20list\
7313    \x20of\x20returned\x20operations.\n\n\x20A\x20filter\x20expression\x20co\
7314    nsists\x20of\x20a\x20field\x20name,\x20a\n\x20comparison\x20operator,\
7315    \x20and\x20a\x20value\x20for\x20filtering.\n\x20The\x20value\x20must\x20\
7316    be\x20a\x20string,\x20a\x20number,\x20or\x20a\x20boolean.\x20The\x20comp\
7317    arison\x20operator\n\x20must\x20be\x20one\x20of:\x20`<`,\x20`>`,\x20`<=`\
7318    ,\x20`>=`,\x20`!=`,\x20`=`,\x20or\x20`:`.\n\x20Colon\x20`:`\x20is\x20the\
7319    \x20contains\x20operator.\x20Filter\x20rules\x20are\x20not\x20case\x20se\
7320    nsitive.\n\n\x20The\x20following\x20fields\x20in\x20the\x20[Operation][g\
7321    oogle.longrunning.Operation]\n\x20are\x20eligible\x20for\x20filtering:\n\
7322    \n\x20\x20\x20*\x20`name`\x20-\x20The\x20name\x20of\x20the\x20long-runni\
7323    ng\x20operation\n\x20\x20\x20*\x20`done`\x20-\x20False\x20if\x20the\x20o\
7324    peration\x20is\x20in\x20progress,\x20else\x20true.\n\x20\x20\x20*\x20`me\
7325    tadata.@type`\x20-\x20the\x20type\x20of\x20metadata.\x20For\x20example,\
7326    \x20the\x20type\x20string\n\x20\x20\x20\x20\x20\x20for\x20[RestoreDataba\
7327    seMetadata][google.spanner.admin.database.v1.RestoreDatabaseMetadata]\
7328    \x20is\n\x20\x20\x20\x20\x20\x20`type.googleapis.com/google.spanner.admi\
7329    n.database.v1.RestoreDatabaseMetadata`.\n\x20\x20\x20*\x20`metadata.<fie\
7330    ld_name>`\x20-\x20any\x20field\x20in\x20metadata.value.\n\x20\x20\x20\
7331    \x20\x20\x20`metadata.@type`\x20must\x20be\x20specified\x20first,\x20if\
7332    \x20filtering\x20on\x20metadata\n\x20\x20\x20\x20\x20\x20fields.\n\x20\
7333    \x20\x20*\x20`error`\x20-\x20Error\x20associated\x20with\x20the\x20long-\
7334    running\x20operation.\n\x20\x20\x20*\x20`response.@type`\x20-\x20the\x20\
7335    type\x20of\x20response.\n\x20\x20\x20*\x20`response.<field_name>`\x20-\
7336    \x20any\x20field\x20in\x20response.value.\n\n\x20You\x20can\x20combine\
7337    \x20multiple\x20expressions\x20by\x20enclosing\x20each\x20expression\x20\
7338    in\n\x20parentheses.\x20By\x20default,\x20expressions\x20are\x20combined\
7339    \x20with\x20AND\x20logic.\x20However,\n\x20you\x20can\x20specify\x20AND,\
7340    \x20OR,\x20and\x20NOT\x20logic\x20explicitly.\n\n\x20Here\x20are\x20a\
7341    \x20few\x20examples:\n\n\x20\x20\x20*\x20`done:true`\x20-\x20The\x20oper\
7342    ation\x20is\x20complete.\n\x20\x20\x20*\x20`(metadata.@type=type.googlea\
7343    pis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata)\x20AND\
7344    `\x20\\\n\x20\x20\x20\x20\x20`(metadata.source_type:BACKUP)\x20AND`\x20\
7345    \\\n\x20\x20\x20\x20\x20`(metadata.backup_info.backup:backup_howl)\x20AN\
7346    D`\x20\\\n\x20\x20\x20\x20\x20`(metadata.name:restored_howl)\x20AND`\x20\
7347    \\\n\x20\x20\x20\x20\x20`(metadata.progress.start_time\x20<\x20\\\"2018-\
7348    03-28T14:50:00Z\\\")\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(error:*)`\x20-\
7349    \x20Return\x20operations\x20where:\n\x20\x20\x20\x20\x20*\x20The\x20oper\
7350    ation's\x20metadata\x20type\x20is\x20[RestoreDatabaseMetadata][google.sp\
7351    anner.admin.database.v1.RestoreDatabaseMetadata].\n\x20\x20\x20\x20\x20*\
7352    \x20The\x20database\x20is\x20restored\x20from\x20a\x20backup.\n\x20\x20\
7353    \x20\x20\x20*\x20The\x20backup\x20name\x20contains\x20\"backup_howl\".\n\
7354    \x20\x20\x20\x20\x20*\x20The\x20restored\x20database's\x20name\x20contai\
7355    ns\x20\"restored_howl\".\n\x20\x20\x20\x20\x20*\x20The\x20operation\x20s\
7356    tarted\x20before\x202018-03-28T14:50:00Z.\n\x20\x20\x20\x20\x20*\x20The\
7357    \x20operation\x20resulted\x20in\x20an\x20error.\n\n\r\n\x05\x04\x0f\x02\
7358    \x01\x05\x12\x04\xb4\x06\x02\x08\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\
7359    \xb4\x06\t\x0f\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xb4\x06\x12\x13\n\
7360    \x87\x01\n\x04\x04\x0f\x02\x02\x12\x04\xb8\x06\x02\x16\x1ay\x20Number\
7361    \x20of\x20operations\x20to\x20be\x20returned\x20in\x20the\x20response.\
7362    \x20If\x200\x20or\n\x20less,\x20defaults\x20to\x20the\x20server's\x20max\
7363    imum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\
7364    \xb8\x06\x02\x07\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xb8\x06\x08\x11\n\
7365    \r\n\x05\x04\x0f\x02\x02\x03\x12\x04\xb8\x06\x14\x15\n\xc5\x02\n\x04\x04\
7366    \x0f\x02\x03\x12\x04\xbe\x06\x02\x18\x1a\xb6\x02\x20If\x20non-empty,\x20\
7367    `page_token`\x20should\x20contain\x20a\n\x20[next_page_token][google.spa\
7368    nner.admin.database.v1.ListDatabaseOperationsResponse.next_page_token]\n\
7369    \x20from\x20a\x20previous\x20[ListDatabaseOperationsResponse][google.spa\
7370    nner.admin.database.v1.ListDatabaseOperationsResponse]\x20to\x20the\n\
7371    \x20same\x20`parent`\x20and\x20with\x20the\x20same\x20`filter`.\n\n\r\n\
7372    \x05\x04\x0f\x02\x03\x05\x12\x04\xbe\x06\x02\x08\n\r\n\x05\x04\x0f\x02\
7373    \x03\x01\x12\x04\xbe\x06\t\x13\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\xbe\
7374    \x06\x16\x17\n\x82\x01\n\x02\x04\x10\x12\x06\xc3\x06\0\xcf\x06\x01\x1at\
7375    \x20The\x20response\x20for\n\x20[ListDatabaseOperations][google.spanner.\
7376    admin.database.v1.DatabaseAdmin.ListDatabaseOperations].\n\n\x0b\n\x03\
7377    \x04\x10\x01\x12\x04\xc3\x06\x08&\n\xaf\x02\n\x04\x04\x10\x02\0\x12\x04\
7378    \xc9\x06\x027\x1a\xa0\x02\x20The\x20list\x20of\x20matching\x20database\
7379    \x20[long-running\n\x20operations][google.longrunning.Operation].\x20Eac\
7380    h\x20operation's\x20name\x20will\x20be\n\x20prefixed\x20by\x20the\x20dat\
7381    abase's\x20name.\x20The\x20operation's\n\x20[metadata][google.longrunnin\
7382    g.Operation.metadata]\x20field\x20type\n\x20`metadata.type_url`\x20descr\
7383    ibes\x20the\x20type\x20of\x20the\x20metadata.\n\n\r\n\x05\x04\x10\x02\0\
7384    \x04\x12\x04\xc9\x06\x02\n\n\r\n\x05\x04\x10\x02\0\x06\x12\x04\xc9\x06\
7385    \x0b'\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xc9\x06(2\n\r\n\x05\x04\x10\
7386    \x02\0\x03\x12\x04\xc9\x0656\n\xcd\x01\n\x04\x04\x10\x02\x01\x12\x04\xce\
7387    \x06\x02\x1d\x1a\xbe\x01\x20`next_page_token`\x20can\x20be\x20sent\x20in\
7388    \x20a\x20subsequent\n\x20[ListDatabaseOperations][google.spanner.admin.d\
7389    atabase.v1.DatabaseAdmin.ListDatabaseOperations]\n\x20call\x20to\x20fetc\
7390    h\x20more\x20of\x20the\x20matching\x20metadata.\n\n\r\n\x05\x04\x10\x02\
7391    \x01\x05\x12\x04\xce\x06\x02\x08\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\
7392    \xce\x06\t\x18\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xce\x06\x1b\x1c\ns\
7393    \n\x02\x04\x11\x12\x06\xd3\x06\0\xf6\x06\x01\x1ae\x20The\x20request\x20f\
7394    or\n\x20[RestoreDatabase][google.spanner.admin.database.v1.DatabaseAdmin\
7395    .RestoreDatabase].\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xd3\x06\x08\x1e\n\
7396    \xa6\x02\n\x04\x04\x11\x02\0\x12\x06\xd9\x06\x02\xde\x06\x04\x1a\x95\x02\
7397    \x20Required.\x20The\x20name\x20of\x20the\x20instance\x20in\x20which\x20\
7398    to\x20create\x20the\n\x20restored\x20database.\x20This\x20instance\x20mu\
7399    st\x20be\x20in\x20the\x20same\x20project\x20and\n\x20have\x20the\x20same\
7400    \x20instance\x20configuration\x20as\x20the\x20instance\x20containing\n\
7401    \x20the\x20source\x20backup.\x20Values\x20are\x20of\x20the\x20form\n\x20\
7402    `projects/<project>/instances/<instance>`.\n\n\r\n\x05\x04\x11\x02\0\x05\
7403    \x12\x04\xd9\x06\x02\x08\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xd9\x06\t\
7404    \x0f\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xd9\x06\x12\x13\n\x0f\n\x05\x04\
7405    \x11\x02\0\x08\x12\x06\xd9\x06\x14\xde\x06\x03\n\x10\n\x08\x04\x11\x02\0\
7406    \x08\x9c\x08\0\x12\x04\xda\x06\x04*\n\x11\n\x07\x04\x11\x02\0\x08\x9f\
7407    \x08\x12\x06\xdb\x06\x04\xdd\x06\x05\n\x87\x02\n\x04\x04\x11\x02\x01\x12\
7408    \x04\xe4\x06\x02B\x1a\xf8\x01\x20Required.\x20The\x20id\x20of\x20the\x20\
7409    database\x20to\x20create\x20and\x20restore\x20to.\x20This\n\x20database\
7410    \x20must\x20not\x20already\x20exist.\x20The\x20`database_id`\x20appended\
7411    \x20to\n\x20`parent`\x20forms\x20the\x20full\x20database\x20name\x20of\
7412    \x20the\x20form\n\x20`projects/<project>/instances/<instance>/databases/\
7413    <database_id>`.\n\n\r\n\x05\x04\x11\x02\x01\x05\x12\x04\xe4\x06\x02\x08\
7414    \n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xe4\x06\t\x14\n\r\n\x05\x04\x11\
7415    \x02\x01\x03\x12\x04\xe4\x06\x17\x18\n\r\n\x05\x04\x11\x02\x01\x08\x12\
7416    \x04\xe4\x06\x19A\n\x10\n\x08\x04\x11\x02\x01\x08\x9c\x08\0\x12\x04\xe4\
7417    \x06\x1a@\n=\n\x04\x04\x11\x08\0\x12\x06\xe7\x06\x02\xed\x06\x03\x1a-\
7418    \x20Required.\x20The\x20source\x20from\x20which\x20to\x20restore.\n\n\r\
7419    \n\x05\x04\x11\x08\0\x01\x12\x04\xe7\x06\x08\x0e\n\x91\x01\n\x04\x04\x11\
7420    \x02\x02\x12\x06\xea\x06\x04\xec\x06\x1a\x1a\x80\x01\x20Name\x20of\x20th\
7421    e\x20backup\x20from\x20which\x20to\x20restore.\x20\x20Values\x20are\x20o\
7422    f\x20the\x20form\n\x20`projects/<project>/instances/<instance>/backups/<\
7423    backup>`.\n\n\r\n\x05\x04\x11\x02\x02\x05\x12\x04\xea\x06\x04\n\n\r\n\
7424    \x05\x04\x11\x02\x02\x01\x12\x04\xea\x06\x0b\x11\n\r\n\x05\x04\x11\x02\
7425    \x02\x03\x12\x04\xea\x06\x14\x15\n\x0f\n\x05\x04\x11\x02\x02\x08\x12\x06\
7426    \xea\x06\x16\xec\x06\x19\n\x11\n\x07\x04\x11\x02\x02\x08\x9f\x08\x12\x06\
7427    \xea\x06\x17\xec\x06\x18\n\xc0\x03\n\x04\x04\x11\x02\x03\x12\x04\xf5\x06\
7428    \x02a\x1a\xb1\x03\x20Optional.\x20An\x20encryption\x20configuration\x20d\
7429    escribing\x20the\x20encryption\x20type\x20and\x20key\n\x20resources\x20i\
7430    n\x20Cloud\x20KMS\x20used\x20to\x20encrypt/decrypt\x20the\x20database\
7431    \x20to\x20restore\x20to.\n\x20If\x20this\x20field\x20is\x20not\x20specif\
7432    ied,\x20the\x20restored\x20database\x20will\x20use\n\x20the\x20same\x20e\
7433    ncryption\x20configuration\x20as\x20the\x20backup\x20by\x20default,\x20n\
7434    amely\n\x20[encryption_type][google.spanner.admin.database.v1.RestoreDat\
7435    abaseEncryptionConfig.encryption_type]\x20=\n\x20`USE_CONFIG_DEFAULT_OR_\
7436    BACKUP_ENCRYPTION`.\n\n\r\n\x05\x04\x11\x02\x03\x06\x12\x04\xf5\x06\x02!\
7437    \n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xf5\x06\"3\n\r\n\x05\x04\x11\x02\
7438    \x03\x03\x12\x04\xf5\x0667\n\r\n\x05\x04\x11\x02\x03\x08\x12\x04\xf5\x06\
7439    8`\n\x10\n\x08\x04\x11\x02\x03\x08\x9c\x08\0\x12\x04\xf5\x069_\nC\n\x02\
7440    \x04\x12\x12\x06\xf9\x06\0\x99\x07\x01\x1a5\x20Encryption\x20configurati\
7441    on\x20for\x20the\x20restored\x20database.\n\n\x0b\n\x03\x04\x12\x01\x12\
7442    \x04\xf9\x06\x08'\nC\n\x04\x04\x12\x04\0\x12\x06\xfb\x06\x02\x89\x07\x03\
7443    \x1a3\x20Encryption\x20types\x20for\x20the\x20database\x20to\x20be\x20re\
7444    stored.\n\n\r\n\x05\x04\x12\x04\0\x01\x12\x04\xfb\x06\x07\x15\n*\n\x06\
7445    \x04\x12\x04\0\x02\0\x12\x04\xfd\x06\x04$\x1a\x1a\x20Unspecified.\x20Do\
7446    \x20not\x20use.\n\n\x0f\n\x07\x04\x12\x04\0\x02\0\x01\x12\x04\xfd\x06\
7447    \x04\x1f\n\x0f\n\x07\x04\x12\x04\0\x02\0\x02\x12\x04\xfd\x06\"#\n\x9b\
7448    \x01\n\x06\x04\x12\x04\0\x02\x01\x12\x04\x81\x07\x040\x1a\x8a\x01\x20Thi\
7449    s\x20is\x20the\x20default\x20option\x20when\n\x20[encryption_config][goo\
7450    gle.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig]\x20is\x20\
7451    not\x20specified.\n\n\x0f\n\x07\x04\x12\x04\0\x02\x01\x01\x12\x04\x81\
7452    \x07\x04+\n\x0f\n\x07\x04\x12\x04\0\x02\x01\x02\x12\x04\x81\x07./\n0\n\
7453    \x06\x04\x12\x04\0\x02\x02\x12\x04\x84\x07\x04\"\x1a\x20\x20Use\x20Googl\
7454    e\x20default\x20encryption.\n\n\x0f\n\x07\x04\x12\x04\0\x02\x02\x01\x12\
7455    \x04\x84\x07\x04\x1d\n\x0f\n\x07\x04\x12\x04\0\x02\x02\x02\x12\x04\x84\
7456    \x07\x20!\ny\n\x06\x04\x12\x04\0\x02\x03\x12\x04\x88\x07\x04$\x1ai\x20Us\
7457    e\x20customer\x20managed\x20encryption.\x20If\x20specified,\x20`kms_key_\
7458    name`\x20must\n\x20must\x20contain\x20a\x20valid\x20Cloud\x20KMS\x20key.\
7459    \n\n\x0f\n\x07\x04\x12\x04\0\x02\x03\x01\x12\x04\x88\x07\x04\x1f\n\x0f\n\
7460    \x07\x04\x12\x04\0\x02\x03\x02\x12\x04\x88\x07\"#\nG\n\x04\x04\x12\x02\0\
7461    \x12\x04\x8c\x07\x02N\x1a9\x20Required.\x20The\x20encryption\x20type\x20\
7462    of\x20the\x20restored\x20database.\n\n\r\n\x05\x04\x12\x02\0\x06\x12\x04\
7463    \x8c\x07\x02\x10\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\x8c\x07\x11\x20\n\r\
7464    \n\x05\x04\x12\x02\0\x03\x12\x04\x8c\x07#$\n\r\n\x05\x04\x12\x02\0\x08\
7465    \x12\x04\x8c\x07%M\n\x10\n\x08\x04\x12\x02\0\x08\x9c\x08\0\x12\x04\x8c\
7466    \x07&L\n\x87\x03\n\x04\x04\x12\x02\x01\x12\x06\x93\x07\x02\x98\x07\x04\
7467    \x1a\xf6\x02\x20Optional.\x20The\x20Cloud\x20KMS\x20key\x20that\x20will\
7468    \x20be\x20used\x20to\x20encrypt/decrypt\x20the\x20restored\n\x20database\
7469    .\x20This\x20field\x20should\x20be\x20set\x20only\x20when\n\x20[encrypti\
7470    on_type][google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfi\
7471    g.encryption_type]\x20is\n\x20`CUSTOMER_MANAGED_ENCRYPTION`.\x20Values\
7472    \x20are\x20of\x20the\x20form\n\x20`projects/<project>/locations/<locatio\
7473    n>/keyRings/<key_ring>/cryptoKeys/<kms_key_name>`.\n\n\r\n\x05\x04\x12\
7474    \x02\x01\x05\x12\x04\x93\x07\x02\x08\n\r\n\x05\x04\x12\x02\x01\x01\x12\
7475    \x04\x93\x07\t\x15\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\x93\x07\x18\x19\
7476    \n\x0f\n\x05\x04\x12\x02\x01\x08\x12\x06\x93\x07\x1a\x98\x07\x03\n\x10\n\
7477    \x08\x04\x12\x02\x01\x08\x9c\x08\0\x12\x04\x94\x07\x04*\n\x11\n\x07\x04\
7478    \x12\x02\x01\x08\x9f\x08\x12\x06\x95\x07\x04\x97\x07\x05\n\x9d\x01\n\x02\
7479    \x04\x13\x12\x06\x9d\x07\0\xcb\x07\x01\x1a\x8e\x01\x20Metadata\x20type\
7480    \x20for\x20the\x20long-running\x20operation\x20returned\x20by\n\x20[Rest\
7481    oreDatabase][google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatab\
7482    ase].\n\n\x0b\n\x03\x04\x13\x01\x12\x04\x9d\x07\x08\x1f\nE\n\x04\x04\x13\
7483    \x02\0\x12\x06\x9f\x07\x02\xa1\x07\x16\x1a5\x20Name\x20of\x20the\x20data\
7484    base\x20being\x20created\x20and\x20restored\x20to.\n\n\r\n\x05\x04\x13\
7485    \x02\0\x05\x12\x04\x9f\x07\x02\x08\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\
7486    \x9f\x07\t\r\n\r\n\x05\x04\x13\x02\0\x03\x12\x04\x9f\x07\x10\x11\n\x0f\n\
7487    \x05\x04\x13\x02\0\x08\x12\x06\x9f\x07\x12\xa1\x07\x15\n\x11\n\x07\x04\
7488    \x13\x02\0\x08\x9f\x08\x12\x06\x9f\x07\x13\xa1\x07\x14\n/\n\x04\x04\x13\
7489    \x02\x01\x12\x04\xa4\x07\x02$\x1a!\x20The\x20type\x20of\x20the\x20restor\
7490    e\x20source.\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\xa4\x07\x02\x13\n\r\
7491    \n\x05\x04\x13\x02\x01\x01\x12\x04\xa4\x07\x14\x1f\n\r\n\x05\x04\x13\x02\
7492    \x01\x03\x12\x04\xa4\x07\"#\n\xbd\x01\n\x04\x04\x13\x08\0\x12\x06\xa8\
7493    \x07\x02\xab\x07\x03\x1a\xac\x01\x20Information\x20about\x20the\x20sourc\
7494    e\x20used\x20to\x20restore\x20the\x20database,\x20as\x20specified\x20by\
7495    \n\x20`source`\x20in\x20[RestoreDatabaseRequest][google.spanner.admin.da\
7496    tabase.v1.RestoreDatabaseRequest].\n\n\r\n\x05\x04\x13\x08\0\x01\x12\x04\
7497    \xa8\x07\x08\x13\nJ\n\x04\x04\x13\x02\x02\x12\x04\xaa\x07\x04\x1f\x1a<\
7498    \x20Information\x20about\x20the\x20backup\x20used\x20to\x20restore\x20th\
7499    e\x20database.\n\n\r\n\x05\x04\x13\x02\x02\x06\x12\x04\xaa\x07\x04\x0e\n\
7500    \r\n\x05\x04\x13\x02\x02\x01\x12\x04\xaa\x07\x0f\x1a\n\r\n\x05\x04\x13\
7501    \x02\x02\x03\x12\x04\xaa\x07\x1d\x1e\n\x82\x01\n\x04\x04\x13\x02\x03\x12\
7502    \x04\xb0\x07\x02!\x1at\x20The\x20progress\x20of\x20the\n\x20[RestoreData\
7503    base][google.spanner.admin.database.v1.DatabaseAdmin.RestoreDatabase]\n\
7504    \x20operation.\n\n\r\n\x05\x04\x13\x02\x03\x06\x12\x04\xb0\x07\x02\x13\n\
7505    \r\n\x05\x04\x13\x02\x03\x01\x12\x04\xb0\x07\x14\x1c\n\r\n\x05\x04\x13\
7506    \x02\x03\x03\x12\x04\xb0\x07\x1f\x20\n\x86\x06\n\x04\x04\x13\x02\x04\x12\
7507    \x04\xbd\x07\x02,\x1a\xf7\x05\x20The\x20time\x20at\x20which\x20cancellat\
7508    ion\x20of\x20this\x20operation\x20was\x20received.\n\x20[Operations.Canc\
7509    elOperation][google.longrunning.Operations.CancelOperation]\n\x20starts\
7510    \x20asynchronous\x20cancellation\x20on\x20a\x20long-running\x20operation\
7511    .\x20The\x20server\n\x20makes\x20a\x20best\x20effort\x20to\x20cancel\x20\
7512    the\x20operation,\x20but\x20success\x20is\x20not\x20guaranteed.\n\x20Cli\
7513    ents\x20can\x20use\n\x20[Operations.GetOperation][google.longrunning.Ope\
7514    rations.GetOperation]\x20or\n\x20other\x20methods\x20to\x20check\x20whet\
7515    her\x20the\x20cancellation\x20succeeded\x20or\x20whether\x20the\n\x20ope\
7516    ration\x20completed\x20despite\x20cancellation.\x20On\x20successful\x20c\
7517    ancellation,\n\x20the\x20operation\x20is\x20not\x20deleted;\x20instead,\
7518    \x20it\x20becomes\x20an\x20operation\x20with\n\x20an\x20[Operation.error\
7519    ][google.longrunning.Operation.error]\x20value\x20with\x20a\n\x20[google\
7520    .rpc.Status.code][google.rpc.Status.code]\x20of\x201,\x20corresponding\
7521    \x20to\x20`Code.CANCELLED`.\n\n\r\n\x05\x04\x13\x02\x04\x06\x12\x04\xbd\
7522    \x07\x02\x1b\n\r\n\x05\x04\x13\x02\x04\x01\x12\x04\xbd\x07\x1c'\n\r\n\
7523    \x05\x04\x13\x02\x04\x03\x12\x04\xbd\x07*+\n\xa0\x06\n\x04\x04\x13\x02\
7524    \x05\x12\x04\xca\x07\x02.\x1a\x91\x06\x20If\x20exists,\x20the\x20name\
7525    \x20of\x20the\x20long-running\x20operation\x20that\x20will\x20be\x20used\
7526    \x20to\n\x20track\x20the\x20post-restore\x20optimization\x20process\x20t\
7527    o\x20optimize\x20the\x20performance\x20of\n\x20the\x20restored\x20databa\
7528    se,\x20and\x20remove\x20the\x20dependency\x20on\x20the\x20restore\x20sou\
7529    rce.\n\x20The\x20name\x20is\x20of\x20the\x20form\n\x20`projects/<project\
7530    >/instances/<instance>/databases/<database>/operations/<operation>`\n\
7531    \x20where\x20the\x20<database>\x20is\x20the\x20name\x20of\x20database\
7532    \x20being\x20created\x20and\x20restored\x20to.\n\x20The\x20metadata\x20t\
7533    ype\x20of\x20the\x20\x20long-running\x20operation\x20is\n\x20[OptimizeRe\
7534    storedDatabaseMetadata][google.spanner.admin.database.v1.OptimizeRestore\
7535    dDatabaseMetadata].\x20This\x20long-running\x20operation\x20will\x20be\n\
7536    \x20automatically\x20created\x20by\x20the\x20system\x20after\x20the\x20R\
7537    estoreDatabase\x20long-running\n\x20operation\x20completes\x20successful\
7538    ly.\x20This\x20operation\x20will\x20not\x20be\x20created\x20if\x20the\n\
7539    \x20restore\x20was\x20not\x20successful.\n\n\r\n\x05\x04\x13\x02\x05\x05\
7540    \x12\x04\xca\x07\x02\x08\n\r\n\x05\x04\x13\x02\x05\x01\x12\x04\xca\x07\t\
7541    )\n\r\n\x05\x04\x13\x02\x05\x03\x12\x04\xca\x07,-\n\xa7\x02\n\x02\x04\
7542    \x14\x12\x06\xd1\x07\0\xd9\x07\x01\x1a\x98\x02\x20Metadata\x20type\x20fo\
7543    r\x20the\x20long-running\x20operation\x20used\x20to\x20track\x20the\x20p\
7544    rogress\n\x20of\x20optimizations\x20performed\x20on\x20a\x20newly\x20res\
7545    tored\x20database.\x20This\x20long-running\n\x20operation\x20is\x20autom\
7546    atically\x20created\x20by\x20the\x20system\x20after\x20the\x20successful\
7547    \n\x20completion\x20of\x20a\x20database\x20restore,\x20and\x20cannot\x20\
7548    be\x20cancelled.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\xd1\x07\x08(\n@\n\x04\
7549    \x04\x14\x02\0\x12\x06\xd3\x07\x02\xd5\x07\x16\x1a0\x20Name\x20of\x20the\
7550    \x20restored\x20database\x20being\x20optimized.\n\n\r\n\x05\x04\x14\x02\
7551    \0\x05\x12\x04\xd3\x07\x02\x08\n\r\n\x05\x04\x14\x02\0\x01\x12\x04\xd3\
7552    \x07\t\r\n\r\n\x05\x04\x14\x02\0\x03\x12\x04\xd3\x07\x10\x11\n\x0f\n\x05\
7553    \x04\x14\x02\0\x08\x12\x06\xd3\x07\x12\xd5\x07\x15\n\x11\n\x07\x04\x14\
7554    \x02\0\x08\x9f\x08\x12\x06\xd3\x07\x13\xd5\x07\x14\n?\n\x04\x04\x14\x02\
7555    \x01\x12\x04\xd8\x07\x02!\x1a1\x20The\x20progress\x20of\x20the\x20post-r\
7556    estore\x20optimizations.\n\n\r\n\x05\x04\x14\x02\x01\x06\x12\x04\xd8\x07\
7557    \x02\x13\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xd8\x07\x14\x1c\n\r\n\x05\
7558    \x04\x14\x02\x01\x03\x12\x04\xd8\x07\x1f\x20\n9\n\x02\x05\0\x12\x06\xdc\
7559    \x07\0\xe2\x07\x01\x1a+\x20Indicates\x20the\x20type\x20of\x20the\x20rest\
7560    ore\x20source.\n\n\x0b\n\x03\x05\0\x01\x12\x04\xdc\x07\x05\x16\n&\n\x04\
7561    \x05\0\x02\0\x12\x04\xde\x07\x02\x17\x1a\x18\x20No\x20restore\x20associa\
7562    ted.\n\n\r\n\x05\x05\0\x02\0\x01\x12\x04\xde\x07\x02\x12\n\r\n\x05\x05\0\
7563    \x02\0\x02\x12\x04\xde\x07\x15\x16\n?\n\x04\x05\0\x02\x01\x12\x04\xe1\
7564    \x07\x02\r\x1a1\x20A\x20backup\x20was\x20used\x20as\x20the\x20source\x20\
7565    of\x20the\x20restore.\n\n\r\n\x05\x05\0\x02\x01\x01\x12\x04\xe1\x07\x02\
7566    \x08\n\r\n\x05\x05\0\x02\x01\x02\x12\x04\xe1\x07\x0b\x0c\n.\n\x02\x04\
7567    \x15\x12\x06\xe5\x07\0\xf1\x07\x01\x1a\x20\x20A\x20Cloud\x20Spanner\x20d\
7568    atabase\x20role.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xe5\x07\x08\x14\n\r\n\
7569    \x03\x04\x15\x07\x12\x06\xe6\x07\x02\xe9\x07\x04\n\x0f\n\x05\x04\x15\x07\
7570    \x9d\x08\x12\x06\xe6\x07\x02\xe9\x07\x04\n\xc1\x02\n\x04\x04\x15\x02\0\
7571    \x12\x04\xf0\x07\x02;\x1a\xb2\x02\x20Required.\x20The\x20name\x20of\x20t\
7572    he\x20database\x20role.\x20Values\x20are\x20of\x20the\x20form\n\x20`proj\
7573    ects/<project>/instances/<instance>/databases/<database>/databaseRoles/\
7574    \n\x20{role}`,\x20where\x20`<role>`\x20is\x20as\x20specified\x20in\x20th\
7575    e\x20`CREATE\x20ROLE`\n\x20DDL\x20statement.\x20This\x20name\x20can\x20b\
7576    e\x20passed\x20to\x20Get/Set\x20IAMPolicy\x20methods\x20to\n\x20identify\
7577    \x20the\x20database\x20role.\n\n\r\n\x05\x04\x15\x02\0\x05\x12\x04\xf0\
7578    \x07\x02\x08\n\r\n\x05\x04\x15\x02\0\x01\x12\x04\xf0\x07\t\r\n\r\n\x05\
7579    \x04\x15\x02\0\x03\x12\x04\xf0\x07\x10\x11\n\r\n\x05\x04\x15\x02\0\x08\
7580    \x12\x04\xf0\x07\x12:\n\x10\n\x08\x04\x15\x02\0\x08\x9c\x08\0\x12\x04\
7581    \xf0\x07\x139\nv\n\x02\x04\x16\x12\x06\xf4\x07\0\x87\x08\x01\x1ah\x20The\
7582    \x20request\x20for\x20[ListDatabaseRoles][google.spanner.admin.database.\
7583    v1.DatabaseAdmin.ListDatabaseRoles].\n\n\x0b\n\x03\x04\x16\x01\x12\x04\
7584    \xf4\x07\x08\x20\n\xae\x01\n\x04\x04\x16\x02\0\x12\x06\xf8\x07\x02\xfd\
7585    \x07\x04\x1a\x9d\x01\x20Required.\x20The\x20database\x20whose\x20roles\
7586    \x20should\x20be\x20listed.\n\x20Values\x20are\x20of\x20the\x20form\n\
7587    \x20`projects/<project>/instances/<instance>/databases/<database>/databa\
7588    seRoles`.\n\n\r\n\x05\x04\x16\x02\0\x05\x12\x04\xf8\x07\x02\x08\n\r\n\
7589    \x05\x04\x16\x02\0\x01\x12\x04\xf8\x07\t\x0f\n\r\n\x05\x04\x16\x02\0\x03\
7590    \x12\x04\xf8\x07\x12\x13\n\x0f\n\x05\x04\x16\x02\0\x08\x12\x06\xf8\x07\
7591    \x14\xfd\x07\x03\n\x10\n\x08\x04\x16\x02\0\x08\x9c\x08\0\x12\x04\xf9\x07\
7592    \x04*\n\x11\n\x07\x04\x16\x02\0\x08\x9f\x08\x12\x06\xfa\x07\x04\xfc\x07\
7593    \x05\n\x8b\x01\n\x04\x04\x16\x02\x01\x12\x04\x81\x08\x02\x16\x1a}\x20Num\
7594    ber\x20of\x20database\x20roles\x20to\x20be\x20returned\x20in\x20the\x20r\
7595    esponse.\x20If\x200\x20or\x20less,\n\x20defaults\x20to\x20the\x20server'\
7596    s\x20maximum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\x16\x02\x01\x05\
7597    \x12\x04\x81\x08\x02\x07\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\x81\x08\
7598    \x08\x11\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\x81\x08\x14\x15\n\x85\x02\
7599    \n\x04\x04\x16\x02\x02\x12\x04\x86\x08\x02\x18\x1a\xf6\x01\x20If\x20non-\
7600    empty,\x20`page_token`\x20should\x20contain\x20a\n\x20[next_page_token][\
7601    google.spanner.admin.database.v1.ListDatabaseRolesResponse.next_page_tok\
7602    en]\x20from\x20a\n\x20previous\x20[ListDatabaseRolesResponse][google.spa\
7603    nner.admin.database.v1.ListDatabaseRolesResponse].\n\n\r\n\x05\x04\x16\
7604    \x02\x02\x05\x12\x04\x86\x08\x02\x08\n\r\n\x05\x04\x16\x02\x02\x01\x12\
7605    \x04\x86\x08\t\x13\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\x86\x08\x16\x17\
7606    \nw\n\x02\x04\x17\x12\x06\x8a\x08\0\x92\x08\x01\x1ai\x20The\x20response\
7607    \x20for\x20[ListDatabaseRoles][google.spanner.admin.database.v1.Database\
7608    Admin.ListDatabaseRoles].\n\n\x0b\n\x03\x04\x17\x01\x12\x04\x8a\x08\x08!\
7609    \n8\n\x04\x04\x17\x02\0\x12\x04\x8c\x08\x02+\x1a*\x20Database\x20roles\
7610    \x20that\x20matched\x20the\x20request.\n\n\r\n\x05\x04\x17\x02\0\x04\x12\
7611    \x04\x8c\x08\x02\n\n\r\n\x05\x04\x17\x02\0\x06\x12\x04\x8c\x08\x0b\x17\n\
7612    \r\n\x05\x04\x17\x02\0\x01\x12\x04\x8c\x08\x18&\n\r\n\x05\x04\x17\x02\0\
7613    \x03\x12\x04\x8c\x08)*\n\xc0\x01\n\x04\x04\x17\x02\x01\x12\x04\x91\x08\
7614    \x02\x1d\x1a\xb1\x01\x20`next_page_token`\x20can\x20be\x20sent\x20in\x20\
7615    a\x20subsequent\n\x20[ListDatabaseRoles][google.spanner.admin.database.v\
7616    1.DatabaseAdmin.ListDatabaseRoles]\n\x20call\x20to\x20fetch\x20more\x20o\
7617    f\x20the\x20matching\x20roles.\n\n\r\n\x05\x04\x17\x02\x01\x05\x12\x04\
7618    \x91\x08\x02\x08\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\x91\x08\t\x18\n\r\
7619    \n\x05\x04\x17\x02\x01\x03\x12\x04\x91\x08\x1b\x1cb\x06proto3\
7620";
7621
7622static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
7623
7624fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
7625    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
7626}
7627
7628pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
7629    file_descriptor_proto_lazy.get(|| {
7630        parse_descriptor_proto()
7631    })
7632}