google_cloud_rust_raw/spanner/admin/instance/v1/
spanner_instance_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/instance/v1/spanner_instance_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 ReplicaInfo {
28    // message fields
29    pub location: ::std::string::String,
30    pub field_type: ReplicaInfo_ReplicaType,
31    pub default_leader_location: bool,
32    // special fields
33    pub unknown_fields: ::protobuf::UnknownFields,
34    pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a ReplicaInfo {
38    fn default() -> &'a ReplicaInfo {
39        <ReplicaInfo as ::protobuf::Message>::default_instance()
40    }
41}
42
43impl ReplicaInfo {
44    pub fn new() -> ReplicaInfo {
45        ::std::default::Default::default()
46    }
47
48    // string location = 1;
49
50
51    pub fn get_location(&self) -> &str {
52        &self.location
53    }
54    pub fn clear_location(&mut self) {
55        self.location.clear();
56    }
57
58    // Param is passed by value, moved
59    pub fn set_location(&mut self, v: ::std::string::String) {
60        self.location = v;
61    }
62
63    // Mutable pointer to the field.
64    // If field is not initialized, it is initialized with default value first.
65    pub fn mut_location(&mut self) -> &mut ::std::string::String {
66        &mut self.location
67    }
68
69    // Take field
70    pub fn take_location(&mut self) -> ::std::string::String {
71        ::std::mem::replace(&mut self.location, ::std::string::String::new())
72    }
73
74    // .google.spanner.admin.instance.v1.ReplicaInfo.ReplicaType type = 2;
75
76
77    pub fn get_field_type(&self) -> ReplicaInfo_ReplicaType {
78        self.field_type
79    }
80    pub fn clear_field_type(&mut self) {
81        self.field_type = ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED;
82    }
83
84    // Param is passed by value, moved
85    pub fn set_field_type(&mut self, v: ReplicaInfo_ReplicaType) {
86        self.field_type = v;
87    }
88
89    // bool default_leader_location = 3;
90
91
92    pub fn get_default_leader_location(&self) -> bool {
93        self.default_leader_location
94    }
95    pub fn clear_default_leader_location(&mut self) {
96        self.default_leader_location = false;
97    }
98
99    // Param is passed by value, moved
100    pub fn set_default_leader_location(&mut self, v: bool) {
101        self.default_leader_location = v;
102    }
103}
104
105impl ::protobuf::Message for ReplicaInfo {
106    fn is_initialized(&self) -> bool {
107        true
108    }
109
110    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
111        while !is.eof()? {
112            let (field_number, wire_type) = is.read_tag_unpack()?;
113            match field_number {
114                1 => {
115                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.location)?;
116                },
117                2 => {
118                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.field_type, 2, &mut self.unknown_fields)?
119                },
120                3 => {
121                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
122                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
123                    }
124                    let tmp = is.read_bool()?;
125                    self.default_leader_location = tmp;
126                },
127                _ => {
128                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
129                },
130            };
131        }
132        ::std::result::Result::Ok(())
133    }
134
135    // Compute sizes of nested messages
136    #[allow(unused_variables)]
137    fn compute_size(&self) -> u32 {
138        let mut my_size = 0;
139        if !self.location.is_empty() {
140            my_size += ::protobuf::rt::string_size(1, &self.location);
141        }
142        if self.field_type != ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED {
143            my_size += ::protobuf::rt::enum_size(2, self.field_type);
144        }
145        if self.default_leader_location != false {
146            my_size += 2;
147        }
148        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
149        self.cached_size.set(my_size);
150        my_size
151    }
152
153    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
154        if !self.location.is_empty() {
155            os.write_string(1, &self.location)?;
156        }
157        if self.field_type != ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED {
158            os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.field_type))?;
159        }
160        if self.default_leader_location != false {
161            os.write_bool(3, self.default_leader_location)?;
162        }
163        os.write_unknown_fields(self.get_unknown_fields())?;
164        ::std::result::Result::Ok(())
165    }
166
167    fn get_cached_size(&self) -> u32 {
168        self.cached_size.get()
169    }
170
171    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
172        &self.unknown_fields
173    }
174
175    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
176        &mut self.unknown_fields
177    }
178
179    fn as_any(&self) -> &dyn (::std::any::Any) {
180        self as &dyn (::std::any::Any)
181    }
182    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
183        self as &mut dyn (::std::any::Any)
184    }
185    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
186        self
187    }
188
189    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
190        Self::descriptor_static()
191    }
192
193    fn new() -> ReplicaInfo {
194        ReplicaInfo::new()
195    }
196
197    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
198        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
199        descriptor.get(|| {
200            let mut fields = ::std::vec::Vec::new();
201            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
202                "location",
203                |m: &ReplicaInfo| { &m.location },
204                |m: &mut ReplicaInfo| { &mut m.location },
205            ));
206            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ReplicaInfo_ReplicaType>>(
207                "type",
208                |m: &ReplicaInfo| { &m.field_type },
209                |m: &mut ReplicaInfo| { &mut m.field_type },
210            ));
211            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
212                "default_leader_location",
213                |m: &ReplicaInfo| { &m.default_leader_location },
214                |m: &mut ReplicaInfo| { &mut m.default_leader_location },
215            ));
216            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ReplicaInfo>(
217                "ReplicaInfo",
218                fields,
219                file_descriptor_proto()
220            )
221        })
222    }
223
224    fn default_instance() -> &'static ReplicaInfo {
225        static instance: ::protobuf::rt::LazyV2<ReplicaInfo> = ::protobuf::rt::LazyV2::INIT;
226        instance.get(ReplicaInfo::new)
227    }
228}
229
230impl ::protobuf::Clear for ReplicaInfo {
231    fn clear(&mut self) {
232        self.location.clear();
233        self.field_type = ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED;
234        self.default_leader_location = false;
235        self.unknown_fields.clear();
236    }
237}
238
239impl ::std::fmt::Debug for ReplicaInfo {
240    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
241        ::protobuf::text_format::fmt(self, f)
242    }
243}
244
245impl ::protobuf::reflect::ProtobufValue for ReplicaInfo {
246    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
247        ::protobuf::reflect::ReflectValueRef::Message(self)
248    }
249}
250
251#[derive(Clone,PartialEq,Eq,Debug,Hash)]
252pub enum ReplicaInfo_ReplicaType {
253    TYPE_UNSPECIFIED = 0,
254    READ_WRITE = 1,
255    READ_ONLY = 2,
256    WITNESS = 3,
257}
258
259impl ::protobuf::ProtobufEnum for ReplicaInfo_ReplicaType {
260    fn value(&self) -> i32 {
261        *self as i32
262    }
263
264    fn from_i32(value: i32) -> ::std::option::Option<ReplicaInfo_ReplicaType> {
265        match value {
266            0 => ::std::option::Option::Some(ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED),
267            1 => ::std::option::Option::Some(ReplicaInfo_ReplicaType::READ_WRITE),
268            2 => ::std::option::Option::Some(ReplicaInfo_ReplicaType::READ_ONLY),
269            3 => ::std::option::Option::Some(ReplicaInfo_ReplicaType::WITNESS),
270            _ => ::std::option::Option::None
271        }
272    }
273
274    fn values() -> &'static [Self] {
275        static values: &'static [ReplicaInfo_ReplicaType] = &[
276            ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED,
277            ReplicaInfo_ReplicaType::READ_WRITE,
278            ReplicaInfo_ReplicaType::READ_ONLY,
279            ReplicaInfo_ReplicaType::WITNESS,
280        ];
281        values
282    }
283
284    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
285        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
286        descriptor.get(|| {
287            ::protobuf::reflect::EnumDescriptor::new_pb_name::<ReplicaInfo_ReplicaType>("ReplicaInfo.ReplicaType", file_descriptor_proto())
288        })
289    }
290}
291
292impl ::std::marker::Copy for ReplicaInfo_ReplicaType {
293}
294
295impl ::std::default::Default for ReplicaInfo_ReplicaType {
296    fn default() -> Self {
297        ReplicaInfo_ReplicaType::TYPE_UNSPECIFIED
298    }
299}
300
301impl ::protobuf::reflect::ProtobufValue for ReplicaInfo_ReplicaType {
302    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
303        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
304    }
305}
306
307#[derive(PartialEq,Clone,Default)]
308pub struct InstanceConfig {
309    // message fields
310    pub name: ::std::string::String,
311    pub display_name: ::std::string::String,
312    pub config_type: InstanceConfig_Type,
313    pub replicas: ::protobuf::RepeatedField<ReplicaInfo>,
314    pub optional_replicas: ::protobuf::RepeatedField<ReplicaInfo>,
315    pub base_config: ::std::string::String,
316    pub labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
317    pub etag: ::std::string::String,
318    pub leader_options: ::protobuf::RepeatedField<::std::string::String>,
319    pub reconciling: bool,
320    pub state: InstanceConfig_State,
321    // special fields
322    pub unknown_fields: ::protobuf::UnknownFields,
323    pub cached_size: ::protobuf::CachedSize,
324}
325
326impl<'a> ::std::default::Default for &'a InstanceConfig {
327    fn default() -> &'a InstanceConfig {
328        <InstanceConfig as ::protobuf::Message>::default_instance()
329    }
330}
331
332impl InstanceConfig {
333    pub fn new() -> InstanceConfig {
334        ::std::default::Default::default()
335    }
336
337    // string name = 1;
338
339
340    pub fn get_name(&self) -> &str {
341        &self.name
342    }
343    pub fn clear_name(&mut self) {
344        self.name.clear();
345    }
346
347    // Param is passed by value, moved
348    pub fn set_name(&mut self, v: ::std::string::String) {
349        self.name = v;
350    }
351
352    // Mutable pointer to the field.
353    // If field is not initialized, it is initialized with default value first.
354    pub fn mut_name(&mut self) -> &mut ::std::string::String {
355        &mut self.name
356    }
357
358    // Take field
359    pub fn take_name(&mut self) -> ::std::string::String {
360        ::std::mem::replace(&mut self.name, ::std::string::String::new())
361    }
362
363    // string display_name = 2;
364
365
366    pub fn get_display_name(&self) -> &str {
367        &self.display_name
368    }
369    pub fn clear_display_name(&mut self) {
370        self.display_name.clear();
371    }
372
373    // Param is passed by value, moved
374    pub fn set_display_name(&mut self, v: ::std::string::String) {
375        self.display_name = v;
376    }
377
378    // Mutable pointer to the field.
379    // If field is not initialized, it is initialized with default value first.
380    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
381        &mut self.display_name
382    }
383
384    // Take field
385    pub fn take_display_name(&mut self) -> ::std::string::String {
386        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
387    }
388
389    // .google.spanner.admin.instance.v1.InstanceConfig.Type config_type = 5;
390
391
392    pub fn get_config_type(&self) -> InstanceConfig_Type {
393        self.config_type
394    }
395    pub fn clear_config_type(&mut self) {
396        self.config_type = InstanceConfig_Type::TYPE_UNSPECIFIED;
397    }
398
399    // Param is passed by value, moved
400    pub fn set_config_type(&mut self, v: InstanceConfig_Type) {
401        self.config_type = v;
402    }
403
404    // repeated .google.spanner.admin.instance.v1.ReplicaInfo replicas = 3;
405
406
407    pub fn get_replicas(&self) -> &[ReplicaInfo] {
408        &self.replicas
409    }
410    pub fn clear_replicas(&mut self) {
411        self.replicas.clear();
412    }
413
414    // Param is passed by value, moved
415    pub fn set_replicas(&mut self, v: ::protobuf::RepeatedField<ReplicaInfo>) {
416        self.replicas = v;
417    }
418
419    // Mutable pointer to the field.
420    pub fn mut_replicas(&mut self) -> &mut ::protobuf::RepeatedField<ReplicaInfo> {
421        &mut self.replicas
422    }
423
424    // Take field
425    pub fn take_replicas(&mut self) -> ::protobuf::RepeatedField<ReplicaInfo> {
426        ::std::mem::replace(&mut self.replicas, ::protobuf::RepeatedField::new())
427    }
428
429    // repeated .google.spanner.admin.instance.v1.ReplicaInfo optional_replicas = 6;
430
431
432    pub fn get_optional_replicas(&self) -> &[ReplicaInfo] {
433        &self.optional_replicas
434    }
435    pub fn clear_optional_replicas(&mut self) {
436        self.optional_replicas.clear();
437    }
438
439    // Param is passed by value, moved
440    pub fn set_optional_replicas(&mut self, v: ::protobuf::RepeatedField<ReplicaInfo>) {
441        self.optional_replicas = v;
442    }
443
444    // Mutable pointer to the field.
445    pub fn mut_optional_replicas(&mut self) -> &mut ::protobuf::RepeatedField<ReplicaInfo> {
446        &mut self.optional_replicas
447    }
448
449    // Take field
450    pub fn take_optional_replicas(&mut self) -> ::protobuf::RepeatedField<ReplicaInfo> {
451        ::std::mem::replace(&mut self.optional_replicas, ::protobuf::RepeatedField::new())
452    }
453
454    // string base_config = 7;
455
456
457    pub fn get_base_config(&self) -> &str {
458        &self.base_config
459    }
460    pub fn clear_base_config(&mut self) {
461        self.base_config.clear();
462    }
463
464    // Param is passed by value, moved
465    pub fn set_base_config(&mut self, v: ::std::string::String) {
466        self.base_config = v;
467    }
468
469    // Mutable pointer to the field.
470    // If field is not initialized, it is initialized with default value first.
471    pub fn mut_base_config(&mut self) -> &mut ::std::string::String {
472        &mut self.base_config
473    }
474
475    // Take field
476    pub fn take_base_config(&mut self) -> ::std::string::String {
477        ::std::mem::replace(&mut self.base_config, ::std::string::String::new())
478    }
479
480    // repeated .google.spanner.admin.instance.v1.InstanceConfig.LabelsEntry labels = 8;
481
482
483    pub fn get_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
484        &self.labels
485    }
486    pub fn clear_labels(&mut self) {
487        self.labels.clear();
488    }
489
490    // Param is passed by value, moved
491    pub fn set_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
492        self.labels = v;
493    }
494
495    // Mutable pointer to the field.
496    pub fn mut_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
497        &mut self.labels
498    }
499
500    // Take field
501    pub fn take_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
502        ::std::mem::replace(&mut self.labels, ::std::collections::HashMap::new())
503    }
504
505    // string etag = 9;
506
507
508    pub fn get_etag(&self) -> &str {
509        &self.etag
510    }
511    pub fn clear_etag(&mut self) {
512        self.etag.clear();
513    }
514
515    // Param is passed by value, moved
516    pub fn set_etag(&mut self, v: ::std::string::String) {
517        self.etag = v;
518    }
519
520    // Mutable pointer to the field.
521    // If field is not initialized, it is initialized with default value first.
522    pub fn mut_etag(&mut self) -> &mut ::std::string::String {
523        &mut self.etag
524    }
525
526    // Take field
527    pub fn take_etag(&mut self) -> ::std::string::String {
528        ::std::mem::replace(&mut self.etag, ::std::string::String::new())
529    }
530
531    // repeated string leader_options = 4;
532
533
534    pub fn get_leader_options(&self) -> &[::std::string::String] {
535        &self.leader_options
536    }
537    pub fn clear_leader_options(&mut self) {
538        self.leader_options.clear();
539    }
540
541    // Param is passed by value, moved
542    pub fn set_leader_options(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
543        self.leader_options = v;
544    }
545
546    // Mutable pointer to the field.
547    pub fn mut_leader_options(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
548        &mut self.leader_options
549    }
550
551    // Take field
552    pub fn take_leader_options(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
553        ::std::mem::replace(&mut self.leader_options, ::protobuf::RepeatedField::new())
554    }
555
556    // bool reconciling = 10;
557
558
559    pub fn get_reconciling(&self) -> bool {
560        self.reconciling
561    }
562    pub fn clear_reconciling(&mut self) {
563        self.reconciling = false;
564    }
565
566    // Param is passed by value, moved
567    pub fn set_reconciling(&mut self, v: bool) {
568        self.reconciling = v;
569    }
570
571    // .google.spanner.admin.instance.v1.InstanceConfig.State state = 11;
572
573
574    pub fn get_state(&self) -> InstanceConfig_State {
575        self.state
576    }
577    pub fn clear_state(&mut self) {
578        self.state = InstanceConfig_State::STATE_UNSPECIFIED;
579    }
580
581    // Param is passed by value, moved
582    pub fn set_state(&mut self, v: InstanceConfig_State) {
583        self.state = v;
584    }
585}
586
587impl ::protobuf::Message for InstanceConfig {
588    fn is_initialized(&self) -> bool {
589        for v in &self.replicas {
590            if !v.is_initialized() {
591                return false;
592            }
593        };
594        for v in &self.optional_replicas {
595            if !v.is_initialized() {
596                return false;
597            }
598        };
599        true
600    }
601
602    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
603        while !is.eof()? {
604            let (field_number, wire_type) = is.read_tag_unpack()?;
605            match field_number {
606                1 => {
607                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
608                },
609                2 => {
610                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
611                },
612                5 => {
613                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.config_type, 5, &mut self.unknown_fields)?
614                },
615                3 => {
616                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.replicas)?;
617                },
618                6 => {
619                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.optional_replicas)?;
620                },
621                7 => {
622                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.base_config)?;
623                },
624                8 => {
625                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.labels)?;
626                },
627                9 => {
628                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.etag)?;
629                },
630                4 => {
631                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.leader_options)?;
632                },
633                10 => {
634                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
635                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
636                    }
637                    let tmp = is.read_bool()?;
638                    self.reconciling = tmp;
639                },
640                11 => {
641                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.state, 11, &mut self.unknown_fields)?
642                },
643                _ => {
644                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
645                },
646            };
647        }
648        ::std::result::Result::Ok(())
649    }
650
651    // Compute sizes of nested messages
652    #[allow(unused_variables)]
653    fn compute_size(&self) -> u32 {
654        let mut my_size = 0;
655        if !self.name.is_empty() {
656            my_size += ::protobuf::rt::string_size(1, &self.name);
657        }
658        if !self.display_name.is_empty() {
659            my_size += ::protobuf::rt::string_size(2, &self.display_name);
660        }
661        if self.config_type != InstanceConfig_Type::TYPE_UNSPECIFIED {
662            my_size += ::protobuf::rt::enum_size(5, self.config_type);
663        }
664        for value in &self.replicas {
665            let len = value.compute_size();
666            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
667        };
668        for value in &self.optional_replicas {
669            let len = value.compute_size();
670            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
671        };
672        if !self.base_config.is_empty() {
673            my_size += ::protobuf::rt::string_size(7, &self.base_config);
674        }
675        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(8, &self.labels);
676        if !self.etag.is_empty() {
677            my_size += ::protobuf::rt::string_size(9, &self.etag);
678        }
679        for value in &self.leader_options {
680            my_size += ::protobuf::rt::string_size(4, &value);
681        };
682        if self.reconciling != false {
683            my_size += 2;
684        }
685        if self.state != InstanceConfig_State::STATE_UNSPECIFIED {
686            my_size += ::protobuf::rt::enum_size(11, self.state);
687        }
688        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
689        self.cached_size.set(my_size);
690        my_size
691    }
692
693    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
694        if !self.name.is_empty() {
695            os.write_string(1, &self.name)?;
696        }
697        if !self.display_name.is_empty() {
698            os.write_string(2, &self.display_name)?;
699        }
700        if self.config_type != InstanceConfig_Type::TYPE_UNSPECIFIED {
701            os.write_enum(5, ::protobuf::ProtobufEnum::value(&self.config_type))?;
702        }
703        for v in &self.replicas {
704            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
705            os.write_raw_varint32(v.get_cached_size())?;
706            v.write_to_with_cached_sizes(os)?;
707        };
708        for v in &self.optional_replicas {
709            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
710            os.write_raw_varint32(v.get_cached_size())?;
711            v.write_to_with_cached_sizes(os)?;
712        };
713        if !self.base_config.is_empty() {
714            os.write_string(7, &self.base_config)?;
715        }
716        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(8, &self.labels, os)?;
717        if !self.etag.is_empty() {
718            os.write_string(9, &self.etag)?;
719        }
720        for v in &self.leader_options {
721            os.write_string(4, &v)?;
722        };
723        if self.reconciling != false {
724            os.write_bool(10, self.reconciling)?;
725        }
726        if self.state != InstanceConfig_State::STATE_UNSPECIFIED {
727            os.write_enum(11, ::protobuf::ProtobufEnum::value(&self.state))?;
728        }
729        os.write_unknown_fields(self.get_unknown_fields())?;
730        ::std::result::Result::Ok(())
731    }
732
733    fn get_cached_size(&self) -> u32 {
734        self.cached_size.get()
735    }
736
737    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
738        &self.unknown_fields
739    }
740
741    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
742        &mut self.unknown_fields
743    }
744
745    fn as_any(&self) -> &dyn (::std::any::Any) {
746        self as &dyn (::std::any::Any)
747    }
748    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
749        self as &mut dyn (::std::any::Any)
750    }
751    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
752        self
753    }
754
755    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
756        Self::descriptor_static()
757    }
758
759    fn new() -> InstanceConfig {
760        InstanceConfig::new()
761    }
762
763    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
764        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
765        descriptor.get(|| {
766            let mut fields = ::std::vec::Vec::new();
767            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
768                "name",
769                |m: &InstanceConfig| { &m.name },
770                |m: &mut InstanceConfig| { &mut m.name },
771            ));
772            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
773                "display_name",
774                |m: &InstanceConfig| { &m.display_name },
775                |m: &mut InstanceConfig| { &mut m.display_name },
776            ));
777            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<InstanceConfig_Type>>(
778                "config_type",
779                |m: &InstanceConfig| { &m.config_type },
780                |m: &mut InstanceConfig| { &mut m.config_type },
781            ));
782            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ReplicaInfo>>(
783                "replicas",
784                |m: &InstanceConfig| { &m.replicas },
785                |m: &mut InstanceConfig| { &mut m.replicas },
786            ));
787            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ReplicaInfo>>(
788                "optional_replicas",
789                |m: &InstanceConfig| { &m.optional_replicas },
790                |m: &mut InstanceConfig| { &mut m.optional_replicas },
791            ));
792            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
793                "base_config",
794                |m: &InstanceConfig| { &m.base_config },
795                |m: &mut InstanceConfig| { &mut m.base_config },
796            ));
797            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
798                "labels",
799                |m: &InstanceConfig| { &m.labels },
800                |m: &mut InstanceConfig| { &mut m.labels },
801            ));
802            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
803                "etag",
804                |m: &InstanceConfig| { &m.etag },
805                |m: &mut InstanceConfig| { &mut m.etag },
806            ));
807            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
808                "leader_options",
809                |m: &InstanceConfig| { &m.leader_options },
810                |m: &mut InstanceConfig| { &mut m.leader_options },
811            ));
812            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
813                "reconciling",
814                |m: &InstanceConfig| { &m.reconciling },
815                |m: &mut InstanceConfig| { &mut m.reconciling },
816            ));
817            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<InstanceConfig_State>>(
818                "state",
819                |m: &InstanceConfig| { &m.state },
820                |m: &mut InstanceConfig| { &mut m.state },
821            ));
822            ::protobuf::reflect::MessageDescriptor::new_pb_name::<InstanceConfig>(
823                "InstanceConfig",
824                fields,
825                file_descriptor_proto()
826            )
827        })
828    }
829
830    fn default_instance() -> &'static InstanceConfig {
831        static instance: ::protobuf::rt::LazyV2<InstanceConfig> = ::protobuf::rt::LazyV2::INIT;
832        instance.get(InstanceConfig::new)
833    }
834}
835
836impl ::protobuf::Clear for InstanceConfig {
837    fn clear(&mut self) {
838        self.name.clear();
839        self.display_name.clear();
840        self.config_type = InstanceConfig_Type::TYPE_UNSPECIFIED;
841        self.replicas.clear();
842        self.optional_replicas.clear();
843        self.base_config.clear();
844        self.labels.clear();
845        self.etag.clear();
846        self.leader_options.clear();
847        self.reconciling = false;
848        self.state = InstanceConfig_State::STATE_UNSPECIFIED;
849        self.unknown_fields.clear();
850    }
851}
852
853impl ::std::fmt::Debug for InstanceConfig {
854    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
855        ::protobuf::text_format::fmt(self, f)
856    }
857}
858
859impl ::protobuf::reflect::ProtobufValue for InstanceConfig {
860    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
861        ::protobuf::reflect::ReflectValueRef::Message(self)
862    }
863}
864
865#[derive(Clone,PartialEq,Eq,Debug,Hash)]
866pub enum InstanceConfig_Type {
867    TYPE_UNSPECIFIED = 0,
868    GOOGLE_MANAGED = 1,
869    USER_MANAGED = 2,
870}
871
872impl ::protobuf::ProtobufEnum for InstanceConfig_Type {
873    fn value(&self) -> i32 {
874        *self as i32
875    }
876
877    fn from_i32(value: i32) -> ::std::option::Option<InstanceConfig_Type> {
878        match value {
879            0 => ::std::option::Option::Some(InstanceConfig_Type::TYPE_UNSPECIFIED),
880            1 => ::std::option::Option::Some(InstanceConfig_Type::GOOGLE_MANAGED),
881            2 => ::std::option::Option::Some(InstanceConfig_Type::USER_MANAGED),
882            _ => ::std::option::Option::None
883        }
884    }
885
886    fn values() -> &'static [Self] {
887        static values: &'static [InstanceConfig_Type] = &[
888            InstanceConfig_Type::TYPE_UNSPECIFIED,
889            InstanceConfig_Type::GOOGLE_MANAGED,
890            InstanceConfig_Type::USER_MANAGED,
891        ];
892        values
893    }
894
895    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
896        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
897        descriptor.get(|| {
898            ::protobuf::reflect::EnumDescriptor::new_pb_name::<InstanceConfig_Type>("InstanceConfig.Type", file_descriptor_proto())
899        })
900    }
901}
902
903impl ::std::marker::Copy for InstanceConfig_Type {
904}
905
906impl ::std::default::Default for InstanceConfig_Type {
907    fn default() -> Self {
908        InstanceConfig_Type::TYPE_UNSPECIFIED
909    }
910}
911
912impl ::protobuf::reflect::ProtobufValue for InstanceConfig_Type {
913    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
914        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
915    }
916}
917
918#[derive(Clone,PartialEq,Eq,Debug,Hash)]
919pub enum InstanceConfig_State {
920    STATE_UNSPECIFIED = 0,
921    CREATING = 1,
922    READY = 2,
923}
924
925impl ::protobuf::ProtobufEnum for InstanceConfig_State {
926    fn value(&self) -> i32 {
927        *self as i32
928    }
929
930    fn from_i32(value: i32) -> ::std::option::Option<InstanceConfig_State> {
931        match value {
932            0 => ::std::option::Option::Some(InstanceConfig_State::STATE_UNSPECIFIED),
933            1 => ::std::option::Option::Some(InstanceConfig_State::CREATING),
934            2 => ::std::option::Option::Some(InstanceConfig_State::READY),
935            _ => ::std::option::Option::None
936        }
937    }
938
939    fn values() -> &'static [Self] {
940        static values: &'static [InstanceConfig_State] = &[
941            InstanceConfig_State::STATE_UNSPECIFIED,
942            InstanceConfig_State::CREATING,
943            InstanceConfig_State::READY,
944        ];
945        values
946    }
947
948    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
949        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
950        descriptor.get(|| {
951            ::protobuf::reflect::EnumDescriptor::new_pb_name::<InstanceConfig_State>("InstanceConfig.State", file_descriptor_proto())
952        })
953    }
954}
955
956impl ::std::marker::Copy for InstanceConfig_State {
957}
958
959impl ::std::default::Default for InstanceConfig_State {
960    fn default() -> Self {
961        InstanceConfig_State::STATE_UNSPECIFIED
962    }
963}
964
965impl ::protobuf::reflect::ProtobufValue for InstanceConfig_State {
966    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
967        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
968    }
969}
970
971#[derive(PartialEq,Clone,Default)]
972pub struct AutoscalingConfig {
973    // message fields
974    pub autoscaling_limits: ::protobuf::SingularPtrField<AutoscalingConfig_AutoscalingLimits>,
975    pub autoscaling_targets: ::protobuf::SingularPtrField<AutoscalingConfig_AutoscalingTargets>,
976    // special fields
977    pub unknown_fields: ::protobuf::UnknownFields,
978    pub cached_size: ::protobuf::CachedSize,
979}
980
981impl<'a> ::std::default::Default for &'a AutoscalingConfig {
982    fn default() -> &'a AutoscalingConfig {
983        <AutoscalingConfig as ::protobuf::Message>::default_instance()
984    }
985}
986
987impl AutoscalingConfig {
988    pub fn new() -> AutoscalingConfig {
989        ::std::default::Default::default()
990    }
991
992    // .google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingLimits autoscaling_limits = 1;
993
994
995    pub fn get_autoscaling_limits(&self) -> &AutoscalingConfig_AutoscalingLimits {
996        self.autoscaling_limits.as_ref().unwrap_or_else(|| <AutoscalingConfig_AutoscalingLimits as ::protobuf::Message>::default_instance())
997    }
998    pub fn clear_autoscaling_limits(&mut self) {
999        self.autoscaling_limits.clear();
1000    }
1001
1002    pub fn has_autoscaling_limits(&self) -> bool {
1003        self.autoscaling_limits.is_some()
1004    }
1005
1006    // Param is passed by value, moved
1007    pub fn set_autoscaling_limits(&mut self, v: AutoscalingConfig_AutoscalingLimits) {
1008        self.autoscaling_limits = ::protobuf::SingularPtrField::some(v);
1009    }
1010
1011    // Mutable pointer to the field.
1012    // If field is not initialized, it is initialized with default value first.
1013    pub fn mut_autoscaling_limits(&mut self) -> &mut AutoscalingConfig_AutoscalingLimits {
1014        if self.autoscaling_limits.is_none() {
1015            self.autoscaling_limits.set_default();
1016        }
1017        self.autoscaling_limits.as_mut().unwrap()
1018    }
1019
1020    // Take field
1021    pub fn take_autoscaling_limits(&mut self) -> AutoscalingConfig_AutoscalingLimits {
1022        self.autoscaling_limits.take().unwrap_or_else(|| AutoscalingConfig_AutoscalingLimits::new())
1023    }
1024
1025    // .google.spanner.admin.instance.v1.AutoscalingConfig.AutoscalingTargets autoscaling_targets = 2;
1026
1027
1028    pub fn get_autoscaling_targets(&self) -> &AutoscalingConfig_AutoscalingTargets {
1029        self.autoscaling_targets.as_ref().unwrap_or_else(|| <AutoscalingConfig_AutoscalingTargets as ::protobuf::Message>::default_instance())
1030    }
1031    pub fn clear_autoscaling_targets(&mut self) {
1032        self.autoscaling_targets.clear();
1033    }
1034
1035    pub fn has_autoscaling_targets(&self) -> bool {
1036        self.autoscaling_targets.is_some()
1037    }
1038
1039    // Param is passed by value, moved
1040    pub fn set_autoscaling_targets(&mut self, v: AutoscalingConfig_AutoscalingTargets) {
1041        self.autoscaling_targets = ::protobuf::SingularPtrField::some(v);
1042    }
1043
1044    // Mutable pointer to the field.
1045    // If field is not initialized, it is initialized with default value first.
1046    pub fn mut_autoscaling_targets(&mut self) -> &mut AutoscalingConfig_AutoscalingTargets {
1047        if self.autoscaling_targets.is_none() {
1048            self.autoscaling_targets.set_default();
1049        }
1050        self.autoscaling_targets.as_mut().unwrap()
1051    }
1052
1053    // Take field
1054    pub fn take_autoscaling_targets(&mut self) -> AutoscalingConfig_AutoscalingTargets {
1055        self.autoscaling_targets.take().unwrap_or_else(|| AutoscalingConfig_AutoscalingTargets::new())
1056    }
1057}
1058
1059impl ::protobuf::Message for AutoscalingConfig {
1060    fn is_initialized(&self) -> bool {
1061        for v in &self.autoscaling_limits {
1062            if !v.is_initialized() {
1063                return false;
1064            }
1065        };
1066        for v in &self.autoscaling_targets {
1067            if !v.is_initialized() {
1068                return false;
1069            }
1070        };
1071        true
1072    }
1073
1074    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1075        while !is.eof()? {
1076            let (field_number, wire_type) = is.read_tag_unpack()?;
1077            match field_number {
1078                1 => {
1079                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.autoscaling_limits)?;
1080                },
1081                2 => {
1082                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.autoscaling_targets)?;
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 let Some(ref v) = self.autoscaling_limits.as_ref() {
1097            let len = v.compute_size();
1098            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1099        }
1100        if let Some(ref v) = self.autoscaling_targets.as_ref() {
1101            let len = v.compute_size();
1102            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1103        }
1104        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1105        self.cached_size.set(my_size);
1106        my_size
1107    }
1108
1109    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1110        if let Some(ref v) = self.autoscaling_limits.as_ref() {
1111            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1112            os.write_raw_varint32(v.get_cached_size())?;
1113            v.write_to_with_cached_sizes(os)?;
1114        }
1115        if let Some(ref v) = self.autoscaling_targets.as_ref() {
1116            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1117            os.write_raw_varint32(v.get_cached_size())?;
1118            v.write_to_with_cached_sizes(os)?;
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() -> AutoscalingConfig {
1151        AutoscalingConfig::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_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AutoscalingConfig_AutoscalingLimits>>(
1159                "autoscaling_limits",
1160                |m: &AutoscalingConfig| { &m.autoscaling_limits },
1161                |m: &mut AutoscalingConfig| { &mut m.autoscaling_limits },
1162            ));
1163            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AutoscalingConfig_AutoscalingTargets>>(
1164                "autoscaling_targets",
1165                |m: &AutoscalingConfig| { &m.autoscaling_targets },
1166                |m: &mut AutoscalingConfig| { &mut m.autoscaling_targets },
1167            ));
1168            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AutoscalingConfig>(
1169                "AutoscalingConfig",
1170                fields,
1171                file_descriptor_proto()
1172            )
1173        })
1174    }
1175
1176    fn default_instance() -> &'static AutoscalingConfig {
1177        static instance: ::protobuf::rt::LazyV2<AutoscalingConfig> = ::protobuf::rt::LazyV2::INIT;
1178        instance.get(AutoscalingConfig::new)
1179    }
1180}
1181
1182impl ::protobuf::Clear for AutoscalingConfig {
1183    fn clear(&mut self) {
1184        self.autoscaling_limits.clear();
1185        self.autoscaling_targets.clear();
1186        self.unknown_fields.clear();
1187    }
1188}
1189
1190impl ::std::fmt::Debug for AutoscalingConfig {
1191    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1192        ::protobuf::text_format::fmt(self, f)
1193    }
1194}
1195
1196impl ::protobuf::reflect::ProtobufValue for AutoscalingConfig {
1197    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1198        ::protobuf::reflect::ReflectValueRef::Message(self)
1199    }
1200}
1201
1202#[derive(PartialEq,Clone,Default)]
1203pub struct AutoscalingConfig_AutoscalingLimits {
1204    // message oneof groups
1205    pub min_limit: ::std::option::Option<AutoscalingConfig_AutoscalingLimits_oneof_min_limit>,
1206    pub max_limit: ::std::option::Option<AutoscalingConfig_AutoscalingLimits_oneof_max_limit>,
1207    // special fields
1208    pub unknown_fields: ::protobuf::UnknownFields,
1209    pub cached_size: ::protobuf::CachedSize,
1210}
1211
1212impl<'a> ::std::default::Default for &'a AutoscalingConfig_AutoscalingLimits {
1213    fn default() -> &'a AutoscalingConfig_AutoscalingLimits {
1214        <AutoscalingConfig_AutoscalingLimits as ::protobuf::Message>::default_instance()
1215    }
1216}
1217
1218#[derive(Clone,PartialEq,Debug)]
1219pub enum AutoscalingConfig_AutoscalingLimits_oneof_min_limit {
1220    min_nodes(i32),
1221    min_processing_units(i32),
1222}
1223
1224#[derive(Clone,PartialEq,Debug)]
1225pub enum AutoscalingConfig_AutoscalingLimits_oneof_max_limit {
1226    max_nodes(i32),
1227    max_processing_units(i32),
1228}
1229
1230impl AutoscalingConfig_AutoscalingLimits {
1231    pub fn new() -> AutoscalingConfig_AutoscalingLimits {
1232        ::std::default::Default::default()
1233    }
1234
1235    // int32 min_nodes = 1;
1236
1237
1238    pub fn get_min_nodes(&self) -> i32 {
1239        match self.min_limit {
1240            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(v)) => v,
1241            _ => 0,
1242        }
1243    }
1244    pub fn clear_min_nodes(&mut self) {
1245        self.min_limit = ::std::option::Option::None;
1246    }
1247
1248    pub fn has_min_nodes(&self) -> bool {
1249        match self.min_limit {
1250            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(..)) => true,
1251            _ => false,
1252        }
1253    }
1254
1255    // Param is passed by value, moved
1256    pub fn set_min_nodes(&mut self, v: i32) {
1257        self.min_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(v))
1258    }
1259
1260    // int32 min_processing_units = 2;
1261
1262
1263    pub fn get_min_processing_units(&self) -> i32 {
1264        match self.min_limit {
1265            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(v)) => v,
1266            _ => 0,
1267        }
1268    }
1269    pub fn clear_min_processing_units(&mut self) {
1270        self.min_limit = ::std::option::Option::None;
1271    }
1272
1273    pub fn has_min_processing_units(&self) -> bool {
1274        match self.min_limit {
1275            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(..)) => true,
1276            _ => false,
1277        }
1278    }
1279
1280    // Param is passed by value, moved
1281    pub fn set_min_processing_units(&mut self, v: i32) {
1282        self.min_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(v))
1283    }
1284
1285    // int32 max_nodes = 3;
1286
1287
1288    pub fn get_max_nodes(&self) -> i32 {
1289        match self.max_limit {
1290            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(v)) => v,
1291            _ => 0,
1292        }
1293    }
1294    pub fn clear_max_nodes(&mut self) {
1295        self.max_limit = ::std::option::Option::None;
1296    }
1297
1298    pub fn has_max_nodes(&self) -> bool {
1299        match self.max_limit {
1300            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(..)) => true,
1301            _ => false,
1302        }
1303    }
1304
1305    // Param is passed by value, moved
1306    pub fn set_max_nodes(&mut self, v: i32) {
1307        self.max_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(v))
1308    }
1309
1310    // int32 max_processing_units = 4;
1311
1312
1313    pub fn get_max_processing_units(&self) -> i32 {
1314        match self.max_limit {
1315            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(v)) => v,
1316            _ => 0,
1317        }
1318    }
1319    pub fn clear_max_processing_units(&mut self) {
1320        self.max_limit = ::std::option::Option::None;
1321    }
1322
1323    pub fn has_max_processing_units(&self) -> bool {
1324        match self.max_limit {
1325            ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(..)) => true,
1326            _ => false,
1327        }
1328    }
1329
1330    // Param is passed by value, moved
1331    pub fn set_max_processing_units(&mut self, v: i32) {
1332        self.max_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(v))
1333    }
1334}
1335
1336impl ::protobuf::Message for AutoscalingConfig_AutoscalingLimits {
1337    fn is_initialized(&self) -> bool {
1338        true
1339    }
1340
1341    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1342        while !is.eof()? {
1343            let (field_number, wire_type) = is.read_tag_unpack()?;
1344            match field_number {
1345                1 => {
1346                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1347                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1348                    }
1349                    self.min_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(is.read_int32()?));
1350                },
1351                2 => {
1352                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1353                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1354                    }
1355                    self.min_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(is.read_int32()?));
1356                },
1357                3 => {
1358                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1359                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1360                    }
1361                    self.max_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(is.read_int32()?));
1362                },
1363                4 => {
1364                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1365                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1366                    }
1367                    self.max_limit = ::std::option::Option::Some(AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(is.read_int32()?));
1368                },
1369                _ => {
1370                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1371                },
1372            };
1373        }
1374        ::std::result::Result::Ok(())
1375    }
1376
1377    // Compute sizes of nested messages
1378    #[allow(unused_variables)]
1379    fn compute_size(&self) -> u32 {
1380        let mut my_size = 0;
1381        if let ::std::option::Option::Some(ref v) = self.min_limit {
1382            match v {
1383                &AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(v) => {
1384                    my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
1385                },
1386                &AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(v) => {
1387                    my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
1388                },
1389            };
1390        }
1391        if let ::std::option::Option::Some(ref v) = self.max_limit {
1392            match v {
1393                &AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(v) => {
1394                    my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
1395                },
1396                &AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(v) => {
1397                    my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
1398                },
1399            };
1400        }
1401        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1402        self.cached_size.set(my_size);
1403        my_size
1404    }
1405
1406    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1407        if let ::std::option::Option::Some(ref v) = self.min_limit {
1408            match v {
1409                &AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_nodes(v) => {
1410                    os.write_int32(1, v)?;
1411                },
1412                &AutoscalingConfig_AutoscalingLimits_oneof_min_limit::min_processing_units(v) => {
1413                    os.write_int32(2, v)?;
1414                },
1415            };
1416        }
1417        if let ::std::option::Option::Some(ref v) = self.max_limit {
1418            match v {
1419                &AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_nodes(v) => {
1420                    os.write_int32(3, v)?;
1421                },
1422                &AutoscalingConfig_AutoscalingLimits_oneof_max_limit::max_processing_units(v) => {
1423                    os.write_int32(4, v)?;
1424                },
1425            };
1426        }
1427        os.write_unknown_fields(self.get_unknown_fields())?;
1428        ::std::result::Result::Ok(())
1429    }
1430
1431    fn get_cached_size(&self) -> u32 {
1432        self.cached_size.get()
1433    }
1434
1435    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1436        &self.unknown_fields
1437    }
1438
1439    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1440        &mut self.unknown_fields
1441    }
1442
1443    fn as_any(&self) -> &dyn (::std::any::Any) {
1444        self as &dyn (::std::any::Any)
1445    }
1446    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1447        self as &mut dyn (::std::any::Any)
1448    }
1449    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1450        self
1451    }
1452
1453    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1454        Self::descriptor_static()
1455    }
1456
1457    fn new() -> AutoscalingConfig_AutoscalingLimits {
1458        AutoscalingConfig_AutoscalingLimits::new()
1459    }
1460
1461    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1462        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1463        descriptor.get(|| {
1464            let mut fields = ::std::vec::Vec::new();
1465            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
1466                "min_nodes",
1467                AutoscalingConfig_AutoscalingLimits::has_min_nodes,
1468                AutoscalingConfig_AutoscalingLimits::get_min_nodes,
1469            ));
1470            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
1471                "min_processing_units",
1472                AutoscalingConfig_AutoscalingLimits::has_min_processing_units,
1473                AutoscalingConfig_AutoscalingLimits::get_min_processing_units,
1474            ));
1475            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
1476                "max_nodes",
1477                AutoscalingConfig_AutoscalingLimits::has_max_nodes,
1478                AutoscalingConfig_AutoscalingLimits::get_max_nodes,
1479            ));
1480            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
1481                "max_processing_units",
1482                AutoscalingConfig_AutoscalingLimits::has_max_processing_units,
1483                AutoscalingConfig_AutoscalingLimits::get_max_processing_units,
1484            ));
1485            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AutoscalingConfig_AutoscalingLimits>(
1486                "AutoscalingConfig.AutoscalingLimits",
1487                fields,
1488                file_descriptor_proto()
1489            )
1490        })
1491    }
1492
1493    fn default_instance() -> &'static AutoscalingConfig_AutoscalingLimits {
1494        static instance: ::protobuf::rt::LazyV2<AutoscalingConfig_AutoscalingLimits> = ::protobuf::rt::LazyV2::INIT;
1495        instance.get(AutoscalingConfig_AutoscalingLimits::new)
1496    }
1497}
1498
1499impl ::protobuf::Clear for AutoscalingConfig_AutoscalingLimits {
1500    fn clear(&mut self) {
1501        self.min_limit = ::std::option::Option::None;
1502        self.min_limit = ::std::option::Option::None;
1503        self.max_limit = ::std::option::Option::None;
1504        self.max_limit = ::std::option::Option::None;
1505        self.unknown_fields.clear();
1506    }
1507}
1508
1509impl ::std::fmt::Debug for AutoscalingConfig_AutoscalingLimits {
1510    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1511        ::protobuf::text_format::fmt(self, f)
1512    }
1513}
1514
1515impl ::protobuf::reflect::ProtobufValue for AutoscalingConfig_AutoscalingLimits {
1516    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1517        ::protobuf::reflect::ReflectValueRef::Message(self)
1518    }
1519}
1520
1521#[derive(PartialEq,Clone,Default)]
1522pub struct AutoscalingConfig_AutoscalingTargets {
1523    // message fields
1524    pub high_priority_cpu_utilization_percent: i32,
1525    pub storage_utilization_percent: i32,
1526    // special fields
1527    pub unknown_fields: ::protobuf::UnknownFields,
1528    pub cached_size: ::protobuf::CachedSize,
1529}
1530
1531impl<'a> ::std::default::Default for &'a AutoscalingConfig_AutoscalingTargets {
1532    fn default() -> &'a AutoscalingConfig_AutoscalingTargets {
1533        <AutoscalingConfig_AutoscalingTargets as ::protobuf::Message>::default_instance()
1534    }
1535}
1536
1537impl AutoscalingConfig_AutoscalingTargets {
1538    pub fn new() -> AutoscalingConfig_AutoscalingTargets {
1539        ::std::default::Default::default()
1540    }
1541
1542    // int32 high_priority_cpu_utilization_percent = 1;
1543
1544
1545    pub fn get_high_priority_cpu_utilization_percent(&self) -> i32 {
1546        self.high_priority_cpu_utilization_percent
1547    }
1548    pub fn clear_high_priority_cpu_utilization_percent(&mut self) {
1549        self.high_priority_cpu_utilization_percent = 0;
1550    }
1551
1552    // Param is passed by value, moved
1553    pub fn set_high_priority_cpu_utilization_percent(&mut self, v: i32) {
1554        self.high_priority_cpu_utilization_percent = v;
1555    }
1556
1557    // int32 storage_utilization_percent = 2;
1558
1559
1560    pub fn get_storage_utilization_percent(&self) -> i32 {
1561        self.storage_utilization_percent
1562    }
1563    pub fn clear_storage_utilization_percent(&mut self) {
1564        self.storage_utilization_percent = 0;
1565    }
1566
1567    // Param is passed by value, moved
1568    pub fn set_storage_utilization_percent(&mut self, v: i32) {
1569        self.storage_utilization_percent = v;
1570    }
1571}
1572
1573impl ::protobuf::Message for AutoscalingConfig_AutoscalingTargets {
1574    fn is_initialized(&self) -> bool {
1575        true
1576    }
1577
1578    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1579        while !is.eof()? {
1580            let (field_number, wire_type) = is.read_tag_unpack()?;
1581            match field_number {
1582                1 => {
1583                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1584                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1585                    }
1586                    let tmp = is.read_int32()?;
1587                    self.high_priority_cpu_utilization_percent = tmp;
1588                },
1589                2 => {
1590                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1591                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1592                    }
1593                    let tmp = is.read_int32()?;
1594                    self.storage_utilization_percent = tmp;
1595                },
1596                _ => {
1597                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1598                },
1599            };
1600        }
1601        ::std::result::Result::Ok(())
1602    }
1603
1604    // Compute sizes of nested messages
1605    #[allow(unused_variables)]
1606    fn compute_size(&self) -> u32 {
1607        let mut my_size = 0;
1608        if self.high_priority_cpu_utilization_percent != 0 {
1609            my_size += ::protobuf::rt::value_size(1, self.high_priority_cpu_utilization_percent, ::protobuf::wire_format::WireTypeVarint);
1610        }
1611        if self.storage_utilization_percent != 0 {
1612            my_size += ::protobuf::rt::value_size(2, self.storage_utilization_percent, ::protobuf::wire_format::WireTypeVarint);
1613        }
1614        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1615        self.cached_size.set(my_size);
1616        my_size
1617    }
1618
1619    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1620        if self.high_priority_cpu_utilization_percent != 0 {
1621            os.write_int32(1, self.high_priority_cpu_utilization_percent)?;
1622        }
1623        if self.storage_utilization_percent != 0 {
1624            os.write_int32(2, self.storage_utilization_percent)?;
1625        }
1626        os.write_unknown_fields(self.get_unknown_fields())?;
1627        ::std::result::Result::Ok(())
1628    }
1629
1630    fn get_cached_size(&self) -> u32 {
1631        self.cached_size.get()
1632    }
1633
1634    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1635        &self.unknown_fields
1636    }
1637
1638    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1639        &mut self.unknown_fields
1640    }
1641
1642    fn as_any(&self) -> &dyn (::std::any::Any) {
1643        self as &dyn (::std::any::Any)
1644    }
1645    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1646        self as &mut dyn (::std::any::Any)
1647    }
1648    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1649        self
1650    }
1651
1652    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1653        Self::descriptor_static()
1654    }
1655
1656    fn new() -> AutoscalingConfig_AutoscalingTargets {
1657        AutoscalingConfig_AutoscalingTargets::new()
1658    }
1659
1660    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1661        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1662        descriptor.get(|| {
1663            let mut fields = ::std::vec::Vec::new();
1664            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1665                "high_priority_cpu_utilization_percent",
1666                |m: &AutoscalingConfig_AutoscalingTargets| { &m.high_priority_cpu_utilization_percent },
1667                |m: &mut AutoscalingConfig_AutoscalingTargets| { &mut m.high_priority_cpu_utilization_percent },
1668            ));
1669            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1670                "storage_utilization_percent",
1671                |m: &AutoscalingConfig_AutoscalingTargets| { &m.storage_utilization_percent },
1672                |m: &mut AutoscalingConfig_AutoscalingTargets| { &mut m.storage_utilization_percent },
1673            ));
1674            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AutoscalingConfig_AutoscalingTargets>(
1675                "AutoscalingConfig.AutoscalingTargets",
1676                fields,
1677                file_descriptor_proto()
1678            )
1679        })
1680    }
1681
1682    fn default_instance() -> &'static AutoscalingConfig_AutoscalingTargets {
1683        static instance: ::protobuf::rt::LazyV2<AutoscalingConfig_AutoscalingTargets> = ::protobuf::rt::LazyV2::INIT;
1684        instance.get(AutoscalingConfig_AutoscalingTargets::new)
1685    }
1686}
1687
1688impl ::protobuf::Clear for AutoscalingConfig_AutoscalingTargets {
1689    fn clear(&mut self) {
1690        self.high_priority_cpu_utilization_percent = 0;
1691        self.storage_utilization_percent = 0;
1692        self.unknown_fields.clear();
1693    }
1694}
1695
1696impl ::std::fmt::Debug for AutoscalingConfig_AutoscalingTargets {
1697    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1698        ::protobuf::text_format::fmt(self, f)
1699    }
1700}
1701
1702impl ::protobuf::reflect::ProtobufValue for AutoscalingConfig_AutoscalingTargets {
1703    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1704        ::protobuf::reflect::ReflectValueRef::Message(self)
1705    }
1706}
1707
1708#[derive(PartialEq,Clone,Default)]
1709pub struct Instance {
1710    // message fields
1711    pub name: ::std::string::String,
1712    pub config: ::std::string::String,
1713    pub display_name: ::std::string::String,
1714    pub node_count: i32,
1715    pub processing_units: i32,
1716    pub autoscaling_config: ::protobuf::SingularPtrField<AutoscalingConfig>,
1717    pub state: Instance_State,
1718    pub labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
1719    pub endpoint_uris: ::protobuf::RepeatedField<::std::string::String>,
1720    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1721    pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1722    // special fields
1723    pub unknown_fields: ::protobuf::UnknownFields,
1724    pub cached_size: ::protobuf::CachedSize,
1725}
1726
1727impl<'a> ::std::default::Default for &'a Instance {
1728    fn default() -> &'a Instance {
1729        <Instance as ::protobuf::Message>::default_instance()
1730    }
1731}
1732
1733impl Instance {
1734    pub fn new() -> Instance {
1735        ::std::default::Default::default()
1736    }
1737
1738    // string name = 1;
1739
1740
1741    pub fn get_name(&self) -> &str {
1742        &self.name
1743    }
1744    pub fn clear_name(&mut self) {
1745        self.name.clear();
1746    }
1747
1748    // Param is passed by value, moved
1749    pub fn set_name(&mut self, v: ::std::string::String) {
1750        self.name = v;
1751    }
1752
1753    // Mutable pointer to the field.
1754    // If field is not initialized, it is initialized with default value first.
1755    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1756        &mut self.name
1757    }
1758
1759    // Take field
1760    pub fn take_name(&mut self) -> ::std::string::String {
1761        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1762    }
1763
1764    // string config = 2;
1765
1766
1767    pub fn get_config(&self) -> &str {
1768        &self.config
1769    }
1770    pub fn clear_config(&mut self) {
1771        self.config.clear();
1772    }
1773
1774    // Param is passed by value, moved
1775    pub fn set_config(&mut self, v: ::std::string::String) {
1776        self.config = v;
1777    }
1778
1779    // Mutable pointer to the field.
1780    // If field is not initialized, it is initialized with default value first.
1781    pub fn mut_config(&mut self) -> &mut ::std::string::String {
1782        &mut self.config
1783    }
1784
1785    // Take field
1786    pub fn take_config(&mut self) -> ::std::string::String {
1787        ::std::mem::replace(&mut self.config, ::std::string::String::new())
1788    }
1789
1790    // string display_name = 3;
1791
1792
1793    pub fn get_display_name(&self) -> &str {
1794        &self.display_name
1795    }
1796    pub fn clear_display_name(&mut self) {
1797        self.display_name.clear();
1798    }
1799
1800    // Param is passed by value, moved
1801    pub fn set_display_name(&mut self, v: ::std::string::String) {
1802        self.display_name = v;
1803    }
1804
1805    // Mutable pointer to the field.
1806    // If field is not initialized, it is initialized with default value first.
1807    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
1808        &mut self.display_name
1809    }
1810
1811    // Take field
1812    pub fn take_display_name(&mut self) -> ::std::string::String {
1813        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
1814    }
1815
1816    // int32 node_count = 5;
1817
1818
1819    pub fn get_node_count(&self) -> i32 {
1820        self.node_count
1821    }
1822    pub fn clear_node_count(&mut self) {
1823        self.node_count = 0;
1824    }
1825
1826    // Param is passed by value, moved
1827    pub fn set_node_count(&mut self, v: i32) {
1828        self.node_count = v;
1829    }
1830
1831    // int32 processing_units = 9;
1832
1833
1834    pub fn get_processing_units(&self) -> i32 {
1835        self.processing_units
1836    }
1837    pub fn clear_processing_units(&mut self) {
1838        self.processing_units = 0;
1839    }
1840
1841    // Param is passed by value, moved
1842    pub fn set_processing_units(&mut self, v: i32) {
1843        self.processing_units = v;
1844    }
1845
1846    // .google.spanner.admin.instance.v1.AutoscalingConfig autoscaling_config = 17;
1847
1848
1849    pub fn get_autoscaling_config(&self) -> &AutoscalingConfig {
1850        self.autoscaling_config.as_ref().unwrap_or_else(|| <AutoscalingConfig as ::protobuf::Message>::default_instance())
1851    }
1852    pub fn clear_autoscaling_config(&mut self) {
1853        self.autoscaling_config.clear();
1854    }
1855
1856    pub fn has_autoscaling_config(&self) -> bool {
1857        self.autoscaling_config.is_some()
1858    }
1859
1860    // Param is passed by value, moved
1861    pub fn set_autoscaling_config(&mut self, v: AutoscalingConfig) {
1862        self.autoscaling_config = ::protobuf::SingularPtrField::some(v);
1863    }
1864
1865    // Mutable pointer to the field.
1866    // If field is not initialized, it is initialized with default value first.
1867    pub fn mut_autoscaling_config(&mut self) -> &mut AutoscalingConfig {
1868        if self.autoscaling_config.is_none() {
1869            self.autoscaling_config.set_default();
1870        }
1871        self.autoscaling_config.as_mut().unwrap()
1872    }
1873
1874    // Take field
1875    pub fn take_autoscaling_config(&mut self) -> AutoscalingConfig {
1876        self.autoscaling_config.take().unwrap_or_else(|| AutoscalingConfig::new())
1877    }
1878
1879    // .google.spanner.admin.instance.v1.Instance.State state = 6;
1880
1881
1882    pub fn get_state(&self) -> Instance_State {
1883        self.state
1884    }
1885    pub fn clear_state(&mut self) {
1886        self.state = Instance_State::STATE_UNSPECIFIED;
1887    }
1888
1889    // Param is passed by value, moved
1890    pub fn set_state(&mut self, v: Instance_State) {
1891        self.state = v;
1892    }
1893
1894    // repeated .google.spanner.admin.instance.v1.Instance.LabelsEntry labels = 7;
1895
1896
1897    pub fn get_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
1898        &self.labels
1899    }
1900    pub fn clear_labels(&mut self) {
1901        self.labels.clear();
1902    }
1903
1904    // Param is passed by value, moved
1905    pub fn set_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
1906        self.labels = v;
1907    }
1908
1909    // Mutable pointer to the field.
1910    pub fn mut_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
1911        &mut self.labels
1912    }
1913
1914    // Take field
1915    pub fn take_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
1916        ::std::mem::replace(&mut self.labels, ::std::collections::HashMap::new())
1917    }
1918
1919    // repeated string endpoint_uris = 8;
1920
1921
1922    pub fn get_endpoint_uris(&self) -> &[::std::string::String] {
1923        &self.endpoint_uris
1924    }
1925    pub fn clear_endpoint_uris(&mut self) {
1926        self.endpoint_uris.clear();
1927    }
1928
1929    // Param is passed by value, moved
1930    pub fn set_endpoint_uris(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1931        self.endpoint_uris = v;
1932    }
1933
1934    // Mutable pointer to the field.
1935    pub fn mut_endpoint_uris(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1936        &mut self.endpoint_uris
1937    }
1938
1939    // Take field
1940    pub fn take_endpoint_uris(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1941        ::std::mem::replace(&mut self.endpoint_uris, ::protobuf::RepeatedField::new())
1942    }
1943
1944    // .google.protobuf.Timestamp create_time = 11;
1945
1946
1947    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
1948        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1949    }
1950    pub fn clear_create_time(&mut self) {
1951        self.create_time.clear();
1952    }
1953
1954    pub fn has_create_time(&self) -> bool {
1955        self.create_time.is_some()
1956    }
1957
1958    // Param is passed by value, moved
1959    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1960        self.create_time = ::protobuf::SingularPtrField::some(v);
1961    }
1962
1963    // Mutable pointer to the field.
1964    // If field is not initialized, it is initialized with default value first.
1965    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1966        if self.create_time.is_none() {
1967            self.create_time.set_default();
1968        }
1969        self.create_time.as_mut().unwrap()
1970    }
1971
1972    // Take field
1973    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1974        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1975    }
1976
1977    // .google.protobuf.Timestamp update_time = 12;
1978
1979
1980    pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
1981        self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1982    }
1983    pub fn clear_update_time(&mut self) {
1984        self.update_time.clear();
1985    }
1986
1987    pub fn has_update_time(&self) -> bool {
1988        self.update_time.is_some()
1989    }
1990
1991    // Param is passed by value, moved
1992    pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1993        self.update_time = ::protobuf::SingularPtrField::some(v);
1994    }
1995
1996    // Mutable pointer to the field.
1997    // If field is not initialized, it is initialized with default value first.
1998    pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1999        if self.update_time.is_none() {
2000            self.update_time.set_default();
2001        }
2002        self.update_time.as_mut().unwrap()
2003    }
2004
2005    // Take field
2006    pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
2007        self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
2008    }
2009}
2010
2011impl ::protobuf::Message for Instance {
2012    fn is_initialized(&self) -> bool {
2013        for v in &self.autoscaling_config {
2014            if !v.is_initialized() {
2015                return false;
2016            }
2017        };
2018        for v in &self.create_time {
2019            if !v.is_initialized() {
2020                return false;
2021            }
2022        };
2023        for v in &self.update_time {
2024            if !v.is_initialized() {
2025                return false;
2026            }
2027        };
2028        true
2029    }
2030
2031    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2032        while !is.eof()? {
2033            let (field_number, wire_type) = is.read_tag_unpack()?;
2034            match field_number {
2035                1 => {
2036                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2037                },
2038                2 => {
2039                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.config)?;
2040                },
2041                3 => {
2042                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
2043                },
2044                5 => {
2045                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2046                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2047                    }
2048                    let tmp = is.read_int32()?;
2049                    self.node_count = tmp;
2050                },
2051                9 => {
2052                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2053                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2054                    }
2055                    let tmp = is.read_int32()?;
2056                    self.processing_units = tmp;
2057                },
2058                17 => {
2059                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.autoscaling_config)?;
2060                },
2061                6 => {
2062                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.state, 6, &mut self.unknown_fields)?
2063                },
2064                7 => {
2065                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.labels)?;
2066                },
2067                8 => {
2068                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.endpoint_uris)?;
2069                },
2070                11 => {
2071                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
2072                },
2073                12 => {
2074                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
2075                },
2076                _ => {
2077                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2078                },
2079            };
2080        }
2081        ::std::result::Result::Ok(())
2082    }
2083
2084    // Compute sizes of nested messages
2085    #[allow(unused_variables)]
2086    fn compute_size(&self) -> u32 {
2087        let mut my_size = 0;
2088        if !self.name.is_empty() {
2089            my_size += ::protobuf::rt::string_size(1, &self.name);
2090        }
2091        if !self.config.is_empty() {
2092            my_size += ::protobuf::rt::string_size(2, &self.config);
2093        }
2094        if !self.display_name.is_empty() {
2095            my_size += ::protobuf::rt::string_size(3, &self.display_name);
2096        }
2097        if self.node_count != 0 {
2098            my_size += ::protobuf::rt::value_size(5, self.node_count, ::protobuf::wire_format::WireTypeVarint);
2099        }
2100        if self.processing_units != 0 {
2101            my_size += ::protobuf::rt::value_size(9, self.processing_units, ::protobuf::wire_format::WireTypeVarint);
2102        }
2103        if let Some(ref v) = self.autoscaling_config.as_ref() {
2104            let len = v.compute_size();
2105            my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2106        }
2107        if self.state != Instance_State::STATE_UNSPECIFIED {
2108            my_size += ::protobuf::rt::enum_size(6, self.state);
2109        }
2110        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.labels);
2111        for value in &self.endpoint_uris {
2112            my_size += ::protobuf::rt::string_size(8, &value);
2113        };
2114        if let Some(ref v) = self.create_time.as_ref() {
2115            let len = v.compute_size();
2116            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2117        }
2118        if let Some(ref v) = self.update_time.as_ref() {
2119            let len = v.compute_size();
2120            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2121        }
2122        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2123        self.cached_size.set(my_size);
2124        my_size
2125    }
2126
2127    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2128        if !self.name.is_empty() {
2129            os.write_string(1, &self.name)?;
2130        }
2131        if !self.config.is_empty() {
2132            os.write_string(2, &self.config)?;
2133        }
2134        if !self.display_name.is_empty() {
2135            os.write_string(3, &self.display_name)?;
2136        }
2137        if self.node_count != 0 {
2138            os.write_int32(5, self.node_count)?;
2139        }
2140        if self.processing_units != 0 {
2141            os.write_int32(9, self.processing_units)?;
2142        }
2143        if let Some(ref v) = self.autoscaling_config.as_ref() {
2144            os.write_tag(17, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2145            os.write_raw_varint32(v.get_cached_size())?;
2146            v.write_to_with_cached_sizes(os)?;
2147        }
2148        if self.state != Instance_State::STATE_UNSPECIFIED {
2149            os.write_enum(6, ::protobuf::ProtobufEnum::value(&self.state))?;
2150        }
2151        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.labels, os)?;
2152        for v in &self.endpoint_uris {
2153            os.write_string(8, &v)?;
2154        };
2155        if let Some(ref v) = self.create_time.as_ref() {
2156            os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2157            os.write_raw_varint32(v.get_cached_size())?;
2158            v.write_to_with_cached_sizes(os)?;
2159        }
2160        if let Some(ref v) = self.update_time.as_ref() {
2161            os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2162            os.write_raw_varint32(v.get_cached_size())?;
2163            v.write_to_with_cached_sizes(os)?;
2164        }
2165        os.write_unknown_fields(self.get_unknown_fields())?;
2166        ::std::result::Result::Ok(())
2167    }
2168
2169    fn get_cached_size(&self) -> u32 {
2170        self.cached_size.get()
2171    }
2172
2173    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2174        &self.unknown_fields
2175    }
2176
2177    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2178        &mut self.unknown_fields
2179    }
2180
2181    fn as_any(&self) -> &dyn (::std::any::Any) {
2182        self as &dyn (::std::any::Any)
2183    }
2184    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2185        self as &mut dyn (::std::any::Any)
2186    }
2187    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2188        self
2189    }
2190
2191    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2192        Self::descriptor_static()
2193    }
2194
2195    fn new() -> Instance {
2196        Instance::new()
2197    }
2198
2199    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2200        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2201        descriptor.get(|| {
2202            let mut fields = ::std::vec::Vec::new();
2203            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2204                "name",
2205                |m: &Instance| { &m.name },
2206                |m: &mut Instance| { &mut m.name },
2207            ));
2208            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2209                "config",
2210                |m: &Instance| { &m.config },
2211                |m: &mut Instance| { &mut m.config },
2212            ));
2213            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2214                "display_name",
2215                |m: &Instance| { &m.display_name },
2216                |m: &mut Instance| { &mut m.display_name },
2217            ));
2218            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2219                "node_count",
2220                |m: &Instance| { &m.node_count },
2221                |m: &mut Instance| { &mut m.node_count },
2222            ));
2223            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2224                "processing_units",
2225                |m: &Instance| { &m.processing_units },
2226                |m: &mut Instance| { &mut m.processing_units },
2227            ));
2228            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AutoscalingConfig>>(
2229                "autoscaling_config",
2230                |m: &Instance| { &m.autoscaling_config },
2231                |m: &mut Instance| { &mut m.autoscaling_config },
2232            ));
2233            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Instance_State>>(
2234                "state",
2235                |m: &Instance| { &m.state },
2236                |m: &mut Instance| { &mut m.state },
2237            ));
2238            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
2239                "labels",
2240                |m: &Instance| { &m.labels },
2241                |m: &mut Instance| { &mut m.labels },
2242            ));
2243            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2244                "endpoint_uris",
2245                |m: &Instance| { &m.endpoint_uris },
2246                |m: &mut Instance| { &mut m.endpoint_uris },
2247            ));
2248            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
2249                "create_time",
2250                |m: &Instance| { &m.create_time },
2251                |m: &mut Instance| { &mut m.create_time },
2252            ));
2253            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
2254                "update_time",
2255                |m: &Instance| { &m.update_time },
2256                |m: &mut Instance| { &mut m.update_time },
2257            ));
2258            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Instance>(
2259                "Instance",
2260                fields,
2261                file_descriptor_proto()
2262            )
2263        })
2264    }
2265
2266    fn default_instance() -> &'static Instance {
2267        static instance: ::protobuf::rt::LazyV2<Instance> = ::protobuf::rt::LazyV2::INIT;
2268        instance.get(Instance::new)
2269    }
2270}
2271
2272impl ::protobuf::Clear for Instance {
2273    fn clear(&mut self) {
2274        self.name.clear();
2275        self.config.clear();
2276        self.display_name.clear();
2277        self.node_count = 0;
2278        self.processing_units = 0;
2279        self.autoscaling_config.clear();
2280        self.state = Instance_State::STATE_UNSPECIFIED;
2281        self.labels.clear();
2282        self.endpoint_uris.clear();
2283        self.create_time.clear();
2284        self.update_time.clear();
2285        self.unknown_fields.clear();
2286    }
2287}
2288
2289impl ::std::fmt::Debug for Instance {
2290    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2291        ::protobuf::text_format::fmt(self, f)
2292    }
2293}
2294
2295impl ::protobuf::reflect::ProtobufValue for Instance {
2296    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2297        ::protobuf::reflect::ReflectValueRef::Message(self)
2298    }
2299}
2300
2301#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2302pub enum Instance_State {
2303    STATE_UNSPECIFIED = 0,
2304    CREATING = 1,
2305    READY = 2,
2306}
2307
2308impl ::protobuf::ProtobufEnum for Instance_State {
2309    fn value(&self) -> i32 {
2310        *self as i32
2311    }
2312
2313    fn from_i32(value: i32) -> ::std::option::Option<Instance_State> {
2314        match value {
2315            0 => ::std::option::Option::Some(Instance_State::STATE_UNSPECIFIED),
2316            1 => ::std::option::Option::Some(Instance_State::CREATING),
2317            2 => ::std::option::Option::Some(Instance_State::READY),
2318            _ => ::std::option::Option::None
2319        }
2320    }
2321
2322    fn values() -> &'static [Self] {
2323        static values: &'static [Instance_State] = &[
2324            Instance_State::STATE_UNSPECIFIED,
2325            Instance_State::CREATING,
2326            Instance_State::READY,
2327        ];
2328        values
2329    }
2330
2331    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2332        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2333        descriptor.get(|| {
2334            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Instance_State>("Instance.State", file_descriptor_proto())
2335        })
2336    }
2337}
2338
2339impl ::std::marker::Copy for Instance_State {
2340}
2341
2342impl ::std::default::Default for Instance_State {
2343    fn default() -> Self {
2344        Instance_State::STATE_UNSPECIFIED
2345    }
2346}
2347
2348impl ::protobuf::reflect::ProtobufValue for Instance_State {
2349    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2350        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2351    }
2352}
2353
2354#[derive(PartialEq,Clone,Default)]
2355pub struct ListInstanceConfigsRequest {
2356    // message fields
2357    pub parent: ::std::string::String,
2358    pub page_size: i32,
2359    pub page_token: ::std::string::String,
2360    // special fields
2361    pub unknown_fields: ::protobuf::UnknownFields,
2362    pub cached_size: ::protobuf::CachedSize,
2363}
2364
2365impl<'a> ::std::default::Default for &'a ListInstanceConfigsRequest {
2366    fn default() -> &'a ListInstanceConfigsRequest {
2367        <ListInstanceConfigsRequest as ::protobuf::Message>::default_instance()
2368    }
2369}
2370
2371impl ListInstanceConfigsRequest {
2372    pub fn new() -> ListInstanceConfigsRequest {
2373        ::std::default::Default::default()
2374    }
2375
2376    // string parent = 1;
2377
2378
2379    pub fn get_parent(&self) -> &str {
2380        &self.parent
2381    }
2382    pub fn clear_parent(&mut self) {
2383        self.parent.clear();
2384    }
2385
2386    // Param is passed by value, moved
2387    pub fn set_parent(&mut self, v: ::std::string::String) {
2388        self.parent = v;
2389    }
2390
2391    // Mutable pointer to the field.
2392    // If field is not initialized, it is initialized with default value first.
2393    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
2394        &mut self.parent
2395    }
2396
2397    // Take field
2398    pub fn take_parent(&mut self) -> ::std::string::String {
2399        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
2400    }
2401
2402    // int32 page_size = 2;
2403
2404
2405    pub fn get_page_size(&self) -> i32 {
2406        self.page_size
2407    }
2408    pub fn clear_page_size(&mut self) {
2409        self.page_size = 0;
2410    }
2411
2412    // Param is passed by value, moved
2413    pub fn set_page_size(&mut self, v: i32) {
2414        self.page_size = v;
2415    }
2416
2417    // string page_token = 3;
2418
2419
2420    pub fn get_page_token(&self) -> &str {
2421        &self.page_token
2422    }
2423    pub fn clear_page_token(&mut self) {
2424        self.page_token.clear();
2425    }
2426
2427    // Param is passed by value, moved
2428    pub fn set_page_token(&mut self, v: ::std::string::String) {
2429        self.page_token = v;
2430    }
2431
2432    // Mutable pointer to the field.
2433    // If field is not initialized, it is initialized with default value first.
2434    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
2435        &mut self.page_token
2436    }
2437
2438    // Take field
2439    pub fn take_page_token(&mut self) -> ::std::string::String {
2440        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
2441    }
2442}
2443
2444impl ::protobuf::Message for ListInstanceConfigsRequest {
2445    fn is_initialized(&self) -> bool {
2446        true
2447    }
2448
2449    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2450        while !is.eof()? {
2451            let (field_number, wire_type) = is.read_tag_unpack()?;
2452            match field_number {
2453                1 => {
2454                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
2455                },
2456                2 => {
2457                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2458                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2459                    }
2460                    let tmp = is.read_int32()?;
2461                    self.page_size = tmp;
2462                },
2463                3 => {
2464                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
2465                },
2466                _ => {
2467                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2468                },
2469            };
2470        }
2471        ::std::result::Result::Ok(())
2472    }
2473
2474    // Compute sizes of nested messages
2475    #[allow(unused_variables)]
2476    fn compute_size(&self) -> u32 {
2477        let mut my_size = 0;
2478        if !self.parent.is_empty() {
2479            my_size += ::protobuf::rt::string_size(1, &self.parent);
2480        }
2481        if self.page_size != 0 {
2482            my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
2483        }
2484        if !self.page_token.is_empty() {
2485            my_size += ::protobuf::rt::string_size(3, &self.page_token);
2486        }
2487        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2488        self.cached_size.set(my_size);
2489        my_size
2490    }
2491
2492    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2493        if !self.parent.is_empty() {
2494            os.write_string(1, &self.parent)?;
2495        }
2496        if self.page_size != 0 {
2497            os.write_int32(2, self.page_size)?;
2498        }
2499        if !self.page_token.is_empty() {
2500            os.write_string(3, &self.page_token)?;
2501        }
2502        os.write_unknown_fields(self.get_unknown_fields())?;
2503        ::std::result::Result::Ok(())
2504    }
2505
2506    fn get_cached_size(&self) -> u32 {
2507        self.cached_size.get()
2508    }
2509
2510    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2511        &self.unknown_fields
2512    }
2513
2514    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2515        &mut self.unknown_fields
2516    }
2517
2518    fn as_any(&self) -> &dyn (::std::any::Any) {
2519        self as &dyn (::std::any::Any)
2520    }
2521    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2522        self as &mut dyn (::std::any::Any)
2523    }
2524    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2525        self
2526    }
2527
2528    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2529        Self::descriptor_static()
2530    }
2531
2532    fn new() -> ListInstanceConfigsRequest {
2533        ListInstanceConfigsRequest::new()
2534    }
2535
2536    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2537        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2538        descriptor.get(|| {
2539            let mut fields = ::std::vec::Vec::new();
2540            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2541                "parent",
2542                |m: &ListInstanceConfigsRequest| { &m.parent },
2543                |m: &mut ListInstanceConfigsRequest| { &mut m.parent },
2544            ));
2545            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2546                "page_size",
2547                |m: &ListInstanceConfigsRequest| { &m.page_size },
2548                |m: &mut ListInstanceConfigsRequest| { &mut m.page_size },
2549            ));
2550            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2551                "page_token",
2552                |m: &ListInstanceConfigsRequest| { &m.page_token },
2553                |m: &mut ListInstanceConfigsRequest| { &mut m.page_token },
2554            ));
2555            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstanceConfigsRequest>(
2556                "ListInstanceConfigsRequest",
2557                fields,
2558                file_descriptor_proto()
2559            )
2560        })
2561    }
2562
2563    fn default_instance() -> &'static ListInstanceConfigsRequest {
2564        static instance: ::protobuf::rt::LazyV2<ListInstanceConfigsRequest> = ::protobuf::rt::LazyV2::INIT;
2565        instance.get(ListInstanceConfigsRequest::new)
2566    }
2567}
2568
2569impl ::protobuf::Clear for ListInstanceConfigsRequest {
2570    fn clear(&mut self) {
2571        self.parent.clear();
2572        self.page_size = 0;
2573        self.page_token.clear();
2574        self.unknown_fields.clear();
2575    }
2576}
2577
2578impl ::std::fmt::Debug for ListInstanceConfigsRequest {
2579    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2580        ::protobuf::text_format::fmt(self, f)
2581    }
2582}
2583
2584impl ::protobuf::reflect::ProtobufValue for ListInstanceConfigsRequest {
2585    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2586        ::protobuf::reflect::ReflectValueRef::Message(self)
2587    }
2588}
2589
2590#[derive(PartialEq,Clone,Default)]
2591pub struct ListInstanceConfigsResponse {
2592    // message fields
2593    pub instance_configs: ::protobuf::RepeatedField<InstanceConfig>,
2594    pub next_page_token: ::std::string::String,
2595    // special fields
2596    pub unknown_fields: ::protobuf::UnknownFields,
2597    pub cached_size: ::protobuf::CachedSize,
2598}
2599
2600impl<'a> ::std::default::Default for &'a ListInstanceConfigsResponse {
2601    fn default() -> &'a ListInstanceConfigsResponse {
2602        <ListInstanceConfigsResponse as ::protobuf::Message>::default_instance()
2603    }
2604}
2605
2606impl ListInstanceConfigsResponse {
2607    pub fn new() -> ListInstanceConfigsResponse {
2608        ::std::default::Default::default()
2609    }
2610
2611    // repeated .google.spanner.admin.instance.v1.InstanceConfig instance_configs = 1;
2612
2613
2614    pub fn get_instance_configs(&self) -> &[InstanceConfig] {
2615        &self.instance_configs
2616    }
2617    pub fn clear_instance_configs(&mut self) {
2618        self.instance_configs.clear();
2619    }
2620
2621    // Param is passed by value, moved
2622    pub fn set_instance_configs(&mut self, v: ::protobuf::RepeatedField<InstanceConfig>) {
2623        self.instance_configs = v;
2624    }
2625
2626    // Mutable pointer to the field.
2627    pub fn mut_instance_configs(&mut self) -> &mut ::protobuf::RepeatedField<InstanceConfig> {
2628        &mut self.instance_configs
2629    }
2630
2631    // Take field
2632    pub fn take_instance_configs(&mut self) -> ::protobuf::RepeatedField<InstanceConfig> {
2633        ::std::mem::replace(&mut self.instance_configs, ::protobuf::RepeatedField::new())
2634    }
2635
2636    // string next_page_token = 2;
2637
2638
2639    pub fn get_next_page_token(&self) -> &str {
2640        &self.next_page_token
2641    }
2642    pub fn clear_next_page_token(&mut self) {
2643        self.next_page_token.clear();
2644    }
2645
2646    // Param is passed by value, moved
2647    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
2648        self.next_page_token = v;
2649    }
2650
2651    // Mutable pointer to the field.
2652    // If field is not initialized, it is initialized with default value first.
2653    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
2654        &mut self.next_page_token
2655    }
2656
2657    // Take field
2658    pub fn take_next_page_token(&mut self) -> ::std::string::String {
2659        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
2660    }
2661}
2662
2663impl ::protobuf::Message for ListInstanceConfigsResponse {
2664    fn is_initialized(&self) -> bool {
2665        for v in &self.instance_configs {
2666            if !v.is_initialized() {
2667                return false;
2668            }
2669        };
2670        true
2671    }
2672
2673    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2674        while !is.eof()? {
2675            let (field_number, wire_type) = is.read_tag_unpack()?;
2676            match field_number {
2677                1 => {
2678                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.instance_configs)?;
2679                },
2680                2 => {
2681                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
2682                },
2683                _ => {
2684                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2685                },
2686            };
2687        }
2688        ::std::result::Result::Ok(())
2689    }
2690
2691    // Compute sizes of nested messages
2692    #[allow(unused_variables)]
2693    fn compute_size(&self) -> u32 {
2694        let mut my_size = 0;
2695        for value in &self.instance_configs {
2696            let len = value.compute_size();
2697            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2698        };
2699        if !self.next_page_token.is_empty() {
2700            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
2701        }
2702        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2703        self.cached_size.set(my_size);
2704        my_size
2705    }
2706
2707    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2708        for v in &self.instance_configs {
2709            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2710            os.write_raw_varint32(v.get_cached_size())?;
2711            v.write_to_with_cached_sizes(os)?;
2712        };
2713        if !self.next_page_token.is_empty() {
2714            os.write_string(2, &self.next_page_token)?;
2715        }
2716        os.write_unknown_fields(self.get_unknown_fields())?;
2717        ::std::result::Result::Ok(())
2718    }
2719
2720    fn get_cached_size(&self) -> u32 {
2721        self.cached_size.get()
2722    }
2723
2724    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2725        &self.unknown_fields
2726    }
2727
2728    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2729        &mut self.unknown_fields
2730    }
2731
2732    fn as_any(&self) -> &dyn (::std::any::Any) {
2733        self as &dyn (::std::any::Any)
2734    }
2735    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2736        self as &mut dyn (::std::any::Any)
2737    }
2738    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2739        self
2740    }
2741
2742    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2743        Self::descriptor_static()
2744    }
2745
2746    fn new() -> ListInstanceConfigsResponse {
2747        ListInstanceConfigsResponse::new()
2748    }
2749
2750    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2751        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2752        descriptor.get(|| {
2753            let mut fields = ::std::vec::Vec::new();
2754            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<InstanceConfig>>(
2755                "instance_configs",
2756                |m: &ListInstanceConfigsResponse| { &m.instance_configs },
2757                |m: &mut ListInstanceConfigsResponse| { &mut m.instance_configs },
2758            ));
2759            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2760                "next_page_token",
2761                |m: &ListInstanceConfigsResponse| { &m.next_page_token },
2762                |m: &mut ListInstanceConfigsResponse| { &mut m.next_page_token },
2763            ));
2764            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstanceConfigsResponse>(
2765                "ListInstanceConfigsResponse",
2766                fields,
2767                file_descriptor_proto()
2768            )
2769        })
2770    }
2771
2772    fn default_instance() -> &'static ListInstanceConfigsResponse {
2773        static instance: ::protobuf::rt::LazyV2<ListInstanceConfigsResponse> = ::protobuf::rt::LazyV2::INIT;
2774        instance.get(ListInstanceConfigsResponse::new)
2775    }
2776}
2777
2778impl ::protobuf::Clear for ListInstanceConfigsResponse {
2779    fn clear(&mut self) {
2780        self.instance_configs.clear();
2781        self.next_page_token.clear();
2782        self.unknown_fields.clear();
2783    }
2784}
2785
2786impl ::std::fmt::Debug for ListInstanceConfigsResponse {
2787    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2788        ::protobuf::text_format::fmt(self, f)
2789    }
2790}
2791
2792impl ::protobuf::reflect::ProtobufValue for ListInstanceConfigsResponse {
2793    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2794        ::protobuf::reflect::ReflectValueRef::Message(self)
2795    }
2796}
2797
2798#[derive(PartialEq,Clone,Default)]
2799pub struct GetInstanceConfigRequest {
2800    // message fields
2801    pub name: ::std::string::String,
2802    // special fields
2803    pub unknown_fields: ::protobuf::UnknownFields,
2804    pub cached_size: ::protobuf::CachedSize,
2805}
2806
2807impl<'a> ::std::default::Default for &'a GetInstanceConfigRequest {
2808    fn default() -> &'a GetInstanceConfigRequest {
2809        <GetInstanceConfigRequest as ::protobuf::Message>::default_instance()
2810    }
2811}
2812
2813impl GetInstanceConfigRequest {
2814    pub fn new() -> GetInstanceConfigRequest {
2815        ::std::default::Default::default()
2816    }
2817
2818    // string name = 1;
2819
2820
2821    pub fn get_name(&self) -> &str {
2822        &self.name
2823    }
2824    pub fn clear_name(&mut self) {
2825        self.name.clear();
2826    }
2827
2828    // Param is passed by value, moved
2829    pub fn set_name(&mut self, v: ::std::string::String) {
2830        self.name = v;
2831    }
2832
2833    // Mutable pointer to the field.
2834    // If field is not initialized, it is initialized with default value first.
2835    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2836        &mut self.name
2837    }
2838
2839    // Take field
2840    pub fn take_name(&mut self) -> ::std::string::String {
2841        ::std::mem::replace(&mut self.name, ::std::string::String::new())
2842    }
2843}
2844
2845impl ::protobuf::Message for GetInstanceConfigRequest {
2846    fn is_initialized(&self) -> bool {
2847        true
2848    }
2849
2850    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2851        while !is.eof()? {
2852            let (field_number, wire_type) = is.read_tag_unpack()?;
2853            match field_number {
2854                1 => {
2855                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2856                },
2857                _ => {
2858                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2859                },
2860            };
2861        }
2862        ::std::result::Result::Ok(())
2863    }
2864
2865    // Compute sizes of nested messages
2866    #[allow(unused_variables)]
2867    fn compute_size(&self) -> u32 {
2868        let mut my_size = 0;
2869        if !self.name.is_empty() {
2870            my_size += ::protobuf::rt::string_size(1, &self.name);
2871        }
2872        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2873        self.cached_size.set(my_size);
2874        my_size
2875    }
2876
2877    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2878        if !self.name.is_empty() {
2879            os.write_string(1, &self.name)?;
2880        }
2881        os.write_unknown_fields(self.get_unknown_fields())?;
2882        ::std::result::Result::Ok(())
2883    }
2884
2885    fn get_cached_size(&self) -> u32 {
2886        self.cached_size.get()
2887    }
2888
2889    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2890        &self.unknown_fields
2891    }
2892
2893    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2894        &mut self.unknown_fields
2895    }
2896
2897    fn as_any(&self) -> &dyn (::std::any::Any) {
2898        self as &dyn (::std::any::Any)
2899    }
2900    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2901        self as &mut dyn (::std::any::Any)
2902    }
2903    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2904        self
2905    }
2906
2907    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2908        Self::descriptor_static()
2909    }
2910
2911    fn new() -> GetInstanceConfigRequest {
2912        GetInstanceConfigRequest::new()
2913    }
2914
2915    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2916        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2917        descriptor.get(|| {
2918            let mut fields = ::std::vec::Vec::new();
2919            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2920                "name",
2921                |m: &GetInstanceConfigRequest| { &m.name },
2922                |m: &mut GetInstanceConfigRequest| { &mut m.name },
2923            ));
2924            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetInstanceConfigRequest>(
2925                "GetInstanceConfigRequest",
2926                fields,
2927                file_descriptor_proto()
2928            )
2929        })
2930    }
2931
2932    fn default_instance() -> &'static GetInstanceConfigRequest {
2933        static instance: ::protobuf::rt::LazyV2<GetInstanceConfigRequest> = ::protobuf::rt::LazyV2::INIT;
2934        instance.get(GetInstanceConfigRequest::new)
2935    }
2936}
2937
2938impl ::protobuf::Clear for GetInstanceConfigRequest {
2939    fn clear(&mut self) {
2940        self.name.clear();
2941        self.unknown_fields.clear();
2942    }
2943}
2944
2945impl ::std::fmt::Debug for GetInstanceConfigRequest {
2946    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2947        ::protobuf::text_format::fmt(self, f)
2948    }
2949}
2950
2951impl ::protobuf::reflect::ProtobufValue for GetInstanceConfigRequest {
2952    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2953        ::protobuf::reflect::ReflectValueRef::Message(self)
2954    }
2955}
2956
2957#[derive(PartialEq,Clone,Default)]
2958pub struct CreateInstanceConfigRequest {
2959    // message fields
2960    pub parent: ::std::string::String,
2961    pub instance_config_id: ::std::string::String,
2962    pub instance_config: ::protobuf::SingularPtrField<InstanceConfig>,
2963    pub validate_only: bool,
2964    // special fields
2965    pub unknown_fields: ::protobuf::UnknownFields,
2966    pub cached_size: ::protobuf::CachedSize,
2967}
2968
2969impl<'a> ::std::default::Default for &'a CreateInstanceConfigRequest {
2970    fn default() -> &'a CreateInstanceConfigRequest {
2971        <CreateInstanceConfigRequest as ::protobuf::Message>::default_instance()
2972    }
2973}
2974
2975impl CreateInstanceConfigRequest {
2976    pub fn new() -> CreateInstanceConfigRequest {
2977        ::std::default::Default::default()
2978    }
2979
2980    // string parent = 1;
2981
2982
2983    pub fn get_parent(&self) -> &str {
2984        &self.parent
2985    }
2986    pub fn clear_parent(&mut self) {
2987        self.parent.clear();
2988    }
2989
2990    // Param is passed by value, moved
2991    pub fn set_parent(&mut self, v: ::std::string::String) {
2992        self.parent = v;
2993    }
2994
2995    // Mutable pointer to the field.
2996    // If field is not initialized, it is initialized with default value first.
2997    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
2998        &mut self.parent
2999    }
3000
3001    // Take field
3002    pub fn take_parent(&mut self) -> ::std::string::String {
3003        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
3004    }
3005
3006    // string instance_config_id = 2;
3007
3008
3009    pub fn get_instance_config_id(&self) -> &str {
3010        &self.instance_config_id
3011    }
3012    pub fn clear_instance_config_id(&mut self) {
3013        self.instance_config_id.clear();
3014    }
3015
3016    // Param is passed by value, moved
3017    pub fn set_instance_config_id(&mut self, v: ::std::string::String) {
3018        self.instance_config_id = v;
3019    }
3020
3021    // Mutable pointer to the field.
3022    // If field is not initialized, it is initialized with default value first.
3023    pub fn mut_instance_config_id(&mut self) -> &mut ::std::string::String {
3024        &mut self.instance_config_id
3025    }
3026
3027    // Take field
3028    pub fn take_instance_config_id(&mut self) -> ::std::string::String {
3029        ::std::mem::replace(&mut self.instance_config_id, ::std::string::String::new())
3030    }
3031
3032    // .google.spanner.admin.instance.v1.InstanceConfig instance_config = 3;
3033
3034
3035    pub fn get_instance_config(&self) -> &InstanceConfig {
3036        self.instance_config.as_ref().unwrap_or_else(|| <InstanceConfig as ::protobuf::Message>::default_instance())
3037    }
3038    pub fn clear_instance_config(&mut self) {
3039        self.instance_config.clear();
3040    }
3041
3042    pub fn has_instance_config(&self) -> bool {
3043        self.instance_config.is_some()
3044    }
3045
3046    // Param is passed by value, moved
3047    pub fn set_instance_config(&mut self, v: InstanceConfig) {
3048        self.instance_config = ::protobuf::SingularPtrField::some(v);
3049    }
3050
3051    // Mutable pointer to the field.
3052    // If field is not initialized, it is initialized with default value first.
3053    pub fn mut_instance_config(&mut self) -> &mut InstanceConfig {
3054        if self.instance_config.is_none() {
3055            self.instance_config.set_default();
3056        }
3057        self.instance_config.as_mut().unwrap()
3058    }
3059
3060    // Take field
3061    pub fn take_instance_config(&mut self) -> InstanceConfig {
3062        self.instance_config.take().unwrap_or_else(|| InstanceConfig::new())
3063    }
3064
3065    // bool validate_only = 4;
3066
3067
3068    pub fn get_validate_only(&self) -> bool {
3069        self.validate_only
3070    }
3071    pub fn clear_validate_only(&mut self) {
3072        self.validate_only = false;
3073    }
3074
3075    // Param is passed by value, moved
3076    pub fn set_validate_only(&mut self, v: bool) {
3077        self.validate_only = v;
3078    }
3079}
3080
3081impl ::protobuf::Message for CreateInstanceConfigRequest {
3082    fn is_initialized(&self) -> bool {
3083        for v in &self.instance_config {
3084            if !v.is_initialized() {
3085                return false;
3086            }
3087        };
3088        true
3089    }
3090
3091    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3092        while !is.eof()? {
3093            let (field_number, wire_type) = is.read_tag_unpack()?;
3094            match field_number {
3095                1 => {
3096                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
3097                },
3098                2 => {
3099                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.instance_config_id)?;
3100                },
3101                3 => {
3102                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance_config)?;
3103                },
3104                4 => {
3105                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3106                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3107                    }
3108                    let tmp = is.read_bool()?;
3109                    self.validate_only = tmp;
3110                },
3111                _ => {
3112                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3113                },
3114            };
3115        }
3116        ::std::result::Result::Ok(())
3117    }
3118
3119    // Compute sizes of nested messages
3120    #[allow(unused_variables)]
3121    fn compute_size(&self) -> u32 {
3122        let mut my_size = 0;
3123        if !self.parent.is_empty() {
3124            my_size += ::protobuf::rt::string_size(1, &self.parent);
3125        }
3126        if !self.instance_config_id.is_empty() {
3127            my_size += ::protobuf::rt::string_size(2, &self.instance_config_id);
3128        }
3129        if let Some(ref v) = self.instance_config.as_ref() {
3130            let len = v.compute_size();
3131            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3132        }
3133        if self.validate_only != false {
3134            my_size += 2;
3135        }
3136        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3137        self.cached_size.set(my_size);
3138        my_size
3139    }
3140
3141    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3142        if !self.parent.is_empty() {
3143            os.write_string(1, &self.parent)?;
3144        }
3145        if !self.instance_config_id.is_empty() {
3146            os.write_string(2, &self.instance_config_id)?;
3147        }
3148        if let Some(ref v) = self.instance_config.as_ref() {
3149            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3150            os.write_raw_varint32(v.get_cached_size())?;
3151            v.write_to_with_cached_sizes(os)?;
3152        }
3153        if self.validate_only != false {
3154            os.write_bool(4, self.validate_only)?;
3155        }
3156        os.write_unknown_fields(self.get_unknown_fields())?;
3157        ::std::result::Result::Ok(())
3158    }
3159
3160    fn get_cached_size(&self) -> u32 {
3161        self.cached_size.get()
3162    }
3163
3164    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3165        &self.unknown_fields
3166    }
3167
3168    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3169        &mut self.unknown_fields
3170    }
3171
3172    fn as_any(&self) -> &dyn (::std::any::Any) {
3173        self as &dyn (::std::any::Any)
3174    }
3175    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3176        self as &mut dyn (::std::any::Any)
3177    }
3178    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3179        self
3180    }
3181
3182    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3183        Self::descriptor_static()
3184    }
3185
3186    fn new() -> CreateInstanceConfigRequest {
3187        CreateInstanceConfigRequest::new()
3188    }
3189
3190    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3191        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3192        descriptor.get(|| {
3193            let mut fields = ::std::vec::Vec::new();
3194            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3195                "parent",
3196                |m: &CreateInstanceConfigRequest| { &m.parent },
3197                |m: &mut CreateInstanceConfigRequest| { &mut m.parent },
3198            ));
3199            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3200                "instance_config_id",
3201                |m: &CreateInstanceConfigRequest| { &m.instance_config_id },
3202                |m: &mut CreateInstanceConfigRequest| { &mut m.instance_config_id },
3203            ));
3204            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<InstanceConfig>>(
3205                "instance_config",
3206                |m: &CreateInstanceConfigRequest| { &m.instance_config },
3207                |m: &mut CreateInstanceConfigRequest| { &mut m.instance_config },
3208            ));
3209            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3210                "validate_only",
3211                |m: &CreateInstanceConfigRequest| { &m.validate_only },
3212                |m: &mut CreateInstanceConfigRequest| { &mut m.validate_only },
3213            ));
3214            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateInstanceConfigRequest>(
3215                "CreateInstanceConfigRequest",
3216                fields,
3217                file_descriptor_proto()
3218            )
3219        })
3220    }
3221
3222    fn default_instance() -> &'static CreateInstanceConfigRequest {
3223        static instance: ::protobuf::rt::LazyV2<CreateInstanceConfigRequest> = ::protobuf::rt::LazyV2::INIT;
3224        instance.get(CreateInstanceConfigRequest::new)
3225    }
3226}
3227
3228impl ::protobuf::Clear for CreateInstanceConfigRequest {
3229    fn clear(&mut self) {
3230        self.parent.clear();
3231        self.instance_config_id.clear();
3232        self.instance_config.clear();
3233        self.validate_only = false;
3234        self.unknown_fields.clear();
3235    }
3236}
3237
3238impl ::std::fmt::Debug for CreateInstanceConfigRequest {
3239    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3240        ::protobuf::text_format::fmt(self, f)
3241    }
3242}
3243
3244impl ::protobuf::reflect::ProtobufValue for CreateInstanceConfigRequest {
3245    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3246        ::protobuf::reflect::ReflectValueRef::Message(self)
3247    }
3248}
3249
3250#[derive(PartialEq,Clone,Default)]
3251pub struct UpdateInstanceConfigRequest {
3252    // message fields
3253    pub instance_config: ::protobuf::SingularPtrField<InstanceConfig>,
3254    pub update_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
3255    pub validate_only: bool,
3256    // special fields
3257    pub unknown_fields: ::protobuf::UnknownFields,
3258    pub cached_size: ::protobuf::CachedSize,
3259}
3260
3261impl<'a> ::std::default::Default for &'a UpdateInstanceConfigRequest {
3262    fn default() -> &'a UpdateInstanceConfigRequest {
3263        <UpdateInstanceConfigRequest as ::protobuf::Message>::default_instance()
3264    }
3265}
3266
3267impl UpdateInstanceConfigRequest {
3268    pub fn new() -> UpdateInstanceConfigRequest {
3269        ::std::default::Default::default()
3270    }
3271
3272    // .google.spanner.admin.instance.v1.InstanceConfig instance_config = 1;
3273
3274
3275    pub fn get_instance_config(&self) -> &InstanceConfig {
3276        self.instance_config.as_ref().unwrap_or_else(|| <InstanceConfig as ::protobuf::Message>::default_instance())
3277    }
3278    pub fn clear_instance_config(&mut self) {
3279        self.instance_config.clear();
3280    }
3281
3282    pub fn has_instance_config(&self) -> bool {
3283        self.instance_config.is_some()
3284    }
3285
3286    // Param is passed by value, moved
3287    pub fn set_instance_config(&mut self, v: InstanceConfig) {
3288        self.instance_config = ::protobuf::SingularPtrField::some(v);
3289    }
3290
3291    // Mutable pointer to the field.
3292    // If field is not initialized, it is initialized with default value first.
3293    pub fn mut_instance_config(&mut self) -> &mut InstanceConfig {
3294        if self.instance_config.is_none() {
3295            self.instance_config.set_default();
3296        }
3297        self.instance_config.as_mut().unwrap()
3298    }
3299
3300    // Take field
3301    pub fn take_instance_config(&mut self) -> InstanceConfig {
3302        self.instance_config.take().unwrap_or_else(|| InstanceConfig::new())
3303    }
3304
3305    // .google.protobuf.FieldMask update_mask = 2;
3306
3307
3308    pub fn get_update_mask(&self) -> &::protobuf::well_known_types::FieldMask {
3309        self.update_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
3310    }
3311    pub fn clear_update_mask(&mut self) {
3312        self.update_mask.clear();
3313    }
3314
3315    pub fn has_update_mask(&self) -> bool {
3316        self.update_mask.is_some()
3317    }
3318
3319    // Param is passed by value, moved
3320    pub fn set_update_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
3321        self.update_mask = ::protobuf::SingularPtrField::some(v);
3322    }
3323
3324    // Mutable pointer to the field.
3325    // If field is not initialized, it is initialized with default value first.
3326    pub fn mut_update_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
3327        if self.update_mask.is_none() {
3328            self.update_mask.set_default();
3329        }
3330        self.update_mask.as_mut().unwrap()
3331    }
3332
3333    // Take field
3334    pub fn take_update_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
3335        self.update_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
3336    }
3337
3338    // bool validate_only = 3;
3339
3340
3341    pub fn get_validate_only(&self) -> bool {
3342        self.validate_only
3343    }
3344    pub fn clear_validate_only(&mut self) {
3345        self.validate_only = false;
3346    }
3347
3348    // Param is passed by value, moved
3349    pub fn set_validate_only(&mut self, v: bool) {
3350        self.validate_only = v;
3351    }
3352}
3353
3354impl ::protobuf::Message for UpdateInstanceConfigRequest {
3355    fn is_initialized(&self) -> bool {
3356        for v in &self.instance_config {
3357            if !v.is_initialized() {
3358                return false;
3359            }
3360        };
3361        for v in &self.update_mask {
3362            if !v.is_initialized() {
3363                return false;
3364            }
3365        };
3366        true
3367    }
3368
3369    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3370        while !is.eof()? {
3371            let (field_number, wire_type) = is.read_tag_unpack()?;
3372            match field_number {
3373                1 => {
3374                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance_config)?;
3375                },
3376                2 => {
3377                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_mask)?;
3378                },
3379                3 => {
3380                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3381                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3382                    }
3383                    let tmp = is.read_bool()?;
3384                    self.validate_only = tmp;
3385                },
3386                _ => {
3387                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3388                },
3389            };
3390        }
3391        ::std::result::Result::Ok(())
3392    }
3393
3394    // Compute sizes of nested messages
3395    #[allow(unused_variables)]
3396    fn compute_size(&self) -> u32 {
3397        let mut my_size = 0;
3398        if let Some(ref v) = self.instance_config.as_ref() {
3399            let len = v.compute_size();
3400            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3401        }
3402        if let Some(ref v) = self.update_mask.as_ref() {
3403            let len = v.compute_size();
3404            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3405        }
3406        if self.validate_only != false {
3407            my_size += 2;
3408        }
3409        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3410        self.cached_size.set(my_size);
3411        my_size
3412    }
3413
3414    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3415        if let Some(ref v) = self.instance_config.as_ref() {
3416            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3417            os.write_raw_varint32(v.get_cached_size())?;
3418            v.write_to_with_cached_sizes(os)?;
3419        }
3420        if let Some(ref v) = self.update_mask.as_ref() {
3421            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3422            os.write_raw_varint32(v.get_cached_size())?;
3423            v.write_to_with_cached_sizes(os)?;
3424        }
3425        if self.validate_only != false {
3426            os.write_bool(3, self.validate_only)?;
3427        }
3428        os.write_unknown_fields(self.get_unknown_fields())?;
3429        ::std::result::Result::Ok(())
3430    }
3431
3432    fn get_cached_size(&self) -> u32 {
3433        self.cached_size.get()
3434    }
3435
3436    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3437        &self.unknown_fields
3438    }
3439
3440    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3441        &mut self.unknown_fields
3442    }
3443
3444    fn as_any(&self) -> &dyn (::std::any::Any) {
3445        self as &dyn (::std::any::Any)
3446    }
3447    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3448        self as &mut dyn (::std::any::Any)
3449    }
3450    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3451        self
3452    }
3453
3454    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3455        Self::descriptor_static()
3456    }
3457
3458    fn new() -> UpdateInstanceConfigRequest {
3459        UpdateInstanceConfigRequest::new()
3460    }
3461
3462    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3463        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3464        descriptor.get(|| {
3465            let mut fields = ::std::vec::Vec::new();
3466            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<InstanceConfig>>(
3467                "instance_config",
3468                |m: &UpdateInstanceConfigRequest| { &m.instance_config },
3469                |m: &mut UpdateInstanceConfigRequest| { &mut m.instance_config },
3470            ));
3471            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
3472                "update_mask",
3473                |m: &UpdateInstanceConfigRequest| { &m.update_mask },
3474                |m: &mut UpdateInstanceConfigRequest| { &mut m.update_mask },
3475            ));
3476            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3477                "validate_only",
3478                |m: &UpdateInstanceConfigRequest| { &m.validate_only },
3479                |m: &mut UpdateInstanceConfigRequest| { &mut m.validate_only },
3480            ));
3481            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateInstanceConfigRequest>(
3482                "UpdateInstanceConfigRequest",
3483                fields,
3484                file_descriptor_proto()
3485            )
3486        })
3487    }
3488
3489    fn default_instance() -> &'static UpdateInstanceConfigRequest {
3490        static instance: ::protobuf::rt::LazyV2<UpdateInstanceConfigRequest> = ::protobuf::rt::LazyV2::INIT;
3491        instance.get(UpdateInstanceConfigRequest::new)
3492    }
3493}
3494
3495impl ::protobuf::Clear for UpdateInstanceConfigRequest {
3496    fn clear(&mut self) {
3497        self.instance_config.clear();
3498        self.update_mask.clear();
3499        self.validate_only = false;
3500        self.unknown_fields.clear();
3501    }
3502}
3503
3504impl ::std::fmt::Debug for UpdateInstanceConfigRequest {
3505    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3506        ::protobuf::text_format::fmt(self, f)
3507    }
3508}
3509
3510impl ::protobuf::reflect::ProtobufValue for UpdateInstanceConfigRequest {
3511    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3512        ::protobuf::reflect::ReflectValueRef::Message(self)
3513    }
3514}
3515
3516#[derive(PartialEq,Clone,Default)]
3517pub struct DeleteInstanceConfigRequest {
3518    // message fields
3519    pub name: ::std::string::String,
3520    pub etag: ::std::string::String,
3521    pub validate_only: bool,
3522    // special fields
3523    pub unknown_fields: ::protobuf::UnknownFields,
3524    pub cached_size: ::protobuf::CachedSize,
3525}
3526
3527impl<'a> ::std::default::Default for &'a DeleteInstanceConfigRequest {
3528    fn default() -> &'a DeleteInstanceConfigRequest {
3529        <DeleteInstanceConfigRequest as ::protobuf::Message>::default_instance()
3530    }
3531}
3532
3533impl DeleteInstanceConfigRequest {
3534    pub fn new() -> DeleteInstanceConfigRequest {
3535        ::std::default::Default::default()
3536    }
3537
3538    // string name = 1;
3539
3540
3541    pub fn get_name(&self) -> &str {
3542        &self.name
3543    }
3544    pub fn clear_name(&mut self) {
3545        self.name.clear();
3546    }
3547
3548    // Param is passed by value, moved
3549    pub fn set_name(&mut self, v: ::std::string::String) {
3550        self.name = v;
3551    }
3552
3553    // Mutable pointer to the field.
3554    // If field is not initialized, it is initialized with default value first.
3555    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3556        &mut self.name
3557    }
3558
3559    // Take field
3560    pub fn take_name(&mut self) -> ::std::string::String {
3561        ::std::mem::replace(&mut self.name, ::std::string::String::new())
3562    }
3563
3564    // string etag = 2;
3565
3566
3567    pub fn get_etag(&self) -> &str {
3568        &self.etag
3569    }
3570    pub fn clear_etag(&mut self) {
3571        self.etag.clear();
3572    }
3573
3574    // Param is passed by value, moved
3575    pub fn set_etag(&mut self, v: ::std::string::String) {
3576        self.etag = v;
3577    }
3578
3579    // Mutable pointer to the field.
3580    // If field is not initialized, it is initialized with default value first.
3581    pub fn mut_etag(&mut self) -> &mut ::std::string::String {
3582        &mut self.etag
3583    }
3584
3585    // Take field
3586    pub fn take_etag(&mut self) -> ::std::string::String {
3587        ::std::mem::replace(&mut self.etag, ::std::string::String::new())
3588    }
3589
3590    // bool validate_only = 3;
3591
3592
3593    pub fn get_validate_only(&self) -> bool {
3594        self.validate_only
3595    }
3596    pub fn clear_validate_only(&mut self) {
3597        self.validate_only = false;
3598    }
3599
3600    // Param is passed by value, moved
3601    pub fn set_validate_only(&mut self, v: bool) {
3602        self.validate_only = v;
3603    }
3604}
3605
3606impl ::protobuf::Message for DeleteInstanceConfigRequest {
3607    fn is_initialized(&self) -> bool {
3608        true
3609    }
3610
3611    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3612        while !is.eof()? {
3613            let (field_number, wire_type) = is.read_tag_unpack()?;
3614            match field_number {
3615                1 => {
3616                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
3617                },
3618                2 => {
3619                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.etag)?;
3620                },
3621                3 => {
3622                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3623                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3624                    }
3625                    let tmp = is.read_bool()?;
3626                    self.validate_only = tmp;
3627                },
3628                _ => {
3629                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3630                },
3631            };
3632        }
3633        ::std::result::Result::Ok(())
3634    }
3635
3636    // Compute sizes of nested messages
3637    #[allow(unused_variables)]
3638    fn compute_size(&self) -> u32 {
3639        let mut my_size = 0;
3640        if !self.name.is_empty() {
3641            my_size += ::protobuf::rt::string_size(1, &self.name);
3642        }
3643        if !self.etag.is_empty() {
3644            my_size += ::protobuf::rt::string_size(2, &self.etag);
3645        }
3646        if self.validate_only != false {
3647            my_size += 2;
3648        }
3649        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3650        self.cached_size.set(my_size);
3651        my_size
3652    }
3653
3654    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3655        if !self.name.is_empty() {
3656            os.write_string(1, &self.name)?;
3657        }
3658        if !self.etag.is_empty() {
3659            os.write_string(2, &self.etag)?;
3660        }
3661        if self.validate_only != false {
3662            os.write_bool(3, self.validate_only)?;
3663        }
3664        os.write_unknown_fields(self.get_unknown_fields())?;
3665        ::std::result::Result::Ok(())
3666    }
3667
3668    fn get_cached_size(&self) -> u32 {
3669        self.cached_size.get()
3670    }
3671
3672    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3673        &self.unknown_fields
3674    }
3675
3676    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3677        &mut self.unknown_fields
3678    }
3679
3680    fn as_any(&self) -> &dyn (::std::any::Any) {
3681        self as &dyn (::std::any::Any)
3682    }
3683    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3684        self as &mut dyn (::std::any::Any)
3685    }
3686    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3687        self
3688    }
3689
3690    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3691        Self::descriptor_static()
3692    }
3693
3694    fn new() -> DeleteInstanceConfigRequest {
3695        DeleteInstanceConfigRequest::new()
3696    }
3697
3698    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3699        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3700        descriptor.get(|| {
3701            let mut fields = ::std::vec::Vec::new();
3702            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3703                "name",
3704                |m: &DeleteInstanceConfigRequest| { &m.name },
3705                |m: &mut DeleteInstanceConfigRequest| { &mut m.name },
3706            ));
3707            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3708                "etag",
3709                |m: &DeleteInstanceConfigRequest| { &m.etag },
3710                |m: &mut DeleteInstanceConfigRequest| { &mut m.etag },
3711            ));
3712            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3713                "validate_only",
3714                |m: &DeleteInstanceConfigRequest| { &m.validate_only },
3715                |m: &mut DeleteInstanceConfigRequest| { &mut m.validate_only },
3716            ));
3717            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteInstanceConfigRequest>(
3718                "DeleteInstanceConfigRequest",
3719                fields,
3720                file_descriptor_proto()
3721            )
3722        })
3723    }
3724
3725    fn default_instance() -> &'static DeleteInstanceConfigRequest {
3726        static instance: ::protobuf::rt::LazyV2<DeleteInstanceConfigRequest> = ::protobuf::rt::LazyV2::INIT;
3727        instance.get(DeleteInstanceConfigRequest::new)
3728    }
3729}
3730
3731impl ::protobuf::Clear for DeleteInstanceConfigRequest {
3732    fn clear(&mut self) {
3733        self.name.clear();
3734        self.etag.clear();
3735        self.validate_only = false;
3736        self.unknown_fields.clear();
3737    }
3738}
3739
3740impl ::std::fmt::Debug for DeleteInstanceConfigRequest {
3741    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3742        ::protobuf::text_format::fmt(self, f)
3743    }
3744}
3745
3746impl ::protobuf::reflect::ProtobufValue for DeleteInstanceConfigRequest {
3747    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3748        ::protobuf::reflect::ReflectValueRef::Message(self)
3749    }
3750}
3751
3752#[derive(PartialEq,Clone,Default)]
3753pub struct ListInstanceConfigOperationsRequest {
3754    // message fields
3755    pub parent: ::std::string::String,
3756    pub filter: ::std::string::String,
3757    pub page_size: i32,
3758    pub page_token: ::std::string::String,
3759    // special fields
3760    pub unknown_fields: ::protobuf::UnknownFields,
3761    pub cached_size: ::protobuf::CachedSize,
3762}
3763
3764impl<'a> ::std::default::Default for &'a ListInstanceConfigOperationsRequest {
3765    fn default() -> &'a ListInstanceConfigOperationsRequest {
3766        <ListInstanceConfigOperationsRequest as ::protobuf::Message>::default_instance()
3767    }
3768}
3769
3770impl ListInstanceConfigOperationsRequest {
3771    pub fn new() -> ListInstanceConfigOperationsRequest {
3772        ::std::default::Default::default()
3773    }
3774
3775    // string parent = 1;
3776
3777
3778    pub fn get_parent(&self) -> &str {
3779        &self.parent
3780    }
3781    pub fn clear_parent(&mut self) {
3782        self.parent.clear();
3783    }
3784
3785    // Param is passed by value, moved
3786    pub fn set_parent(&mut self, v: ::std::string::String) {
3787        self.parent = v;
3788    }
3789
3790    // Mutable pointer to the field.
3791    // If field is not initialized, it is initialized with default value first.
3792    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
3793        &mut self.parent
3794    }
3795
3796    // Take field
3797    pub fn take_parent(&mut self) -> ::std::string::String {
3798        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
3799    }
3800
3801    // string filter = 2;
3802
3803
3804    pub fn get_filter(&self) -> &str {
3805        &self.filter
3806    }
3807    pub fn clear_filter(&mut self) {
3808        self.filter.clear();
3809    }
3810
3811    // Param is passed by value, moved
3812    pub fn set_filter(&mut self, v: ::std::string::String) {
3813        self.filter = v;
3814    }
3815
3816    // Mutable pointer to the field.
3817    // If field is not initialized, it is initialized with default value first.
3818    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
3819        &mut self.filter
3820    }
3821
3822    // Take field
3823    pub fn take_filter(&mut self) -> ::std::string::String {
3824        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
3825    }
3826
3827    // int32 page_size = 3;
3828
3829
3830    pub fn get_page_size(&self) -> i32 {
3831        self.page_size
3832    }
3833    pub fn clear_page_size(&mut self) {
3834        self.page_size = 0;
3835    }
3836
3837    // Param is passed by value, moved
3838    pub fn set_page_size(&mut self, v: i32) {
3839        self.page_size = v;
3840    }
3841
3842    // string page_token = 4;
3843
3844
3845    pub fn get_page_token(&self) -> &str {
3846        &self.page_token
3847    }
3848    pub fn clear_page_token(&mut self) {
3849        self.page_token.clear();
3850    }
3851
3852    // Param is passed by value, moved
3853    pub fn set_page_token(&mut self, v: ::std::string::String) {
3854        self.page_token = v;
3855    }
3856
3857    // Mutable pointer to the field.
3858    // If field is not initialized, it is initialized with default value first.
3859    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
3860        &mut self.page_token
3861    }
3862
3863    // Take field
3864    pub fn take_page_token(&mut self) -> ::std::string::String {
3865        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
3866    }
3867}
3868
3869impl ::protobuf::Message for ListInstanceConfigOperationsRequest {
3870    fn is_initialized(&self) -> bool {
3871        true
3872    }
3873
3874    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3875        while !is.eof()? {
3876            let (field_number, wire_type) = is.read_tag_unpack()?;
3877            match field_number {
3878                1 => {
3879                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
3880                },
3881                2 => {
3882                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
3883                },
3884                3 => {
3885                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3886                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3887                    }
3888                    let tmp = is.read_int32()?;
3889                    self.page_size = tmp;
3890                },
3891                4 => {
3892                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
3893                },
3894                _ => {
3895                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3896                },
3897            };
3898        }
3899        ::std::result::Result::Ok(())
3900    }
3901
3902    // Compute sizes of nested messages
3903    #[allow(unused_variables)]
3904    fn compute_size(&self) -> u32 {
3905        let mut my_size = 0;
3906        if !self.parent.is_empty() {
3907            my_size += ::protobuf::rt::string_size(1, &self.parent);
3908        }
3909        if !self.filter.is_empty() {
3910            my_size += ::protobuf::rt::string_size(2, &self.filter);
3911        }
3912        if self.page_size != 0 {
3913            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
3914        }
3915        if !self.page_token.is_empty() {
3916            my_size += ::protobuf::rt::string_size(4, &self.page_token);
3917        }
3918        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3919        self.cached_size.set(my_size);
3920        my_size
3921    }
3922
3923    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3924        if !self.parent.is_empty() {
3925            os.write_string(1, &self.parent)?;
3926        }
3927        if !self.filter.is_empty() {
3928            os.write_string(2, &self.filter)?;
3929        }
3930        if self.page_size != 0 {
3931            os.write_int32(3, self.page_size)?;
3932        }
3933        if !self.page_token.is_empty() {
3934            os.write_string(4, &self.page_token)?;
3935        }
3936        os.write_unknown_fields(self.get_unknown_fields())?;
3937        ::std::result::Result::Ok(())
3938    }
3939
3940    fn get_cached_size(&self) -> u32 {
3941        self.cached_size.get()
3942    }
3943
3944    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3945        &self.unknown_fields
3946    }
3947
3948    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3949        &mut self.unknown_fields
3950    }
3951
3952    fn as_any(&self) -> &dyn (::std::any::Any) {
3953        self as &dyn (::std::any::Any)
3954    }
3955    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3956        self as &mut dyn (::std::any::Any)
3957    }
3958    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3959        self
3960    }
3961
3962    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3963        Self::descriptor_static()
3964    }
3965
3966    fn new() -> ListInstanceConfigOperationsRequest {
3967        ListInstanceConfigOperationsRequest::new()
3968    }
3969
3970    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3971        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3972        descriptor.get(|| {
3973            let mut fields = ::std::vec::Vec::new();
3974            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3975                "parent",
3976                |m: &ListInstanceConfigOperationsRequest| { &m.parent },
3977                |m: &mut ListInstanceConfigOperationsRequest| { &mut m.parent },
3978            ));
3979            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3980                "filter",
3981                |m: &ListInstanceConfigOperationsRequest| { &m.filter },
3982                |m: &mut ListInstanceConfigOperationsRequest| { &mut m.filter },
3983            ));
3984            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3985                "page_size",
3986                |m: &ListInstanceConfigOperationsRequest| { &m.page_size },
3987                |m: &mut ListInstanceConfigOperationsRequest| { &mut m.page_size },
3988            ));
3989            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3990                "page_token",
3991                |m: &ListInstanceConfigOperationsRequest| { &m.page_token },
3992                |m: &mut ListInstanceConfigOperationsRequest| { &mut m.page_token },
3993            ));
3994            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstanceConfigOperationsRequest>(
3995                "ListInstanceConfigOperationsRequest",
3996                fields,
3997                file_descriptor_proto()
3998            )
3999        })
4000    }
4001
4002    fn default_instance() -> &'static ListInstanceConfigOperationsRequest {
4003        static instance: ::protobuf::rt::LazyV2<ListInstanceConfigOperationsRequest> = ::protobuf::rt::LazyV2::INIT;
4004        instance.get(ListInstanceConfigOperationsRequest::new)
4005    }
4006}
4007
4008impl ::protobuf::Clear for ListInstanceConfigOperationsRequest {
4009    fn clear(&mut self) {
4010        self.parent.clear();
4011        self.filter.clear();
4012        self.page_size = 0;
4013        self.page_token.clear();
4014        self.unknown_fields.clear();
4015    }
4016}
4017
4018impl ::std::fmt::Debug for ListInstanceConfigOperationsRequest {
4019    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4020        ::protobuf::text_format::fmt(self, f)
4021    }
4022}
4023
4024impl ::protobuf::reflect::ProtobufValue for ListInstanceConfigOperationsRequest {
4025    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4026        ::protobuf::reflect::ReflectValueRef::Message(self)
4027    }
4028}
4029
4030#[derive(PartialEq,Clone,Default)]
4031pub struct ListInstanceConfigOperationsResponse {
4032    // message fields
4033    pub operations: ::protobuf::RepeatedField<super::operations::Operation>,
4034    pub next_page_token: ::std::string::String,
4035    // special fields
4036    pub unknown_fields: ::protobuf::UnknownFields,
4037    pub cached_size: ::protobuf::CachedSize,
4038}
4039
4040impl<'a> ::std::default::Default for &'a ListInstanceConfigOperationsResponse {
4041    fn default() -> &'a ListInstanceConfigOperationsResponse {
4042        <ListInstanceConfigOperationsResponse as ::protobuf::Message>::default_instance()
4043    }
4044}
4045
4046impl ListInstanceConfigOperationsResponse {
4047    pub fn new() -> ListInstanceConfigOperationsResponse {
4048        ::std::default::Default::default()
4049    }
4050
4051    // repeated .google.longrunning.Operation operations = 1;
4052
4053
4054    pub fn get_operations(&self) -> &[super::operations::Operation] {
4055        &self.operations
4056    }
4057    pub fn clear_operations(&mut self) {
4058        self.operations.clear();
4059    }
4060
4061    // Param is passed by value, moved
4062    pub fn set_operations(&mut self, v: ::protobuf::RepeatedField<super::operations::Operation>) {
4063        self.operations = v;
4064    }
4065
4066    // Mutable pointer to the field.
4067    pub fn mut_operations(&mut self) -> &mut ::protobuf::RepeatedField<super::operations::Operation> {
4068        &mut self.operations
4069    }
4070
4071    // Take field
4072    pub fn take_operations(&mut self) -> ::protobuf::RepeatedField<super::operations::Operation> {
4073        ::std::mem::replace(&mut self.operations, ::protobuf::RepeatedField::new())
4074    }
4075
4076    // string next_page_token = 2;
4077
4078
4079    pub fn get_next_page_token(&self) -> &str {
4080        &self.next_page_token
4081    }
4082    pub fn clear_next_page_token(&mut self) {
4083        self.next_page_token.clear();
4084    }
4085
4086    // Param is passed by value, moved
4087    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
4088        self.next_page_token = v;
4089    }
4090
4091    // Mutable pointer to the field.
4092    // If field is not initialized, it is initialized with default value first.
4093    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
4094        &mut self.next_page_token
4095    }
4096
4097    // Take field
4098    pub fn take_next_page_token(&mut self) -> ::std::string::String {
4099        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
4100    }
4101}
4102
4103impl ::protobuf::Message for ListInstanceConfigOperationsResponse {
4104    fn is_initialized(&self) -> bool {
4105        for v in &self.operations {
4106            if !v.is_initialized() {
4107                return false;
4108            }
4109        };
4110        true
4111    }
4112
4113    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4114        while !is.eof()? {
4115            let (field_number, wire_type) = is.read_tag_unpack()?;
4116            match field_number {
4117                1 => {
4118                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.operations)?;
4119                },
4120                2 => {
4121                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
4122                },
4123                _ => {
4124                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4125                },
4126            };
4127        }
4128        ::std::result::Result::Ok(())
4129    }
4130
4131    // Compute sizes of nested messages
4132    #[allow(unused_variables)]
4133    fn compute_size(&self) -> u32 {
4134        let mut my_size = 0;
4135        for value in &self.operations {
4136            let len = value.compute_size();
4137            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4138        };
4139        if !self.next_page_token.is_empty() {
4140            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
4141        }
4142        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4143        self.cached_size.set(my_size);
4144        my_size
4145    }
4146
4147    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4148        for v in &self.operations {
4149            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4150            os.write_raw_varint32(v.get_cached_size())?;
4151            v.write_to_with_cached_sizes(os)?;
4152        };
4153        if !self.next_page_token.is_empty() {
4154            os.write_string(2, &self.next_page_token)?;
4155        }
4156        os.write_unknown_fields(self.get_unknown_fields())?;
4157        ::std::result::Result::Ok(())
4158    }
4159
4160    fn get_cached_size(&self) -> u32 {
4161        self.cached_size.get()
4162    }
4163
4164    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4165        &self.unknown_fields
4166    }
4167
4168    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4169        &mut self.unknown_fields
4170    }
4171
4172    fn as_any(&self) -> &dyn (::std::any::Any) {
4173        self as &dyn (::std::any::Any)
4174    }
4175    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4176        self as &mut dyn (::std::any::Any)
4177    }
4178    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4179        self
4180    }
4181
4182    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4183        Self::descriptor_static()
4184    }
4185
4186    fn new() -> ListInstanceConfigOperationsResponse {
4187        ListInstanceConfigOperationsResponse::new()
4188    }
4189
4190    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4191        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4192        descriptor.get(|| {
4193            let mut fields = ::std::vec::Vec::new();
4194            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::operations::Operation>>(
4195                "operations",
4196                |m: &ListInstanceConfigOperationsResponse| { &m.operations },
4197                |m: &mut ListInstanceConfigOperationsResponse| { &mut m.operations },
4198            ));
4199            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4200                "next_page_token",
4201                |m: &ListInstanceConfigOperationsResponse| { &m.next_page_token },
4202                |m: &mut ListInstanceConfigOperationsResponse| { &mut m.next_page_token },
4203            ));
4204            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstanceConfigOperationsResponse>(
4205                "ListInstanceConfigOperationsResponse",
4206                fields,
4207                file_descriptor_proto()
4208            )
4209        })
4210    }
4211
4212    fn default_instance() -> &'static ListInstanceConfigOperationsResponse {
4213        static instance: ::protobuf::rt::LazyV2<ListInstanceConfigOperationsResponse> = ::protobuf::rt::LazyV2::INIT;
4214        instance.get(ListInstanceConfigOperationsResponse::new)
4215    }
4216}
4217
4218impl ::protobuf::Clear for ListInstanceConfigOperationsResponse {
4219    fn clear(&mut self) {
4220        self.operations.clear();
4221        self.next_page_token.clear();
4222        self.unknown_fields.clear();
4223    }
4224}
4225
4226impl ::std::fmt::Debug for ListInstanceConfigOperationsResponse {
4227    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4228        ::protobuf::text_format::fmt(self, f)
4229    }
4230}
4231
4232impl ::protobuf::reflect::ProtobufValue for ListInstanceConfigOperationsResponse {
4233    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4234        ::protobuf::reflect::ReflectValueRef::Message(self)
4235    }
4236}
4237
4238#[derive(PartialEq,Clone,Default)]
4239pub struct GetInstanceRequest {
4240    // message fields
4241    pub name: ::std::string::String,
4242    pub field_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
4243    // special fields
4244    pub unknown_fields: ::protobuf::UnknownFields,
4245    pub cached_size: ::protobuf::CachedSize,
4246}
4247
4248impl<'a> ::std::default::Default for &'a GetInstanceRequest {
4249    fn default() -> &'a GetInstanceRequest {
4250        <GetInstanceRequest as ::protobuf::Message>::default_instance()
4251    }
4252}
4253
4254impl GetInstanceRequest {
4255    pub fn new() -> GetInstanceRequest {
4256        ::std::default::Default::default()
4257    }
4258
4259    // string name = 1;
4260
4261
4262    pub fn get_name(&self) -> &str {
4263        &self.name
4264    }
4265    pub fn clear_name(&mut self) {
4266        self.name.clear();
4267    }
4268
4269    // Param is passed by value, moved
4270    pub fn set_name(&mut self, v: ::std::string::String) {
4271        self.name = v;
4272    }
4273
4274    // Mutable pointer to the field.
4275    // If field is not initialized, it is initialized with default value first.
4276    pub fn mut_name(&mut self) -> &mut ::std::string::String {
4277        &mut self.name
4278    }
4279
4280    // Take field
4281    pub fn take_name(&mut self) -> ::std::string::String {
4282        ::std::mem::replace(&mut self.name, ::std::string::String::new())
4283    }
4284
4285    // .google.protobuf.FieldMask field_mask = 2;
4286
4287
4288    pub fn get_field_mask(&self) -> &::protobuf::well_known_types::FieldMask {
4289        self.field_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
4290    }
4291    pub fn clear_field_mask(&mut self) {
4292        self.field_mask.clear();
4293    }
4294
4295    pub fn has_field_mask(&self) -> bool {
4296        self.field_mask.is_some()
4297    }
4298
4299    // Param is passed by value, moved
4300    pub fn set_field_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
4301        self.field_mask = ::protobuf::SingularPtrField::some(v);
4302    }
4303
4304    // Mutable pointer to the field.
4305    // If field is not initialized, it is initialized with default value first.
4306    pub fn mut_field_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
4307        if self.field_mask.is_none() {
4308            self.field_mask.set_default();
4309        }
4310        self.field_mask.as_mut().unwrap()
4311    }
4312
4313    // Take field
4314    pub fn take_field_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
4315        self.field_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
4316    }
4317}
4318
4319impl ::protobuf::Message for GetInstanceRequest {
4320    fn is_initialized(&self) -> bool {
4321        for v in &self.field_mask {
4322            if !v.is_initialized() {
4323                return false;
4324            }
4325        };
4326        true
4327    }
4328
4329    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4330        while !is.eof()? {
4331            let (field_number, wire_type) = is.read_tag_unpack()?;
4332            match field_number {
4333                1 => {
4334                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
4335                },
4336                2 => {
4337                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.field_mask)?;
4338                },
4339                _ => {
4340                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4341                },
4342            };
4343        }
4344        ::std::result::Result::Ok(())
4345    }
4346
4347    // Compute sizes of nested messages
4348    #[allow(unused_variables)]
4349    fn compute_size(&self) -> u32 {
4350        let mut my_size = 0;
4351        if !self.name.is_empty() {
4352            my_size += ::protobuf::rt::string_size(1, &self.name);
4353        }
4354        if let Some(ref v) = self.field_mask.as_ref() {
4355            let len = v.compute_size();
4356            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4357        }
4358        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4359        self.cached_size.set(my_size);
4360        my_size
4361    }
4362
4363    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4364        if !self.name.is_empty() {
4365            os.write_string(1, &self.name)?;
4366        }
4367        if let Some(ref v) = self.field_mask.as_ref() {
4368            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4369            os.write_raw_varint32(v.get_cached_size())?;
4370            v.write_to_with_cached_sizes(os)?;
4371        }
4372        os.write_unknown_fields(self.get_unknown_fields())?;
4373        ::std::result::Result::Ok(())
4374    }
4375
4376    fn get_cached_size(&self) -> u32 {
4377        self.cached_size.get()
4378    }
4379
4380    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4381        &self.unknown_fields
4382    }
4383
4384    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4385        &mut self.unknown_fields
4386    }
4387
4388    fn as_any(&self) -> &dyn (::std::any::Any) {
4389        self as &dyn (::std::any::Any)
4390    }
4391    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4392        self as &mut dyn (::std::any::Any)
4393    }
4394    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4395        self
4396    }
4397
4398    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4399        Self::descriptor_static()
4400    }
4401
4402    fn new() -> GetInstanceRequest {
4403        GetInstanceRequest::new()
4404    }
4405
4406    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4407        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4408        descriptor.get(|| {
4409            let mut fields = ::std::vec::Vec::new();
4410            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4411                "name",
4412                |m: &GetInstanceRequest| { &m.name },
4413                |m: &mut GetInstanceRequest| { &mut m.name },
4414            ));
4415            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
4416                "field_mask",
4417                |m: &GetInstanceRequest| { &m.field_mask },
4418                |m: &mut GetInstanceRequest| { &mut m.field_mask },
4419            ));
4420            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetInstanceRequest>(
4421                "GetInstanceRequest",
4422                fields,
4423                file_descriptor_proto()
4424            )
4425        })
4426    }
4427
4428    fn default_instance() -> &'static GetInstanceRequest {
4429        static instance: ::protobuf::rt::LazyV2<GetInstanceRequest> = ::protobuf::rt::LazyV2::INIT;
4430        instance.get(GetInstanceRequest::new)
4431    }
4432}
4433
4434impl ::protobuf::Clear for GetInstanceRequest {
4435    fn clear(&mut self) {
4436        self.name.clear();
4437        self.field_mask.clear();
4438        self.unknown_fields.clear();
4439    }
4440}
4441
4442impl ::std::fmt::Debug for GetInstanceRequest {
4443    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4444        ::protobuf::text_format::fmt(self, f)
4445    }
4446}
4447
4448impl ::protobuf::reflect::ProtobufValue for GetInstanceRequest {
4449    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4450        ::protobuf::reflect::ReflectValueRef::Message(self)
4451    }
4452}
4453
4454#[derive(PartialEq,Clone,Default)]
4455pub struct CreateInstanceRequest {
4456    // message fields
4457    pub parent: ::std::string::String,
4458    pub instance_id: ::std::string::String,
4459    pub instance: ::protobuf::SingularPtrField<Instance>,
4460    // special fields
4461    pub unknown_fields: ::protobuf::UnknownFields,
4462    pub cached_size: ::protobuf::CachedSize,
4463}
4464
4465impl<'a> ::std::default::Default for &'a CreateInstanceRequest {
4466    fn default() -> &'a CreateInstanceRequest {
4467        <CreateInstanceRequest as ::protobuf::Message>::default_instance()
4468    }
4469}
4470
4471impl CreateInstanceRequest {
4472    pub fn new() -> CreateInstanceRequest {
4473        ::std::default::Default::default()
4474    }
4475
4476    // string parent = 1;
4477
4478
4479    pub fn get_parent(&self) -> &str {
4480        &self.parent
4481    }
4482    pub fn clear_parent(&mut self) {
4483        self.parent.clear();
4484    }
4485
4486    // Param is passed by value, moved
4487    pub fn set_parent(&mut self, v: ::std::string::String) {
4488        self.parent = v;
4489    }
4490
4491    // Mutable pointer to the field.
4492    // If field is not initialized, it is initialized with default value first.
4493    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
4494        &mut self.parent
4495    }
4496
4497    // Take field
4498    pub fn take_parent(&mut self) -> ::std::string::String {
4499        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
4500    }
4501
4502    // string instance_id = 2;
4503
4504
4505    pub fn get_instance_id(&self) -> &str {
4506        &self.instance_id
4507    }
4508    pub fn clear_instance_id(&mut self) {
4509        self.instance_id.clear();
4510    }
4511
4512    // Param is passed by value, moved
4513    pub fn set_instance_id(&mut self, v: ::std::string::String) {
4514        self.instance_id = v;
4515    }
4516
4517    // Mutable pointer to the field.
4518    // If field is not initialized, it is initialized with default value first.
4519    pub fn mut_instance_id(&mut self) -> &mut ::std::string::String {
4520        &mut self.instance_id
4521    }
4522
4523    // Take field
4524    pub fn take_instance_id(&mut self) -> ::std::string::String {
4525        ::std::mem::replace(&mut self.instance_id, ::std::string::String::new())
4526    }
4527
4528    // .google.spanner.admin.instance.v1.Instance instance = 3;
4529
4530
4531    pub fn get_instance(&self) -> &Instance {
4532        self.instance.as_ref().unwrap_or_else(|| <Instance as ::protobuf::Message>::default_instance())
4533    }
4534    pub fn clear_instance(&mut self) {
4535        self.instance.clear();
4536    }
4537
4538    pub fn has_instance(&self) -> bool {
4539        self.instance.is_some()
4540    }
4541
4542    // Param is passed by value, moved
4543    pub fn set_instance(&mut self, v: Instance) {
4544        self.instance = ::protobuf::SingularPtrField::some(v);
4545    }
4546
4547    // Mutable pointer to the field.
4548    // If field is not initialized, it is initialized with default value first.
4549    pub fn mut_instance(&mut self) -> &mut Instance {
4550        if self.instance.is_none() {
4551            self.instance.set_default();
4552        }
4553        self.instance.as_mut().unwrap()
4554    }
4555
4556    // Take field
4557    pub fn take_instance(&mut self) -> Instance {
4558        self.instance.take().unwrap_or_else(|| Instance::new())
4559    }
4560}
4561
4562impl ::protobuf::Message for CreateInstanceRequest {
4563    fn is_initialized(&self) -> bool {
4564        for v in &self.instance {
4565            if !v.is_initialized() {
4566                return false;
4567            }
4568        };
4569        true
4570    }
4571
4572    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4573        while !is.eof()? {
4574            let (field_number, wire_type) = is.read_tag_unpack()?;
4575            match field_number {
4576                1 => {
4577                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
4578                },
4579                2 => {
4580                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.instance_id)?;
4581                },
4582                3 => {
4583                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance)?;
4584                },
4585                _ => {
4586                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4587                },
4588            };
4589        }
4590        ::std::result::Result::Ok(())
4591    }
4592
4593    // Compute sizes of nested messages
4594    #[allow(unused_variables)]
4595    fn compute_size(&self) -> u32 {
4596        let mut my_size = 0;
4597        if !self.parent.is_empty() {
4598            my_size += ::protobuf::rt::string_size(1, &self.parent);
4599        }
4600        if !self.instance_id.is_empty() {
4601            my_size += ::protobuf::rt::string_size(2, &self.instance_id);
4602        }
4603        if let Some(ref v) = self.instance.as_ref() {
4604            let len = v.compute_size();
4605            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4606        }
4607        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4608        self.cached_size.set(my_size);
4609        my_size
4610    }
4611
4612    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4613        if !self.parent.is_empty() {
4614            os.write_string(1, &self.parent)?;
4615        }
4616        if !self.instance_id.is_empty() {
4617            os.write_string(2, &self.instance_id)?;
4618        }
4619        if let Some(ref v) = self.instance.as_ref() {
4620            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4621            os.write_raw_varint32(v.get_cached_size())?;
4622            v.write_to_with_cached_sizes(os)?;
4623        }
4624        os.write_unknown_fields(self.get_unknown_fields())?;
4625        ::std::result::Result::Ok(())
4626    }
4627
4628    fn get_cached_size(&self) -> u32 {
4629        self.cached_size.get()
4630    }
4631
4632    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4633        &self.unknown_fields
4634    }
4635
4636    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4637        &mut self.unknown_fields
4638    }
4639
4640    fn as_any(&self) -> &dyn (::std::any::Any) {
4641        self as &dyn (::std::any::Any)
4642    }
4643    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4644        self as &mut dyn (::std::any::Any)
4645    }
4646    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4647        self
4648    }
4649
4650    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4651        Self::descriptor_static()
4652    }
4653
4654    fn new() -> CreateInstanceRequest {
4655        CreateInstanceRequest::new()
4656    }
4657
4658    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4659        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4660        descriptor.get(|| {
4661            let mut fields = ::std::vec::Vec::new();
4662            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4663                "parent",
4664                |m: &CreateInstanceRequest| { &m.parent },
4665                |m: &mut CreateInstanceRequest| { &mut m.parent },
4666            ));
4667            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4668                "instance_id",
4669                |m: &CreateInstanceRequest| { &m.instance_id },
4670                |m: &mut CreateInstanceRequest| { &mut m.instance_id },
4671            ));
4672            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Instance>>(
4673                "instance",
4674                |m: &CreateInstanceRequest| { &m.instance },
4675                |m: &mut CreateInstanceRequest| { &mut m.instance },
4676            ));
4677            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateInstanceRequest>(
4678                "CreateInstanceRequest",
4679                fields,
4680                file_descriptor_proto()
4681            )
4682        })
4683    }
4684
4685    fn default_instance() -> &'static CreateInstanceRequest {
4686        static instance: ::protobuf::rt::LazyV2<CreateInstanceRequest> = ::protobuf::rt::LazyV2::INIT;
4687        instance.get(CreateInstanceRequest::new)
4688    }
4689}
4690
4691impl ::protobuf::Clear for CreateInstanceRequest {
4692    fn clear(&mut self) {
4693        self.parent.clear();
4694        self.instance_id.clear();
4695        self.instance.clear();
4696        self.unknown_fields.clear();
4697    }
4698}
4699
4700impl ::std::fmt::Debug for CreateInstanceRequest {
4701    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4702        ::protobuf::text_format::fmt(self, f)
4703    }
4704}
4705
4706impl ::protobuf::reflect::ProtobufValue for CreateInstanceRequest {
4707    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4708        ::protobuf::reflect::ReflectValueRef::Message(self)
4709    }
4710}
4711
4712#[derive(PartialEq,Clone,Default)]
4713pub struct ListInstancesRequest {
4714    // message fields
4715    pub parent: ::std::string::String,
4716    pub page_size: i32,
4717    pub page_token: ::std::string::String,
4718    pub filter: ::std::string::String,
4719    // special fields
4720    pub unknown_fields: ::protobuf::UnknownFields,
4721    pub cached_size: ::protobuf::CachedSize,
4722}
4723
4724impl<'a> ::std::default::Default for &'a ListInstancesRequest {
4725    fn default() -> &'a ListInstancesRequest {
4726        <ListInstancesRequest as ::protobuf::Message>::default_instance()
4727    }
4728}
4729
4730impl ListInstancesRequest {
4731    pub fn new() -> ListInstancesRequest {
4732        ::std::default::Default::default()
4733    }
4734
4735    // string parent = 1;
4736
4737
4738    pub fn get_parent(&self) -> &str {
4739        &self.parent
4740    }
4741    pub fn clear_parent(&mut self) {
4742        self.parent.clear();
4743    }
4744
4745    // Param is passed by value, moved
4746    pub fn set_parent(&mut self, v: ::std::string::String) {
4747        self.parent = v;
4748    }
4749
4750    // Mutable pointer to the field.
4751    // If field is not initialized, it is initialized with default value first.
4752    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
4753        &mut self.parent
4754    }
4755
4756    // Take field
4757    pub fn take_parent(&mut self) -> ::std::string::String {
4758        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
4759    }
4760
4761    // int32 page_size = 2;
4762
4763
4764    pub fn get_page_size(&self) -> i32 {
4765        self.page_size
4766    }
4767    pub fn clear_page_size(&mut self) {
4768        self.page_size = 0;
4769    }
4770
4771    // Param is passed by value, moved
4772    pub fn set_page_size(&mut self, v: i32) {
4773        self.page_size = v;
4774    }
4775
4776    // string page_token = 3;
4777
4778
4779    pub fn get_page_token(&self) -> &str {
4780        &self.page_token
4781    }
4782    pub fn clear_page_token(&mut self) {
4783        self.page_token.clear();
4784    }
4785
4786    // Param is passed by value, moved
4787    pub fn set_page_token(&mut self, v: ::std::string::String) {
4788        self.page_token = v;
4789    }
4790
4791    // Mutable pointer to the field.
4792    // If field is not initialized, it is initialized with default value first.
4793    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
4794        &mut self.page_token
4795    }
4796
4797    // Take field
4798    pub fn take_page_token(&mut self) -> ::std::string::String {
4799        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
4800    }
4801
4802    // string filter = 4;
4803
4804
4805    pub fn get_filter(&self) -> &str {
4806        &self.filter
4807    }
4808    pub fn clear_filter(&mut self) {
4809        self.filter.clear();
4810    }
4811
4812    // Param is passed by value, moved
4813    pub fn set_filter(&mut self, v: ::std::string::String) {
4814        self.filter = v;
4815    }
4816
4817    // Mutable pointer to the field.
4818    // If field is not initialized, it is initialized with default value first.
4819    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
4820        &mut self.filter
4821    }
4822
4823    // Take field
4824    pub fn take_filter(&mut self) -> ::std::string::String {
4825        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
4826    }
4827}
4828
4829impl ::protobuf::Message for ListInstancesRequest {
4830    fn is_initialized(&self) -> bool {
4831        true
4832    }
4833
4834    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4835        while !is.eof()? {
4836            let (field_number, wire_type) = is.read_tag_unpack()?;
4837            match field_number {
4838                1 => {
4839                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
4840                },
4841                2 => {
4842                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4843                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4844                    }
4845                    let tmp = is.read_int32()?;
4846                    self.page_size = tmp;
4847                },
4848                3 => {
4849                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
4850                },
4851                4 => {
4852                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
4853                },
4854                _ => {
4855                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4856                },
4857            };
4858        }
4859        ::std::result::Result::Ok(())
4860    }
4861
4862    // Compute sizes of nested messages
4863    #[allow(unused_variables)]
4864    fn compute_size(&self) -> u32 {
4865        let mut my_size = 0;
4866        if !self.parent.is_empty() {
4867            my_size += ::protobuf::rt::string_size(1, &self.parent);
4868        }
4869        if self.page_size != 0 {
4870            my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
4871        }
4872        if !self.page_token.is_empty() {
4873            my_size += ::protobuf::rt::string_size(3, &self.page_token);
4874        }
4875        if !self.filter.is_empty() {
4876            my_size += ::protobuf::rt::string_size(4, &self.filter);
4877        }
4878        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4879        self.cached_size.set(my_size);
4880        my_size
4881    }
4882
4883    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4884        if !self.parent.is_empty() {
4885            os.write_string(1, &self.parent)?;
4886        }
4887        if self.page_size != 0 {
4888            os.write_int32(2, self.page_size)?;
4889        }
4890        if !self.page_token.is_empty() {
4891            os.write_string(3, &self.page_token)?;
4892        }
4893        if !self.filter.is_empty() {
4894            os.write_string(4, &self.filter)?;
4895        }
4896        os.write_unknown_fields(self.get_unknown_fields())?;
4897        ::std::result::Result::Ok(())
4898    }
4899
4900    fn get_cached_size(&self) -> u32 {
4901        self.cached_size.get()
4902    }
4903
4904    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4905        &self.unknown_fields
4906    }
4907
4908    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4909        &mut self.unknown_fields
4910    }
4911
4912    fn as_any(&self) -> &dyn (::std::any::Any) {
4913        self as &dyn (::std::any::Any)
4914    }
4915    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4916        self as &mut dyn (::std::any::Any)
4917    }
4918    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4919        self
4920    }
4921
4922    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4923        Self::descriptor_static()
4924    }
4925
4926    fn new() -> ListInstancesRequest {
4927        ListInstancesRequest::new()
4928    }
4929
4930    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4931        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4932        descriptor.get(|| {
4933            let mut fields = ::std::vec::Vec::new();
4934            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4935                "parent",
4936                |m: &ListInstancesRequest| { &m.parent },
4937                |m: &mut ListInstancesRequest| { &mut m.parent },
4938            ));
4939            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
4940                "page_size",
4941                |m: &ListInstancesRequest| { &m.page_size },
4942                |m: &mut ListInstancesRequest| { &mut m.page_size },
4943            ));
4944            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4945                "page_token",
4946                |m: &ListInstancesRequest| { &m.page_token },
4947                |m: &mut ListInstancesRequest| { &mut m.page_token },
4948            ));
4949            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4950                "filter",
4951                |m: &ListInstancesRequest| { &m.filter },
4952                |m: &mut ListInstancesRequest| { &mut m.filter },
4953            ));
4954            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstancesRequest>(
4955                "ListInstancesRequest",
4956                fields,
4957                file_descriptor_proto()
4958            )
4959        })
4960    }
4961
4962    fn default_instance() -> &'static ListInstancesRequest {
4963        static instance: ::protobuf::rt::LazyV2<ListInstancesRequest> = ::protobuf::rt::LazyV2::INIT;
4964        instance.get(ListInstancesRequest::new)
4965    }
4966}
4967
4968impl ::protobuf::Clear for ListInstancesRequest {
4969    fn clear(&mut self) {
4970        self.parent.clear();
4971        self.page_size = 0;
4972        self.page_token.clear();
4973        self.filter.clear();
4974        self.unknown_fields.clear();
4975    }
4976}
4977
4978impl ::std::fmt::Debug for ListInstancesRequest {
4979    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4980        ::protobuf::text_format::fmt(self, f)
4981    }
4982}
4983
4984impl ::protobuf::reflect::ProtobufValue for ListInstancesRequest {
4985    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4986        ::protobuf::reflect::ReflectValueRef::Message(self)
4987    }
4988}
4989
4990#[derive(PartialEq,Clone,Default)]
4991pub struct ListInstancesResponse {
4992    // message fields
4993    pub instances: ::protobuf::RepeatedField<Instance>,
4994    pub next_page_token: ::std::string::String,
4995    // special fields
4996    pub unknown_fields: ::protobuf::UnknownFields,
4997    pub cached_size: ::protobuf::CachedSize,
4998}
4999
5000impl<'a> ::std::default::Default for &'a ListInstancesResponse {
5001    fn default() -> &'a ListInstancesResponse {
5002        <ListInstancesResponse as ::protobuf::Message>::default_instance()
5003    }
5004}
5005
5006impl ListInstancesResponse {
5007    pub fn new() -> ListInstancesResponse {
5008        ::std::default::Default::default()
5009    }
5010
5011    // repeated .google.spanner.admin.instance.v1.Instance instances = 1;
5012
5013
5014    pub fn get_instances(&self) -> &[Instance] {
5015        &self.instances
5016    }
5017    pub fn clear_instances(&mut self) {
5018        self.instances.clear();
5019    }
5020
5021    // Param is passed by value, moved
5022    pub fn set_instances(&mut self, v: ::protobuf::RepeatedField<Instance>) {
5023        self.instances = v;
5024    }
5025
5026    // Mutable pointer to the field.
5027    pub fn mut_instances(&mut self) -> &mut ::protobuf::RepeatedField<Instance> {
5028        &mut self.instances
5029    }
5030
5031    // Take field
5032    pub fn take_instances(&mut self) -> ::protobuf::RepeatedField<Instance> {
5033        ::std::mem::replace(&mut self.instances, ::protobuf::RepeatedField::new())
5034    }
5035
5036    // string next_page_token = 2;
5037
5038
5039    pub fn get_next_page_token(&self) -> &str {
5040        &self.next_page_token
5041    }
5042    pub fn clear_next_page_token(&mut self) {
5043        self.next_page_token.clear();
5044    }
5045
5046    // Param is passed by value, moved
5047    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
5048        self.next_page_token = v;
5049    }
5050
5051    // Mutable pointer to the field.
5052    // If field is not initialized, it is initialized with default value first.
5053    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
5054        &mut self.next_page_token
5055    }
5056
5057    // Take field
5058    pub fn take_next_page_token(&mut self) -> ::std::string::String {
5059        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
5060    }
5061}
5062
5063impl ::protobuf::Message for ListInstancesResponse {
5064    fn is_initialized(&self) -> bool {
5065        for v in &self.instances {
5066            if !v.is_initialized() {
5067                return false;
5068            }
5069        };
5070        true
5071    }
5072
5073    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5074        while !is.eof()? {
5075            let (field_number, wire_type) = is.read_tag_unpack()?;
5076            match field_number {
5077                1 => {
5078                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.instances)?;
5079                },
5080                2 => {
5081                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
5082                },
5083                _ => {
5084                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5085                },
5086            };
5087        }
5088        ::std::result::Result::Ok(())
5089    }
5090
5091    // Compute sizes of nested messages
5092    #[allow(unused_variables)]
5093    fn compute_size(&self) -> u32 {
5094        let mut my_size = 0;
5095        for value in &self.instances {
5096            let len = value.compute_size();
5097            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5098        };
5099        if !self.next_page_token.is_empty() {
5100            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
5101        }
5102        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5103        self.cached_size.set(my_size);
5104        my_size
5105    }
5106
5107    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5108        for v in &self.instances {
5109            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5110            os.write_raw_varint32(v.get_cached_size())?;
5111            v.write_to_with_cached_sizes(os)?;
5112        };
5113        if !self.next_page_token.is_empty() {
5114            os.write_string(2, &self.next_page_token)?;
5115        }
5116        os.write_unknown_fields(self.get_unknown_fields())?;
5117        ::std::result::Result::Ok(())
5118    }
5119
5120    fn get_cached_size(&self) -> u32 {
5121        self.cached_size.get()
5122    }
5123
5124    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5125        &self.unknown_fields
5126    }
5127
5128    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5129        &mut self.unknown_fields
5130    }
5131
5132    fn as_any(&self) -> &dyn (::std::any::Any) {
5133        self as &dyn (::std::any::Any)
5134    }
5135    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5136        self as &mut dyn (::std::any::Any)
5137    }
5138    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5139        self
5140    }
5141
5142    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5143        Self::descriptor_static()
5144    }
5145
5146    fn new() -> ListInstancesResponse {
5147        ListInstancesResponse::new()
5148    }
5149
5150    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5151        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5152        descriptor.get(|| {
5153            let mut fields = ::std::vec::Vec::new();
5154            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Instance>>(
5155                "instances",
5156                |m: &ListInstancesResponse| { &m.instances },
5157                |m: &mut ListInstancesResponse| { &mut m.instances },
5158            ));
5159            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5160                "next_page_token",
5161                |m: &ListInstancesResponse| { &m.next_page_token },
5162                |m: &mut ListInstancesResponse| { &mut m.next_page_token },
5163            ));
5164            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListInstancesResponse>(
5165                "ListInstancesResponse",
5166                fields,
5167                file_descriptor_proto()
5168            )
5169        })
5170    }
5171
5172    fn default_instance() -> &'static ListInstancesResponse {
5173        static instance: ::protobuf::rt::LazyV2<ListInstancesResponse> = ::protobuf::rt::LazyV2::INIT;
5174        instance.get(ListInstancesResponse::new)
5175    }
5176}
5177
5178impl ::protobuf::Clear for ListInstancesResponse {
5179    fn clear(&mut self) {
5180        self.instances.clear();
5181        self.next_page_token.clear();
5182        self.unknown_fields.clear();
5183    }
5184}
5185
5186impl ::std::fmt::Debug for ListInstancesResponse {
5187    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5188        ::protobuf::text_format::fmt(self, f)
5189    }
5190}
5191
5192impl ::protobuf::reflect::ProtobufValue for ListInstancesResponse {
5193    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5194        ::protobuf::reflect::ReflectValueRef::Message(self)
5195    }
5196}
5197
5198#[derive(PartialEq,Clone,Default)]
5199pub struct UpdateInstanceRequest {
5200    // message fields
5201    pub instance: ::protobuf::SingularPtrField<Instance>,
5202    pub field_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
5203    // special fields
5204    pub unknown_fields: ::protobuf::UnknownFields,
5205    pub cached_size: ::protobuf::CachedSize,
5206}
5207
5208impl<'a> ::std::default::Default for &'a UpdateInstanceRequest {
5209    fn default() -> &'a UpdateInstanceRequest {
5210        <UpdateInstanceRequest as ::protobuf::Message>::default_instance()
5211    }
5212}
5213
5214impl UpdateInstanceRequest {
5215    pub fn new() -> UpdateInstanceRequest {
5216        ::std::default::Default::default()
5217    }
5218
5219    // .google.spanner.admin.instance.v1.Instance instance = 1;
5220
5221
5222    pub fn get_instance(&self) -> &Instance {
5223        self.instance.as_ref().unwrap_or_else(|| <Instance as ::protobuf::Message>::default_instance())
5224    }
5225    pub fn clear_instance(&mut self) {
5226        self.instance.clear();
5227    }
5228
5229    pub fn has_instance(&self) -> bool {
5230        self.instance.is_some()
5231    }
5232
5233    // Param is passed by value, moved
5234    pub fn set_instance(&mut self, v: Instance) {
5235        self.instance = ::protobuf::SingularPtrField::some(v);
5236    }
5237
5238    // Mutable pointer to the field.
5239    // If field is not initialized, it is initialized with default value first.
5240    pub fn mut_instance(&mut self) -> &mut Instance {
5241        if self.instance.is_none() {
5242            self.instance.set_default();
5243        }
5244        self.instance.as_mut().unwrap()
5245    }
5246
5247    // Take field
5248    pub fn take_instance(&mut self) -> Instance {
5249        self.instance.take().unwrap_or_else(|| Instance::new())
5250    }
5251
5252    // .google.protobuf.FieldMask field_mask = 2;
5253
5254
5255    pub fn get_field_mask(&self) -> &::protobuf::well_known_types::FieldMask {
5256        self.field_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
5257    }
5258    pub fn clear_field_mask(&mut self) {
5259        self.field_mask.clear();
5260    }
5261
5262    pub fn has_field_mask(&self) -> bool {
5263        self.field_mask.is_some()
5264    }
5265
5266    // Param is passed by value, moved
5267    pub fn set_field_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
5268        self.field_mask = ::protobuf::SingularPtrField::some(v);
5269    }
5270
5271    // Mutable pointer to the field.
5272    // If field is not initialized, it is initialized with default value first.
5273    pub fn mut_field_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
5274        if self.field_mask.is_none() {
5275            self.field_mask.set_default();
5276        }
5277        self.field_mask.as_mut().unwrap()
5278    }
5279
5280    // Take field
5281    pub fn take_field_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
5282        self.field_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
5283    }
5284}
5285
5286impl ::protobuf::Message for UpdateInstanceRequest {
5287    fn is_initialized(&self) -> bool {
5288        for v in &self.instance {
5289            if !v.is_initialized() {
5290                return false;
5291            }
5292        };
5293        for v in &self.field_mask {
5294            if !v.is_initialized() {
5295                return false;
5296            }
5297        };
5298        true
5299    }
5300
5301    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5302        while !is.eof()? {
5303            let (field_number, wire_type) = is.read_tag_unpack()?;
5304            match field_number {
5305                1 => {
5306                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance)?;
5307                },
5308                2 => {
5309                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.field_mask)?;
5310                },
5311                _ => {
5312                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5313                },
5314            };
5315        }
5316        ::std::result::Result::Ok(())
5317    }
5318
5319    // Compute sizes of nested messages
5320    #[allow(unused_variables)]
5321    fn compute_size(&self) -> u32 {
5322        let mut my_size = 0;
5323        if let Some(ref v) = self.instance.as_ref() {
5324            let len = v.compute_size();
5325            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5326        }
5327        if let Some(ref v) = self.field_mask.as_ref() {
5328            let len = v.compute_size();
5329            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5330        }
5331        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5332        self.cached_size.set(my_size);
5333        my_size
5334    }
5335
5336    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5337        if let Some(ref v) = self.instance.as_ref() {
5338            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5339            os.write_raw_varint32(v.get_cached_size())?;
5340            v.write_to_with_cached_sizes(os)?;
5341        }
5342        if let Some(ref v) = self.field_mask.as_ref() {
5343            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5344            os.write_raw_varint32(v.get_cached_size())?;
5345            v.write_to_with_cached_sizes(os)?;
5346        }
5347        os.write_unknown_fields(self.get_unknown_fields())?;
5348        ::std::result::Result::Ok(())
5349    }
5350
5351    fn get_cached_size(&self) -> u32 {
5352        self.cached_size.get()
5353    }
5354
5355    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5356        &self.unknown_fields
5357    }
5358
5359    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5360        &mut self.unknown_fields
5361    }
5362
5363    fn as_any(&self) -> &dyn (::std::any::Any) {
5364        self as &dyn (::std::any::Any)
5365    }
5366    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5367        self as &mut dyn (::std::any::Any)
5368    }
5369    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5370        self
5371    }
5372
5373    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5374        Self::descriptor_static()
5375    }
5376
5377    fn new() -> UpdateInstanceRequest {
5378        UpdateInstanceRequest::new()
5379    }
5380
5381    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5382        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5383        descriptor.get(|| {
5384            let mut fields = ::std::vec::Vec::new();
5385            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Instance>>(
5386                "instance",
5387                |m: &UpdateInstanceRequest| { &m.instance },
5388                |m: &mut UpdateInstanceRequest| { &mut m.instance },
5389            ));
5390            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
5391                "field_mask",
5392                |m: &UpdateInstanceRequest| { &m.field_mask },
5393                |m: &mut UpdateInstanceRequest| { &mut m.field_mask },
5394            ));
5395            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateInstanceRequest>(
5396                "UpdateInstanceRequest",
5397                fields,
5398                file_descriptor_proto()
5399            )
5400        })
5401    }
5402
5403    fn default_instance() -> &'static UpdateInstanceRequest {
5404        static instance: ::protobuf::rt::LazyV2<UpdateInstanceRequest> = ::protobuf::rt::LazyV2::INIT;
5405        instance.get(UpdateInstanceRequest::new)
5406    }
5407}
5408
5409impl ::protobuf::Clear for UpdateInstanceRequest {
5410    fn clear(&mut self) {
5411        self.instance.clear();
5412        self.field_mask.clear();
5413        self.unknown_fields.clear();
5414    }
5415}
5416
5417impl ::std::fmt::Debug for UpdateInstanceRequest {
5418    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5419        ::protobuf::text_format::fmt(self, f)
5420    }
5421}
5422
5423impl ::protobuf::reflect::ProtobufValue for UpdateInstanceRequest {
5424    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5425        ::protobuf::reflect::ReflectValueRef::Message(self)
5426    }
5427}
5428
5429#[derive(PartialEq,Clone,Default)]
5430pub struct DeleteInstanceRequest {
5431    // message fields
5432    pub name: ::std::string::String,
5433    // special fields
5434    pub unknown_fields: ::protobuf::UnknownFields,
5435    pub cached_size: ::protobuf::CachedSize,
5436}
5437
5438impl<'a> ::std::default::Default for &'a DeleteInstanceRequest {
5439    fn default() -> &'a DeleteInstanceRequest {
5440        <DeleteInstanceRequest as ::protobuf::Message>::default_instance()
5441    }
5442}
5443
5444impl DeleteInstanceRequest {
5445    pub fn new() -> DeleteInstanceRequest {
5446        ::std::default::Default::default()
5447    }
5448
5449    // string name = 1;
5450
5451
5452    pub fn get_name(&self) -> &str {
5453        &self.name
5454    }
5455    pub fn clear_name(&mut self) {
5456        self.name.clear();
5457    }
5458
5459    // Param is passed by value, moved
5460    pub fn set_name(&mut self, v: ::std::string::String) {
5461        self.name = v;
5462    }
5463
5464    // Mutable pointer to the field.
5465    // If field is not initialized, it is initialized with default value first.
5466    pub fn mut_name(&mut self) -> &mut ::std::string::String {
5467        &mut self.name
5468    }
5469
5470    // Take field
5471    pub fn take_name(&mut self) -> ::std::string::String {
5472        ::std::mem::replace(&mut self.name, ::std::string::String::new())
5473    }
5474}
5475
5476impl ::protobuf::Message for DeleteInstanceRequest {
5477    fn is_initialized(&self) -> bool {
5478        true
5479    }
5480
5481    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5482        while !is.eof()? {
5483            let (field_number, wire_type) = is.read_tag_unpack()?;
5484            match field_number {
5485                1 => {
5486                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
5487                },
5488                _ => {
5489                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5490                },
5491            };
5492        }
5493        ::std::result::Result::Ok(())
5494    }
5495
5496    // Compute sizes of nested messages
5497    #[allow(unused_variables)]
5498    fn compute_size(&self) -> u32 {
5499        let mut my_size = 0;
5500        if !self.name.is_empty() {
5501            my_size += ::protobuf::rt::string_size(1, &self.name);
5502        }
5503        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5504        self.cached_size.set(my_size);
5505        my_size
5506    }
5507
5508    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5509        if !self.name.is_empty() {
5510            os.write_string(1, &self.name)?;
5511        }
5512        os.write_unknown_fields(self.get_unknown_fields())?;
5513        ::std::result::Result::Ok(())
5514    }
5515
5516    fn get_cached_size(&self) -> u32 {
5517        self.cached_size.get()
5518    }
5519
5520    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5521        &self.unknown_fields
5522    }
5523
5524    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5525        &mut self.unknown_fields
5526    }
5527
5528    fn as_any(&self) -> &dyn (::std::any::Any) {
5529        self as &dyn (::std::any::Any)
5530    }
5531    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5532        self as &mut dyn (::std::any::Any)
5533    }
5534    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5535        self
5536    }
5537
5538    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5539        Self::descriptor_static()
5540    }
5541
5542    fn new() -> DeleteInstanceRequest {
5543        DeleteInstanceRequest::new()
5544    }
5545
5546    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5547        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5548        descriptor.get(|| {
5549            let mut fields = ::std::vec::Vec::new();
5550            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5551                "name",
5552                |m: &DeleteInstanceRequest| { &m.name },
5553                |m: &mut DeleteInstanceRequest| { &mut m.name },
5554            ));
5555            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteInstanceRequest>(
5556                "DeleteInstanceRequest",
5557                fields,
5558                file_descriptor_proto()
5559            )
5560        })
5561    }
5562
5563    fn default_instance() -> &'static DeleteInstanceRequest {
5564        static instance: ::protobuf::rt::LazyV2<DeleteInstanceRequest> = ::protobuf::rt::LazyV2::INIT;
5565        instance.get(DeleteInstanceRequest::new)
5566    }
5567}
5568
5569impl ::protobuf::Clear for DeleteInstanceRequest {
5570    fn clear(&mut self) {
5571        self.name.clear();
5572        self.unknown_fields.clear();
5573    }
5574}
5575
5576impl ::std::fmt::Debug for DeleteInstanceRequest {
5577    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5578        ::protobuf::text_format::fmt(self, f)
5579    }
5580}
5581
5582impl ::protobuf::reflect::ProtobufValue for DeleteInstanceRequest {
5583    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5584        ::protobuf::reflect::ReflectValueRef::Message(self)
5585    }
5586}
5587
5588#[derive(PartialEq,Clone,Default)]
5589pub struct CreateInstanceMetadata {
5590    // message fields
5591    pub instance: ::protobuf::SingularPtrField<Instance>,
5592    pub start_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5593    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5594    pub end_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5595    // special fields
5596    pub unknown_fields: ::protobuf::UnknownFields,
5597    pub cached_size: ::protobuf::CachedSize,
5598}
5599
5600impl<'a> ::std::default::Default for &'a CreateInstanceMetadata {
5601    fn default() -> &'a CreateInstanceMetadata {
5602        <CreateInstanceMetadata as ::protobuf::Message>::default_instance()
5603    }
5604}
5605
5606impl CreateInstanceMetadata {
5607    pub fn new() -> CreateInstanceMetadata {
5608        ::std::default::Default::default()
5609    }
5610
5611    // .google.spanner.admin.instance.v1.Instance instance = 1;
5612
5613
5614    pub fn get_instance(&self) -> &Instance {
5615        self.instance.as_ref().unwrap_or_else(|| <Instance as ::protobuf::Message>::default_instance())
5616    }
5617    pub fn clear_instance(&mut self) {
5618        self.instance.clear();
5619    }
5620
5621    pub fn has_instance(&self) -> bool {
5622        self.instance.is_some()
5623    }
5624
5625    // Param is passed by value, moved
5626    pub fn set_instance(&mut self, v: Instance) {
5627        self.instance = ::protobuf::SingularPtrField::some(v);
5628    }
5629
5630    // Mutable pointer to the field.
5631    // If field is not initialized, it is initialized with default value first.
5632    pub fn mut_instance(&mut self) -> &mut Instance {
5633        if self.instance.is_none() {
5634            self.instance.set_default();
5635        }
5636        self.instance.as_mut().unwrap()
5637    }
5638
5639    // Take field
5640    pub fn take_instance(&mut self) -> Instance {
5641        self.instance.take().unwrap_or_else(|| Instance::new())
5642    }
5643
5644    // .google.protobuf.Timestamp start_time = 2;
5645
5646
5647    pub fn get_start_time(&self) -> &::protobuf::well_known_types::Timestamp {
5648        self.start_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
5649    }
5650    pub fn clear_start_time(&mut self) {
5651        self.start_time.clear();
5652    }
5653
5654    pub fn has_start_time(&self) -> bool {
5655        self.start_time.is_some()
5656    }
5657
5658    // Param is passed by value, moved
5659    pub fn set_start_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
5660        self.start_time = ::protobuf::SingularPtrField::some(v);
5661    }
5662
5663    // Mutable pointer to the field.
5664    // If field is not initialized, it is initialized with default value first.
5665    pub fn mut_start_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
5666        if self.start_time.is_none() {
5667            self.start_time.set_default();
5668        }
5669        self.start_time.as_mut().unwrap()
5670    }
5671
5672    // Take field
5673    pub fn take_start_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
5674        self.start_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
5675    }
5676
5677    // .google.protobuf.Timestamp cancel_time = 3;
5678
5679
5680    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
5681        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
5682    }
5683    pub fn clear_cancel_time(&mut self) {
5684        self.cancel_time.clear();
5685    }
5686
5687    pub fn has_cancel_time(&self) -> bool {
5688        self.cancel_time.is_some()
5689    }
5690
5691    // Param is passed by value, moved
5692    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
5693        self.cancel_time = ::protobuf::SingularPtrField::some(v);
5694    }
5695
5696    // Mutable pointer to the field.
5697    // If field is not initialized, it is initialized with default value first.
5698    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
5699        if self.cancel_time.is_none() {
5700            self.cancel_time.set_default();
5701        }
5702        self.cancel_time.as_mut().unwrap()
5703    }
5704
5705    // Take field
5706    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
5707        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
5708    }
5709
5710    // .google.protobuf.Timestamp end_time = 4;
5711
5712
5713    pub fn get_end_time(&self) -> &::protobuf::well_known_types::Timestamp {
5714        self.end_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
5715    }
5716    pub fn clear_end_time(&mut self) {
5717        self.end_time.clear();
5718    }
5719
5720    pub fn has_end_time(&self) -> bool {
5721        self.end_time.is_some()
5722    }
5723
5724    // Param is passed by value, moved
5725    pub fn set_end_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
5726        self.end_time = ::protobuf::SingularPtrField::some(v);
5727    }
5728
5729    // Mutable pointer to the field.
5730    // If field is not initialized, it is initialized with default value first.
5731    pub fn mut_end_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
5732        if self.end_time.is_none() {
5733            self.end_time.set_default();
5734        }
5735        self.end_time.as_mut().unwrap()
5736    }
5737
5738    // Take field
5739    pub fn take_end_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
5740        self.end_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
5741    }
5742}
5743
5744impl ::protobuf::Message for CreateInstanceMetadata {
5745    fn is_initialized(&self) -> bool {
5746        for v in &self.instance {
5747            if !v.is_initialized() {
5748                return false;
5749            }
5750        };
5751        for v in &self.start_time {
5752            if !v.is_initialized() {
5753                return false;
5754            }
5755        };
5756        for v in &self.cancel_time {
5757            if !v.is_initialized() {
5758                return false;
5759            }
5760        };
5761        for v in &self.end_time {
5762            if !v.is_initialized() {
5763                return false;
5764            }
5765        };
5766        true
5767    }
5768
5769    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5770        while !is.eof()? {
5771            let (field_number, wire_type) = is.read_tag_unpack()?;
5772            match field_number {
5773                1 => {
5774                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance)?;
5775                },
5776                2 => {
5777                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.start_time)?;
5778                },
5779                3 => {
5780                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
5781                },
5782                4 => {
5783                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.end_time)?;
5784                },
5785                _ => {
5786                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5787                },
5788            };
5789        }
5790        ::std::result::Result::Ok(())
5791    }
5792
5793    // Compute sizes of nested messages
5794    #[allow(unused_variables)]
5795    fn compute_size(&self) -> u32 {
5796        let mut my_size = 0;
5797        if let Some(ref v) = self.instance.as_ref() {
5798            let len = v.compute_size();
5799            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5800        }
5801        if let Some(ref v) = self.start_time.as_ref() {
5802            let len = v.compute_size();
5803            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5804        }
5805        if let Some(ref v) = self.cancel_time.as_ref() {
5806            let len = v.compute_size();
5807            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5808        }
5809        if let Some(ref v) = self.end_time.as_ref() {
5810            let len = v.compute_size();
5811            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5812        }
5813        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5814        self.cached_size.set(my_size);
5815        my_size
5816    }
5817
5818    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5819        if let Some(ref v) = self.instance.as_ref() {
5820            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5821            os.write_raw_varint32(v.get_cached_size())?;
5822            v.write_to_with_cached_sizes(os)?;
5823        }
5824        if let Some(ref v) = self.start_time.as_ref() {
5825            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5826            os.write_raw_varint32(v.get_cached_size())?;
5827            v.write_to_with_cached_sizes(os)?;
5828        }
5829        if let Some(ref v) = self.cancel_time.as_ref() {
5830            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5831            os.write_raw_varint32(v.get_cached_size())?;
5832            v.write_to_with_cached_sizes(os)?;
5833        }
5834        if let Some(ref v) = self.end_time.as_ref() {
5835            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5836            os.write_raw_varint32(v.get_cached_size())?;
5837            v.write_to_with_cached_sizes(os)?;
5838        }
5839        os.write_unknown_fields(self.get_unknown_fields())?;
5840        ::std::result::Result::Ok(())
5841    }
5842
5843    fn get_cached_size(&self) -> u32 {
5844        self.cached_size.get()
5845    }
5846
5847    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5848        &self.unknown_fields
5849    }
5850
5851    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5852        &mut self.unknown_fields
5853    }
5854
5855    fn as_any(&self) -> &dyn (::std::any::Any) {
5856        self as &dyn (::std::any::Any)
5857    }
5858    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5859        self as &mut dyn (::std::any::Any)
5860    }
5861    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5862        self
5863    }
5864
5865    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5866        Self::descriptor_static()
5867    }
5868
5869    fn new() -> CreateInstanceMetadata {
5870        CreateInstanceMetadata::new()
5871    }
5872
5873    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5874        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5875        descriptor.get(|| {
5876            let mut fields = ::std::vec::Vec::new();
5877            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Instance>>(
5878                "instance",
5879                |m: &CreateInstanceMetadata| { &m.instance },
5880                |m: &mut CreateInstanceMetadata| { &mut m.instance },
5881            ));
5882            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
5883                "start_time",
5884                |m: &CreateInstanceMetadata| { &m.start_time },
5885                |m: &mut CreateInstanceMetadata| { &mut m.start_time },
5886            ));
5887            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
5888                "cancel_time",
5889                |m: &CreateInstanceMetadata| { &m.cancel_time },
5890                |m: &mut CreateInstanceMetadata| { &mut m.cancel_time },
5891            ));
5892            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
5893                "end_time",
5894                |m: &CreateInstanceMetadata| { &m.end_time },
5895                |m: &mut CreateInstanceMetadata| { &mut m.end_time },
5896            ));
5897            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateInstanceMetadata>(
5898                "CreateInstanceMetadata",
5899                fields,
5900                file_descriptor_proto()
5901            )
5902        })
5903    }
5904
5905    fn default_instance() -> &'static CreateInstanceMetadata {
5906        static instance: ::protobuf::rt::LazyV2<CreateInstanceMetadata> = ::protobuf::rt::LazyV2::INIT;
5907        instance.get(CreateInstanceMetadata::new)
5908    }
5909}
5910
5911impl ::protobuf::Clear for CreateInstanceMetadata {
5912    fn clear(&mut self) {
5913        self.instance.clear();
5914        self.start_time.clear();
5915        self.cancel_time.clear();
5916        self.end_time.clear();
5917        self.unknown_fields.clear();
5918    }
5919}
5920
5921impl ::std::fmt::Debug for CreateInstanceMetadata {
5922    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5923        ::protobuf::text_format::fmt(self, f)
5924    }
5925}
5926
5927impl ::protobuf::reflect::ProtobufValue for CreateInstanceMetadata {
5928    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5929        ::protobuf::reflect::ReflectValueRef::Message(self)
5930    }
5931}
5932
5933#[derive(PartialEq,Clone,Default)]
5934pub struct UpdateInstanceMetadata {
5935    // message fields
5936    pub instance: ::protobuf::SingularPtrField<Instance>,
5937    pub start_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5938    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5939    pub end_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
5940    // special fields
5941    pub unknown_fields: ::protobuf::UnknownFields,
5942    pub cached_size: ::protobuf::CachedSize,
5943}
5944
5945impl<'a> ::std::default::Default for &'a UpdateInstanceMetadata {
5946    fn default() -> &'a UpdateInstanceMetadata {
5947        <UpdateInstanceMetadata as ::protobuf::Message>::default_instance()
5948    }
5949}
5950
5951impl UpdateInstanceMetadata {
5952    pub fn new() -> UpdateInstanceMetadata {
5953        ::std::default::Default::default()
5954    }
5955
5956    // .google.spanner.admin.instance.v1.Instance instance = 1;
5957
5958
5959    pub fn get_instance(&self) -> &Instance {
5960        self.instance.as_ref().unwrap_or_else(|| <Instance as ::protobuf::Message>::default_instance())
5961    }
5962    pub fn clear_instance(&mut self) {
5963        self.instance.clear();
5964    }
5965
5966    pub fn has_instance(&self) -> bool {
5967        self.instance.is_some()
5968    }
5969
5970    // Param is passed by value, moved
5971    pub fn set_instance(&mut self, v: Instance) {
5972        self.instance = ::protobuf::SingularPtrField::some(v);
5973    }
5974
5975    // Mutable pointer to the field.
5976    // If field is not initialized, it is initialized with default value first.
5977    pub fn mut_instance(&mut self) -> &mut Instance {
5978        if self.instance.is_none() {
5979            self.instance.set_default();
5980        }
5981        self.instance.as_mut().unwrap()
5982    }
5983
5984    // Take field
5985    pub fn take_instance(&mut self) -> Instance {
5986        self.instance.take().unwrap_or_else(|| Instance::new())
5987    }
5988
5989    // .google.protobuf.Timestamp start_time = 2;
5990
5991
5992    pub fn get_start_time(&self) -> &::protobuf::well_known_types::Timestamp {
5993        self.start_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
5994    }
5995    pub fn clear_start_time(&mut self) {
5996        self.start_time.clear();
5997    }
5998
5999    pub fn has_start_time(&self) -> bool {
6000        self.start_time.is_some()
6001    }
6002
6003    // Param is passed by value, moved
6004    pub fn set_start_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
6005        self.start_time = ::protobuf::SingularPtrField::some(v);
6006    }
6007
6008    // Mutable pointer to the field.
6009    // If field is not initialized, it is initialized with default value first.
6010    pub fn mut_start_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
6011        if self.start_time.is_none() {
6012            self.start_time.set_default();
6013        }
6014        self.start_time.as_mut().unwrap()
6015    }
6016
6017    // Take field
6018    pub fn take_start_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
6019        self.start_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
6020    }
6021
6022    // .google.protobuf.Timestamp cancel_time = 3;
6023
6024
6025    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
6026        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
6027    }
6028    pub fn clear_cancel_time(&mut self) {
6029        self.cancel_time.clear();
6030    }
6031
6032    pub fn has_cancel_time(&self) -> bool {
6033        self.cancel_time.is_some()
6034    }
6035
6036    // Param is passed by value, moved
6037    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
6038        self.cancel_time = ::protobuf::SingularPtrField::some(v);
6039    }
6040
6041    // Mutable pointer to the field.
6042    // If field is not initialized, it is initialized with default value first.
6043    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
6044        if self.cancel_time.is_none() {
6045            self.cancel_time.set_default();
6046        }
6047        self.cancel_time.as_mut().unwrap()
6048    }
6049
6050    // Take field
6051    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
6052        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
6053    }
6054
6055    // .google.protobuf.Timestamp end_time = 4;
6056
6057
6058    pub fn get_end_time(&self) -> &::protobuf::well_known_types::Timestamp {
6059        self.end_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
6060    }
6061    pub fn clear_end_time(&mut self) {
6062        self.end_time.clear();
6063    }
6064
6065    pub fn has_end_time(&self) -> bool {
6066        self.end_time.is_some()
6067    }
6068
6069    // Param is passed by value, moved
6070    pub fn set_end_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
6071        self.end_time = ::protobuf::SingularPtrField::some(v);
6072    }
6073
6074    // Mutable pointer to the field.
6075    // If field is not initialized, it is initialized with default value first.
6076    pub fn mut_end_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
6077        if self.end_time.is_none() {
6078            self.end_time.set_default();
6079        }
6080        self.end_time.as_mut().unwrap()
6081    }
6082
6083    // Take field
6084    pub fn take_end_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
6085        self.end_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
6086    }
6087}
6088
6089impl ::protobuf::Message for UpdateInstanceMetadata {
6090    fn is_initialized(&self) -> bool {
6091        for v in &self.instance {
6092            if !v.is_initialized() {
6093                return false;
6094            }
6095        };
6096        for v in &self.start_time {
6097            if !v.is_initialized() {
6098                return false;
6099            }
6100        };
6101        for v in &self.cancel_time {
6102            if !v.is_initialized() {
6103                return false;
6104            }
6105        };
6106        for v in &self.end_time {
6107            if !v.is_initialized() {
6108                return false;
6109            }
6110        };
6111        true
6112    }
6113
6114    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6115        while !is.eof()? {
6116            let (field_number, wire_type) = is.read_tag_unpack()?;
6117            match field_number {
6118                1 => {
6119                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance)?;
6120                },
6121                2 => {
6122                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.start_time)?;
6123                },
6124                3 => {
6125                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
6126                },
6127                4 => {
6128                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.end_time)?;
6129                },
6130                _ => {
6131                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6132                },
6133            };
6134        }
6135        ::std::result::Result::Ok(())
6136    }
6137
6138    // Compute sizes of nested messages
6139    #[allow(unused_variables)]
6140    fn compute_size(&self) -> u32 {
6141        let mut my_size = 0;
6142        if let Some(ref v) = self.instance.as_ref() {
6143            let len = v.compute_size();
6144            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6145        }
6146        if let Some(ref v) = self.start_time.as_ref() {
6147            let len = v.compute_size();
6148            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6149        }
6150        if let Some(ref v) = self.cancel_time.as_ref() {
6151            let len = v.compute_size();
6152            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6153        }
6154        if let Some(ref v) = self.end_time.as_ref() {
6155            let len = v.compute_size();
6156            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6157        }
6158        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6159        self.cached_size.set(my_size);
6160        my_size
6161    }
6162
6163    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6164        if let Some(ref v) = self.instance.as_ref() {
6165            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6166            os.write_raw_varint32(v.get_cached_size())?;
6167            v.write_to_with_cached_sizes(os)?;
6168        }
6169        if let Some(ref v) = self.start_time.as_ref() {
6170            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6171            os.write_raw_varint32(v.get_cached_size())?;
6172            v.write_to_with_cached_sizes(os)?;
6173        }
6174        if let Some(ref v) = self.cancel_time.as_ref() {
6175            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6176            os.write_raw_varint32(v.get_cached_size())?;
6177            v.write_to_with_cached_sizes(os)?;
6178        }
6179        if let Some(ref v) = self.end_time.as_ref() {
6180            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6181            os.write_raw_varint32(v.get_cached_size())?;
6182            v.write_to_with_cached_sizes(os)?;
6183        }
6184        os.write_unknown_fields(self.get_unknown_fields())?;
6185        ::std::result::Result::Ok(())
6186    }
6187
6188    fn get_cached_size(&self) -> u32 {
6189        self.cached_size.get()
6190    }
6191
6192    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6193        &self.unknown_fields
6194    }
6195
6196    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6197        &mut self.unknown_fields
6198    }
6199
6200    fn as_any(&self) -> &dyn (::std::any::Any) {
6201        self as &dyn (::std::any::Any)
6202    }
6203    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6204        self as &mut dyn (::std::any::Any)
6205    }
6206    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6207        self
6208    }
6209
6210    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6211        Self::descriptor_static()
6212    }
6213
6214    fn new() -> UpdateInstanceMetadata {
6215        UpdateInstanceMetadata::new()
6216    }
6217
6218    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6219        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6220        descriptor.get(|| {
6221            let mut fields = ::std::vec::Vec::new();
6222            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Instance>>(
6223                "instance",
6224                |m: &UpdateInstanceMetadata| { &m.instance },
6225                |m: &mut UpdateInstanceMetadata| { &mut m.instance },
6226            ));
6227            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
6228                "start_time",
6229                |m: &UpdateInstanceMetadata| { &m.start_time },
6230                |m: &mut UpdateInstanceMetadata| { &mut m.start_time },
6231            ));
6232            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
6233                "cancel_time",
6234                |m: &UpdateInstanceMetadata| { &m.cancel_time },
6235                |m: &mut UpdateInstanceMetadata| { &mut m.cancel_time },
6236            ));
6237            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
6238                "end_time",
6239                |m: &UpdateInstanceMetadata| { &m.end_time },
6240                |m: &mut UpdateInstanceMetadata| { &mut m.end_time },
6241            ));
6242            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateInstanceMetadata>(
6243                "UpdateInstanceMetadata",
6244                fields,
6245                file_descriptor_proto()
6246            )
6247        })
6248    }
6249
6250    fn default_instance() -> &'static UpdateInstanceMetadata {
6251        static instance: ::protobuf::rt::LazyV2<UpdateInstanceMetadata> = ::protobuf::rt::LazyV2::INIT;
6252        instance.get(UpdateInstanceMetadata::new)
6253    }
6254}
6255
6256impl ::protobuf::Clear for UpdateInstanceMetadata {
6257    fn clear(&mut self) {
6258        self.instance.clear();
6259        self.start_time.clear();
6260        self.cancel_time.clear();
6261        self.end_time.clear();
6262        self.unknown_fields.clear();
6263    }
6264}
6265
6266impl ::std::fmt::Debug for UpdateInstanceMetadata {
6267    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6268        ::protobuf::text_format::fmt(self, f)
6269    }
6270}
6271
6272impl ::protobuf::reflect::ProtobufValue for UpdateInstanceMetadata {
6273    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6274        ::protobuf::reflect::ReflectValueRef::Message(self)
6275    }
6276}
6277
6278#[derive(PartialEq,Clone,Default)]
6279pub struct CreateInstanceConfigMetadata {
6280    // message fields
6281    pub instance_config: ::protobuf::SingularPtrField<InstanceConfig>,
6282    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
6283    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
6284    // special fields
6285    pub unknown_fields: ::protobuf::UnknownFields,
6286    pub cached_size: ::protobuf::CachedSize,
6287}
6288
6289impl<'a> ::std::default::Default for &'a CreateInstanceConfigMetadata {
6290    fn default() -> &'a CreateInstanceConfigMetadata {
6291        <CreateInstanceConfigMetadata as ::protobuf::Message>::default_instance()
6292    }
6293}
6294
6295impl CreateInstanceConfigMetadata {
6296    pub fn new() -> CreateInstanceConfigMetadata {
6297        ::std::default::Default::default()
6298    }
6299
6300    // .google.spanner.admin.instance.v1.InstanceConfig instance_config = 1;
6301
6302
6303    pub fn get_instance_config(&self) -> &InstanceConfig {
6304        self.instance_config.as_ref().unwrap_or_else(|| <InstanceConfig as ::protobuf::Message>::default_instance())
6305    }
6306    pub fn clear_instance_config(&mut self) {
6307        self.instance_config.clear();
6308    }
6309
6310    pub fn has_instance_config(&self) -> bool {
6311        self.instance_config.is_some()
6312    }
6313
6314    // Param is passed by value, moved
6315    pub fn set_instance_config(&mut self, v: InstanceConfig) {
6316        self.instance_config = ::protobuf::SingularPtrField::some(v);
6317    }
6318
6319    // Mutable pointer to the field.
6320    // If field is not initialized, it is initialized with default value first.
6321    pub fn mut_instance_config(&mut self) -> &mut InstanceConfig {
6322        if self.instance_config.is_none() {
6323            self.instance_config.set_default();
6324        }
6325        self.instance_config.as_mut().unwrap()
6326    }
6327
6328    // Take field
6329    pub fn take_instance_config(&mut self) -> InstanceConfig {
6330        self.instance_config.take().unwrap_or_else(|| InstanceConfig::new())
6331    }
6332
6333    // .google.spanner.admin.instance.v1.OperationProgress progress = 2;
6334
6335
6336    pub fn get_progress(&self) -> &super::common::OperationProgress {
6337        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
6338    }
6339    pub fn clear_progress(&mut self) {
6340        self.progress.clear();
6341    }
6342
6343    pub fn has_progress(&self) -> bool {
6344        self.progress.is_some()
6345    }
6346
6347    // Param is passed by value, moved
6348    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
6349        self.progress = ::protobuf::SingularPtrField::some(v);
6350    }
6351
6352    // Mutable pointer to the field.
6353    // If field is not initialized, it is initialized with default value first.
6354    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
6355        if self.progress.is_none() {
6356            self.progress.set_default();
6357        }
6358        self.progress.as_mut().unwrap()
6359    }
6360
6361    // Take field
6362    pub fn take_progress(&mut self) -> super::common::OperationProgress {
6363        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
6364    }
6365
6366    // .google.protobuf.Timestamp cancel_time = 3;
6367
6368
6369    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
6370        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
6371    }
6372    pub fn clear_cancel_time(&mut self) {
6373        self.cancel_time.clear();
6374    }
6375
6376    pub fn has_cancel_time(&self) -> bool {
6377        self.cancel_time.is_some()
6378    }
6379
6380    // Param is passed by value, moved
6381    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
6382        self.cancel_time = ::protobuf::SingularPtrField::some(v);
6383    }
6384
6385    // Mutable pointer to the field.
6386    // If field is not initialized, it is initialized with default value first.
6387    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
6388        if self.cancel_time.is_none() {
6389            self.cancel_time.set_default();
6390        }
6391        self.cancel_time.as_mut().unwrap()
6392    }
6393
6394    // Take field
6395    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
6396        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
6397    }
6398}
6399
6400impl ::protobuf::Message for CreateInstanceConfigMetadata {
6401    fn is_initialized(&self) -> bool {
6402        for v in &self.instance_config {
6403            if !v.is_initialized() {
6404                return false;
6405            }
6406        };
6407        for v in &self.progress {
6408            if !v.is_initialized() {
6409                return false;
6410            }
6411        };
6412        for v in &self.cancel_time {
6413            if !v.is_initialized() {
6414                return false;
6415            }
6416        };
6417        true
6418    }
6419
6420    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6421        while !is.eof()? {
6422            let (field_number, wire_type) = is.read_tag_unpack()?;
6423            match field_number {
6424                1 => {
6425                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance_config)?;
6426                },
6427                2 => {
6428                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
6429                },
6430                3 => {
6431                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
6432                },
6433                _ => {
6434                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6435                },
6436            };
6437        }
6438        ::std::result::Result::Ok(())
6439    }
6440
6441    // Compute sizes of nested messages
6442    #[allow(unused_variables)]
6443    fn compute_size(&self) -> u32 {
6444        let mut my_size = 0;
6445        if let Some(ref v) = self.instance_config.as_ref() {
6446            let len = v.compute_size();
6447            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6448        }
6449        if let Some(ref v) = self.progress.as_ref() {
6450            let len = v.compute_size();
6451            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6452        }
6453        if let Some(ref v) = self.cancel_time.as_ref() {
6454            let len = v.compute_size();
6455            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6456        }
6457        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6458        self.cached_size.set(my_size);
6459        my_size
6460    }
6461
6462    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6463        if let Some(ref v) = self.instance_config.as_ref() {
6464            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6465            os.write_raw_varint32(v.get_cached_size())?;
6466            v.write_to_with_cached_sizes(os)?;
6467        }
6468        if let Some(ref v) = self.progress.as_ref() {
6469            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6470            os.write_raw_varint32(v.get_cached_size())?;
6471            v.write_to_with_cached_sizes(os)?;
6472        }
6473        if let Some(ref v) = self.cancel_time.as_ref() {
6474            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6475            os.write_raw_varint32(v.get_cached_size())?;
6476            v.write_to_with_cached_sizes(os)?;
6477        }
6478        os.write_unknown_fields(self.get_unknown_fields())?;
6479        ::std::result::Result::Ok(())
6480    }
6481
6482    fn get_cached_size(&self) -> u32 {
6483        self.cached_size.get()
6484    }
6485
6486    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6487        &self.unknown_fields
6488    }
6489
6490    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6491        &mut self.unknown_fields
6492    }
6493
6494    fn as_any(&self) -> &dyn (::std::any::Any) {
6495        self as &dyn (::std::any::Any)
6496    }
6497    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6498        self as &mut dyn (::std::any::Any)
6499    }
6500    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6501        self
6502    }
6503
6504    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6505        Self::descriptor_static()
6506    }
6507
6508    fn new() -> CreateInstanceConfigMetadata {
6509        CreateInstanceConfigMetadata::new()
6510    }
6511
6512    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6513        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6514        descriptor.get(|| {
6515            let mut fields = ::std::vec::Vec::new();
6516            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<InstanceConfig>>(
6517                "instance_config",
6518                |m: &CreateInstanceConfigMetadata| { &m.instance_config },
6519                |m: &mut CreateInstanceConfigMetadata| { &mut m.instance_config },
6520            ));
6521            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
6522                "progress",
6523                |m: &CreateInstanceConfigMetadata| { &m.progress },
6524                |m: &mut CreateInstanceConfigMetadata| { &mut m.progress },
6525            ));
6526            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
6527                "cancel_time",
6528                |m: &CreateInstanceConfigMetadata| { &m.cancel_time },
6529                |m: &mut CreateInstanceConfigMetadata| { &mut m.cancel_time },
6530            ));
6531            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateInstanceConfigMetadata>(
6532                "CreateInstanceConfigMetadata",
6533                fields,
6534                file_descriptor_proto()
6535            )
6536        })
6537    }
6538
6539    fn default_instance() -> &'static CreateInstanceConfigMetadata {
6540        static instance: ::protobuf::rt::LazyV2<CreateInstanceConfigMetadata> = ::protobuf::rt::LazyV2::INIT;
6541        instance.get(CreateInstanceConfigMetadata::new)
6542    }
6543}
6544
6545impl ::protobuf::Clear for CreateInstanceConfigMetadata {
6546    fn clear(&mut self) {
6547        self.instance_config.clear();
6548        self.progress.clear();
6549        self.cancel_time.clear();
6550        self.unknown_fields.clear();
6551    }
6552}
6553
6554impl ::std::fmt::Debug for CreateInstanceConfigMetadata {
6555    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6556        ::protobuf::text_format::fmt(self, f)
6557    }
6558}
6559
6560impl ::protobuf::reflect::ProtobufValue for CreateInstanceConfigMetadata {
6561    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6562        ::protobuf::reflect::ReflectValueRef::Message(self)
6563    }
6564}
6565
6566#[derive(PartialEq,Clone,Default)]
6567pub struct UpdateInstanceConfigMetadata {
6568    // message fields
6569    pub instance_config: ::protobuf::SingularPtrField<InstanceConfig>,
6570    pub progress: ::protobuf::SingularPtrField<super::common::OperationProgress>,
6571    pub cancel_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
6572    // special fields
6573    pub unknown_fields: ::protobuf::UnknownFields,
6574    pub cached_size: ::protobuf::CachedSize,
6575}
6576
6577impl<'a> ::std::default::Default for &'a UpdateInstanceConfigMetadata {
6578    fn default() -> &'a UpdateInstanceConfigMetadata {
6579        <UpdateInstanceConfigMetadata as ::protobuf::Message>::default_instance()
6580    }
6581}
6582
6583impl UpdateInstanceConfigMetadata {
6584    pub fn new() -> UpdateInstanceConfigMetadata {
6585        ::std::default::Default::default()
6586    }
6587
6588    // .google.spanner.admin.instance.v1.InstanceConfig instance_config = 1;
6589
6590
6591    pub fn get_instance_config(&self) -> &InstanceConfig {
6592        self.instance_config.as_ref().unwrap_or_else(|| <InstanceConfig as ::protobuf::Message>::default_instance())
6593    }
6594    pub fn clear_instance_config(&mut self) {
6595        self.instance_config.clear();
6596    }
6597
6598    pub fn has_instance_config(&self) -> bool {
6599        self.instance_config.is_some()
6600    }
6601
6602    // Param is passed by value, moved
6603    pub fn set_instance_config(&mut self, v: InstanceConfig) {
6604        self.instance_config = ::protobuf::SingularPtrField::some(v);
6605    }
6606
6607    // Mutable pointer to the field.
6608    // If field is not initialized, it is initialized with default value first.
6609    pub fn mut_instance_config(&mut self) -> &mut InstanceConfig {
6610        if self.instance_config.is_none() {
6611            self.instance_config.set_default();
6612        }
6613        self.instance_config.as_mut().unwrap()
6614    }
6615
6616    // Take field
6617    pub fn take_instance_config(&mut self) -> InstanceConfig {
6618        self.instance_config.take().unwrap_or_else(|| InstanceConfig::new())
6619    }
6620
6621    // .google.spanner.admin.instance.v1.OperationProgress progress = 2;
6622
6623
6624    pub fn get_progress(&self) -> &super::common::OperationProgress {
6625        self.progress.as_ref().unwrap_or_else(|| <super::common::OperationProgress as ::protobuf::Message>::default_instance())
6626    }
6627    pub fn clear_progress(&mut self) {
6628        self.progress.clear();
6629    }
6630
6631    pub fn has_progress(&self) -> bool {
6632        self.progress.is_some()
6633    }
6634
6635    // Param is passed by value, moved
6636    pub fn set_progress(&mut self, v: super::common::OperationProgress) {
6637        self.progress = ::protobuf::SingularPtrField::some(v);
6638    }
6639
6640    // Mutable pointer to the field.
6641    // If field is not initialized, it is initialized with default value first.
6642    pub fn mut_progress(&mut self) -> &mut super::common::OperationProgress {
6643        if self.progress.is_none() {
6644            self.progress.set_default();
6645        }
6646        self.progress.as_mut().unwrap()
6647    }
6648
6649    // Take field
6650    pub fn take_progress(&mut self) -> super::common::OperationProgress {
6651        self.progress.take().unwrap_or_else(|| super::common::OperationProgress::new())
6652    }
6653
6654    // .google.protobuf.Timestamp cancel_time = 3;
6655
6656
6657    pub fn get_cancel_time(&self) -> &::protobuf::well_known_types::Timestamp {
6658        self.cancel_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
6659    }
6660    pub fn clear_cancel_time(&mut self) {
6661        self.cancel_time.clear();
6662    }
6663
6664    pub fn has_cancel_time(&self) -> bool {
6665        self.cancel_time.is_some()
6666    }
6667
6668    // Param is passed by value, moved
6669    pub fn set_cancel_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
6670        self.cancel_time = ::protobuf::SingularPtrField::some(v);
6671    }
6672
6673    // Mutable pointer to the field.
6674    // If field is not initialized, it is initialized with default value first.
6675    pub fn mut_cancel_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
6676        if self.cancel_time.is_none() {
6677            self.cancel_time.set_default();
6678        }
6679        self.cancel_time.as_mut().unwrap()
6680    }
6681
6682    // Take field
6683    pub fn take_cancel_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
6684        self.cancel_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
6685    }
6686}
6687
6688impl ::protobuf::Message for UpdateInstanceConfigMetadata {
6689    fn is_initialized(&self) -> bool {
6690        for v in &self.instance_config {
6691            if !v.is_initialized() {
6692                return false;
6693            }
6694        };
6695        for v in &self.progress {
6696            if !v.is_initialized() {
6697                return false;
6698            }
6699        };
6700        for v in &self.cancel_time {
6701            if !v.is_initialized() {
6702                return false;
6703            }
6704        };
6705        true
6706    }
6707
6708    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6709        while !is.eof()? {
6710            let (field_number, wire_type) = is.read_tag_unpack()?;
6711            match field_number {
6712                1 => {
6713                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.instance_config)?;
6714                },
6715                2 => {
6716                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.progress)?;
6717                },
6718                3 => {
6719                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cancel_time)?;
6720                },
6721                _ => {
6722                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6723                },
6724            };
6725        }
6726        ::std::result::Result::Ok(())
6727    }
6728
6729    // Compute sizes of nested messages
6730    #[allow(unused_variables)]
6731    fn compute_size(&self) -> u32 {
6732        let mut my_size = 0;
6733        if let Some(ref v) = self.instance_config.as_ref() {
6734            let len = v.compute_size();
6735            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6736        }
6737        if let Some(ref v) = self.progress.as_ref() {
6738            let len = v.compute_size();
6739            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6740        }
6741        if let Some(ref v) = self.cancel_time.as_ref() {
6742            let len = v.compute_size();
6743            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6744        }
6745        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6746        self.cached_size.set(my_size);
6747        my_size
6748    }
6749
6750    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6751        if let Some(ref v) = self.instance_config.as_ref() {
6752            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6753            os.write_raw_varint32(v.get_cached_size())?;
6754            v.write_to_with_cached_sizes(os)?;
6755        }
6756        if let Some(ref v) = self.progress.as_ref() {
6757            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6758            os.write_raw_varint32(v.get_cached_size())?;
6759            v.write_to_with_cached_sizes(os)?;
6760        }
6761        if let Some(ref v) = self.cancel_time.as_ref() {
6762            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6763            os.write_raw_varint32(v.get_cached_size())?;
6764            v.write_to_with_cached_sizes(os)?;
6765        }
6766        os.write_unknown_fields(self.get_unknown_fields())?;
6767        ::std::result::Result::Ok(())
6768    }
6769
6770    fn get_cached_size(&self) -> u32 {
6771        self.cached_size.get()
6772    }
6773
6774    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6775        &self.unknown_fields
6776    }
6777
6778    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6779        &mut self.unknown_fields
6780    }
6781
6782    fn as_any(&self) -> &dyn (::std::any::Any) {
6783        self as &dyn (::std::any::Any)
6784    }
6785    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6786        self as &mut dyn (::std::any::Any)
6787    }
6788    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6789        self
6790    }
6791
6792    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6793        Self::descriptor_static()
6794    }
6795
6796    fn new() -> UpdateInstanceConfigMetadata {
6797        UpdateInstanceConfigMetadata::new()
6798    }
6799
6800    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6801        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6802        descriptor.get(|| {
6803            let mut fields = ::std::vec::Vec::new();
6804            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<InstanceConfig>>(
6805                "instance_config",
6806                |m: &UpdateInstanceConfigMetadata| { &m.instance_config },
6807                |m: &mut UpdateInstanceConfigMetadata| { &mut m.instance_config },
6808            ));
6809            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::common::OperationProgress>>(
6810                "progress",
6811                |m: &UpdateInstanceConfigMetadata| { &m.progress },
6812                |m: &mut UpdateInstanceConfigMetadata| { &mut m.progress },
6813            ));
6814            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
6815                "cancel_time",
6816                |m: &UpdateInstanceConfigMetadata| { &m.cancel_time },
6817                |m: &mut UpdateInstanceConfigMetadata| { &mut m.cancel_time },
6818            ));
6819            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateInstanceConfigMetadata>(
6820                "UpdateInstanceConfigMetadata",
6821                fields,
6822                file_descriptor_proto()
6823            )
6824        })
6825    }
6826
6827    fn default_instance() -> &'static UpdateInstanceConfigMetadata {
6828        static instance: ::protobuf::rt::LazyV2<UpdateInstanceConfigMetadata> = ::protobuf::rt::LazyV2::INIT;
6829        instance.get(UpdateInstanceConfigMetadata::new)
6830    }
6831}
6832
6833impl ::protobuf::Clear for UpdateInstanceConfigMetadata {
6834    fn clear(&mut self) {
6835        self.instance_config.clear();
6836        self.progress.clear();
6837        self.cancel_time.clear();
6838        self.unknown_fields.clear();
6839    }
6840}
6841
6842impl ::std::fmt::Debug for UpdateInstanceConfigMetadata {
6843    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6844        ::protobuf::text_format::fmt(self, f)
6845    }
6846}
6847
6848impl ::protobuf::reflect::ProtobufValue for UpdateInstanceConfigMetadata {
6849    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6850        ::protobuf::reflect::ReflectValueRef::Message(self)
6851    }
6852}
6853
6854static file_descriptor_proto_data: &'static [u8] = b"\
6855    \n=google/spanner/admin/instance/v1/spanner_instance_admin.proto\x12\x20\
6856    google.spanner.admin.instance.v1\x1a\x1cgoogle/api/annotations.proto\x1a\
6857    \x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\
6858    \x19google/api/resource.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\
6859    \x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\
6860    \x1a\x1bgoogle/protobuf/empty.proto\x1a\x20google/protobuf/field_mask.pr\
6861    oto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a-google/spanner/admin/inst\
6862    ance/v1/common.proto\"\x81\x02\n\x0bReplicaInfo\x12\x1a\n\x08location\
6863    \x18\x01\x20\x01(\tR\x08location\x12M\n\x04type\x18\x02\x20\x01(\x0e29.g\
6864    oogle.spanner.admin.instance.v1.ReplicaInfo.ReplicaTypeR\x04type\x126\n\
6865    \x17default_leader_location\x18\x03\x20\x01(\x08R\x15defaultLeaderLocati\
6866    on\"O\n\x0bReplicaType\x12\x14\n\x10TYPE_UNSPECIFIED\x10\0\x12\x0e\n\nRE\
6867    AD_WRITE\x10\x01\x12\r\n\tREAD_ONLY\x10\x02\x12\x0b\n\x07WITNESS\x10\x03\
6868    \"\xc2\x07\n\x0eInstanceConfig\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04\
6869    name\x12!\n\x0cdisplay_name\x18\x02\x20\x01(\tR\x0bdisplayName\x12[\n\
6870    \x0bconfig_type\x18\x05\x20\x01(\x0e25.google.spanner.admin.instance.v1.\
6871    InstanceConfig.TypeR\nconfigTypeB\x03\xe0A\x03\x12I\n\x08replicas\x18\
6872    \x03\x20\x03(\x0b2-.google.spanner.admin.instance.v1.ReplicaInfoR\x08rep\
6873    licas\x12_\n\x11optional_replicas\x18\x06\x20\x03(\x0b2-.google.spanner.\
6874    admin.instance.v1.ReplicaInfoR\x10optionalReplicasB\x03\xe0A\x03\x12K\n\
6875    \x0bbase_config\x18\x07\x20\x01(\tR\nbaseConfigB*\xfaA'\n%spanner.google\
6876    apis.com/InstanceConfig\x12T\n\x06labels\x18\x08\x20\x03(\x0b2<.google.s\
6877    panner.admin.instance.v1.InstanceConfig.LabelsEntryR\x06labels\x12\x12\n\
6878    \x04etag\x18\t\x20\x01(\tR\x04etag\x12%\n\x0eleader_options\x18\x04\x20\
6879    \x03(\tR\rleaderOptions\x12%\n\x0breconciling\x18\n\x20\x01(\x08R\x0brec\
6880    oncilingB\x03\xe0A\x03\x12Q\n\x05state\x18\x0b\x20\x01(\x0e26.google.spa\
6881    nner.admin.instance.v1.InstanceConfig.StateR\x05stateB\x03\xe0A\x03\x1a9\
6882    \n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\
6883    \x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01\"B\n\x04Type\x12\x14\n\
6884    \x10TYPE_UNSPECIFIED\x10\0\x12\x12\n\x0eGOOGLE_MANAGED\x10\x01\x12\x10\n\
6885    \x0cUSER_MANAGED\x10\x02\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\
6886    \x10\0\x12\x0c\n\x08CREATING\x10\x01\x12\t\n\x05READY\x10\x02:`\xeaA]\n%\
6887    spanner.googleapis.com/InstanceConfig\x124projects/{project}/instanceCon\
6888    figs/{instance_config}\"\x95\x05\n\x11AutoscalingConfig\x12y\n\x12autosc\
6889    aling_limits\x18\x01\x20\x01(\x0b2E.google.spanner.admin.instance.v1.Aut\
6890    oscalingConfig.AutoscalingLimitsR\x11autoscalingLimitsB\x03\xe0A\x02\x12\
6891    |\n\x13autoscaling_targets\x18\x02\x20\x01(\x0b2F.google.spanner.admin.i\
6892    nstance.v1.AutoscalingConfig.AutoscalingTargetsR\x12autoscalingTargetsB\
6893    \x03\xe0A\x02\x1a\xd3\x01\n\x11AutoscalingLimits\x12\x1d\n\tmin_nodes\
6894    \x18\x01\x20\x01(\x05H\0R\x08minNodes\x122\n\x14min_processing_units\x18\
6895    \x02\x20\x01(\x05H\0R\x12minProcessingUnits\x12\x1d\n\tmax_nodes\x18\x03\
6896    \x20\x01(\x05H\x01R\x08maxNodes\x122\n\x14max_processing_units\x18\x04\
6897    \x20\x01(\x05H\x01R\x12maxProcessingUnitsB\x0b\n\tmin_limitB\x0b\n\tmax_\
6898    limit\x1a\xb0\x01\n\x12AutoscalingTargets\x12U\n%high_priority_cpu_utili\
6899    zation_percent\x18\x01\x20\x01(\x05R!highPriorityCpuUtilizationPercentB\
6900    \x03\xe0A\x02\x12C\n\x1bstorage_utilization_percent\x18\x02\x20\x01(\x05\
6901    R\x19storageUtilizationPercentB\x03\xe0A\x02\"\xce\x06\n\x08Instance\x12\
6902    \x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0A\x02\x12E\n\x06confi\
6903    g\x18\x02\x20\x01(\tR\x06configB-\xfaA'\n%spanner.googleapis.com/Instanc\
6904    eConfig\xe0A\x02\x12&\n\x0cdisplay_name\x18\x03\x20\x01(\tR\x0bdisplayNa\
6905    meB\x03\xe0A\x02\x12\x1d\n\nnode_count\x18\x05\x20\x01(\x05R\tnodeCount\
6906    \x12)\n\x10processing_units\x18\t\x20\x01(\x05R\x0fprocessingUnits\x12g\
6907    \n\x12autoscaling_config\x18\x11\x20\x01(\x0b23.google.spanner.admin.ins\
6908    tance.v1.AutoscalingConfigR\x11autoscalingConfigB\x03\xe0A\x01\x12K\n\
6909    \x05state\x18\x06\x20\x01(\x0e20.google.spanner.admin.instance.v1.Instan\
6910    ce.StateR\x05stateB\x03\xe0A\x03\x12N\n\x06labels\x18\x07\x20\x03(\x0b26\
6911    .google.spanner.admin.instance.v1.Instance.LabelsEntryR\x06labels\x12#\n\
6912    \rendpoint_uris\x18\x08\x20\x03(\tR\x0cendpointUris\x12@\n\x0bcreate_tim\
6913    e\x18\x0b\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncreateTimeB\x03\
6914    \xe0A\x03\x12@\n\x0bupdate_time\x18\x0c\x20\x01(\x0b2\x1a.google.protobu\
6915    f.TimestampR\nupdateTimeB\x03\xe0A\x03\x1a9\n\x0bLabelsEntry\x12\x10\n\
6916    \x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\t\
6917    R\x05value:\x028\x01\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\0\
6918    \x12\x0c\n\x08CREATING\x10\x01\x12\t\n\x05READY\x10\x02:M\xeaAJ\n\x1fspa\
6919    nner.googleapis.com/Instance\x12'projects/{project}/instances/{instance}\
6920    \"\xa5\x01\n\x1aListInstanceConfigsRequest\x12K\n\x06parent\x18\x01\x20\
6921    \x01(\tR\x06parentB3\xfaA-\n+cloudresourcemanager.googleapis.com/Project\
6922    \xe0A\x02\x12\x1b\n\tpage_size\x18\x02\x20\x01(\x05R\x08pageSize\x12\x1d\
6923    \n\npage_token\x18\x03\x20\x01(\tR\tpageToken\"\xa2\x01\n\x1bListInstanc\
6924    eConfigsResponse\x12[\n\x10instance_configs\x18\x01\x20\x03(\x0b20.googl\
6925    e.spanner.admin.instance.v1.InstanceConfigR\x0finstanceConfigs\x12&\n\
6926    \x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPageToken\"]\n\x18GetInstan\
6927    ceConfigRequest\x12A\n\x04name\x18\x01\x20\x01(\tR\x04nameB-\xfaA'\n%spa\
6928    nner.googleapis.com/InstanceConfig\xe0A\x02\"\xa2\x02\n\x1bCreateInstanc\
6929    eConfigRequest\x12K\n\x06parent\x18\x01\x20\x01(\tR\x06parentB3\xfaA-\n+\
6930    cloudresourcemanager.googleapis.com/Project\xe0A\x02\x121\n\x12instance_\
6931    config_id\x18\x02\x20\x01(\tR\x10instanceConfigIdB\x03\xe0A\x02\x12^\n\
6932    \x0finstance_config\x18\x03\x20\x01(\x0b20.google.spanner.admin.instance\
6933    .v1.InstanceConfigR\x0einstanceConfigB\x03\xe0A\x02\x12#\n\rvalidate_onl\
6934    y\x18\x04\x20\x01(\x08R\x0cvalidateOnly\"\xe4\x01\n\x1bUpdateInstanceCon\
6935    figRequest\x12^\n\x0finstance_config\x18\x01\x20\x01(\x0b20.google.spann\
6936    er.admin.instance.v1.InstanceConfigR\x0einstanceConfigB\x03\xe0A\x02\x12\
6937    @\n\x0bupdate_mask\x18\x02\x20\x01(\x0b2\x1a.google.protobuf.FieldMaskR\
6938    \nupdateMaskB\x03\xe0A\x02\x12#\n\rvalidate_only\x18\x03\x20\x01(\x08R\
6939    \x0cvalidateOnly\"\x99\x01\n\x1bDeleteInstanceConfigRequest\x12A\n\x04na\
6940    me\x18\x01\x20\x01(\tR\x04nameB-\xfaA'\n%spanner.googleapis.com/Instance\
6941    Config\xe0A\x02\x12\x12\n\x04etag\x18\x02\x20\x01(\tR\x04etag\x12#\n\rva\
6942    lidate_only\x18\x03\x20\x01(\x08R\x0cvalidateOnly\"\xc6\x01\n#ListInstan\
6943    ceConfigOperationsRequest\x12K\n\x06parent\x18\x01\x20\x01(\tR\x06parent\
6944    B3\xfaA-\n+cloudresourcemanager.googleapis.com/Project\xe0A\x02\x12\x16\
6945    \n\x06filter\x18\x02\x20\x01(\tR\x06filter\x12\x1b\n\tpage_size\x18\x03\
6946    \x20\x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x04\x20\x01(\tR\tpa\
6947    geToken\"\x8d\x01\n$ListInstanceConfigOperationsResponse\x12=\n\noperati\
6948    ons\x18\x01\x20\x03(\x0b2\x1d.google.longrunning.OperationR\noperations\
6949    \x12&\n\x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPageToken\"\x8c\x01\
6950    \n\x12GetInstanceRequest\x12;\n\x04name\x18\x01\x20\x01(\tR\x04nameB'\
6951    \xfaA!\n\x1fspanner.googleapis.com/Instance\xe0A\x02\x129\n\nfield_mask\
6952    \x18\x02\x20\x01(\x0b2\x1a.google.protobuf.FieldMaskR\tfieldMask\"\xd7\
6953    \x01\n\x15CreateInstanceRequest\x12K\n\x06parent\x18\x01\x20\x01(\tR\x06\
6954    parentB3\xfaA-\n+cloudresourcemanager.googleapis.com/Project\xe0A\x02\
6955    \x12$\n\x0binstance_id\x18\x02\x20\x01(\tR\ninstanceIdB\x03\xe0A\x02\x12\
6956    K\n\x08instance\x18\x03\x20\x01(\x0b2*.google.spanner.admin.instance.v1.\
6957    InstanceR\x08instanceB\x03\xe0A\x02\"\xb7\x01\n\x14ListInstancesRequest\
6958    \x12K\n\x06parent\x18\x01\x20\x01(\tR\x06parentB3\xfaA-\n+cloudresourcem\
6959    anager.googleapis.com/Project\xe0A\x02\x12\x1b\n\tpage_size\x18\x02\x20\
6960    \x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03\x20\x01(\tR\tpageTo\
6961    ken\x12\x16\n\x06filter\x18\x04\x20\x01(\tR\x06filter\"\x89\x01\n\x15Lis\
6962    tInstancesResponse\x12H\n\tinstances\x18\x01\x20\x03(\x0b2*.google.spann\
6963    er.admin.instance.v1.InstanceR\tinstances\x12&\n\x0fnext_page_token\x18\
6964    \x02\x20\x01(\tR\rnextPageToken\"\xa4\x01\n\x15UpdateInstanceRequest\x12\
6965    K\n\x08instance\x18\x01\x20\x01(\x0b2*.google.spanner.admin.instance.v1.\
6966    InstanceR\x08instanceB\x03\xe0A\x02\x12>\n\nfield_mask\x18\x02\x20\x01(\
6967    \x0b2\x1a.google.protobuf.FieldMaskR\tfieldMaskB\x03\xe0A\x02\"T\n\x15De\
6968    leteInstanceRequest\x12;\n\x04name\x18\x01\x20\x01(\tR\x04nameB'\xfaA!\n\
6969    \x1fspanner.googleapis.com/Instance\xe0A\x02\"\x8f\x02\n\x16CreateInstan\
6970    ceMetadata\x12F\n\x08instance\x18\x01\x20\x01(\x0b2*.google.spanner.admi\
6971    n.instance.v1.InstanceR\x08instance\x129\n\nstart_time\x18\x02\x20\x01(\
6972    \x0b2\x1a.google.protobuf.TimestampR\tstartTime\x12;\n\x0bcancel_time\
6973    \x18\x03\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncancelTime\x125\n\
6974    \x08end_time\x18\x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\x07end\
6975    Time\"\x8f\x02\n\x16UpdateInstanceMetadata\x12F\n\x08instance\x18\x01\
6976    \x20\x01(\x0b2*.google.spanner.admin.instance.v1.InstanceR\x08instance\
6977    \x129\n\nstart_time\x18\x02\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\
6978    \tstartTime\x12;\n\x0bcancel_time\x18\x03\x20\x01(\x0b2\x1a.google.proto\
6979    buf.TimestampR\ncancelTime\x125\n\x08end_time\x18\x04\x20\x01(\x0b2\x1a.\
6980    google.protobuf.TimestampR\x07endTime\"\x87\x02\n\x1cCreateInstanceConfi\
6981    gMetadata\x12Y\n\x0finstance_config\x18\x01\x20\x01(\x0b20.google.spanne\
6982    r.admin.instance.v1.InstanceConfigR\x0einstanceConfig\x12O\n\x08progress\
6983    \x18\x02\x20\x01(\x0b23.google.spanner.admin.instance.v1.OperationProgre\
6984    ssR\x08progress\x12;\n\x0bcancel_time\x18\x03\x20\x01(\x0b2\x1a.google.p\
6985    rotobuf.TimestampR\ncancelTime\"\x87\x02\n\x1cUpdateInstanceConfigMetada\
6986    ta\x12Y\n\x0finstance_config\x18\x01\x20\x01(\x0b20.google.spanner.admin\
6987    .instance.v1.InstanceConfigR\x0einstanceConfig\x12O\n\x08progress\x18\
6988    \x02\x20\x01(\x0b23.google.spanner.admin.instance.v1.OperationProgressR\
6989    \x08progress\x12;\n\x0bcancel_time\x18\x03\x20\x01(\x0b2\x1a.google.prot\
6990    obuf.TimestampR\ncancelTime2\xf2\x18\n\rInstanceAdmin\x12\xcc\x01\n\x13L\
6991    istInstanceConfigs\x12<.google.spanner.admin.instance.v1.ListInstanceCon\
6992    figsRequest\x1a=.google.spanner.admin.instance.v1.ListInstanceConfigsRes\
6993    ponse\"8\x82\xd3\xe4\x93\x02)\x12'/v1/{parent=projects/*}/instanceConfig\
6994    s\xdaA\x06parent\x12\xb9\x01\n\x11GetInstanceConfig\x12:.google.spanner.\
6995    admin.instance.v1.GetInstanceConfigRequest\x1a0.google.spanner.admin.ins\
6996    tance.v1.InstanceConfig\"6\x82\xd3\xe4\x93\x02)\x12'/v1/{name=projects/*\
6997    /instanceConfigs/*}\xdaA\x04name\x12\xc8\x02\n\x14CreateInstanceConfig\
6998    \x12=.google.spanner.admin.instance.v1.CreateInstanceConfigRequest\x1a\
6999    \x1d.google.longrunning.Operation\"\xd1\x01\xcaAp\n/google.spanner.admin\
7000    .instance.v1.InstanceConfig\x12=google.spanner.admin.instance.v1.CreateI\
7001    nstanceConfigMetadata\x82\xd3\xe4\x93\x02,\"'/v1/{parent=projects/*}/ins\
7002    tanceConfigs:\x01*\xdaA)parent,instance_config,instance_config_id\x12\
7003    \xca\x02\n\x14UpdateInstanceConfig\x12=.google.spanner.admin.instance.v1\
7004    .UpdateInstanceConfigRequest\x1a\x1d.google.longrunning.Operation\"\xd3\
7005    \x01\xcaAp\n/google.spanner.admin.instance.v1.InstanceConfig\x12=google.\
7006    spanner.admin.instance.v1.UpdateInstanceConfigMetadata\x82\xd3\xe4\x93\
7007    \x02<27/v1/{instance_config.name=projects/*/instanceConfigs/*}:\x01*\xda\
7008    A\x1binstance_config,update_mask\x12\xa5\x01\n\x14DeleteInstanceConfig\
7009    \x12=.google.spanner.admin.instance.v1.DeleteInstanceConfigRequest\x1a\
7010    \x16.google.protobuf.Empty\"6\x82\xd3\xe4\x93\x02)*'/v1/{name=projects/*\
7011    /instanceConfigs/*}\xdaA\x04name\x12\xf0\x01\n\x1cListInstanceConfigOper\
7012    ations\x12E.google.spanner.admin.instance.v1.ListInstanceConfigOperation\
7013    sRequest\x1aF.google.spanner.admin.instance.v1.ListInstanceConfigOperati\
7014    onsResponse\"A\x82\xd3\xe4\x93\x022\x120/v1/{parent=projects/*}/instance\
7015    ConfigOperations\xdaA\x06parent\x12\xb4\x01\n\rListInstances\x126.google\
7016    .spanner.admin.instance.v1.ListInstancesRequest\x1a7.google.spanner.admi\
7017    n.instance.v1.ListInstancesResponse\"2\x82\xd3\xe4\x93\x02#\x12!/v1/{par\
7018    ent=projects/*}/instances\xdaA\x06parent\x12\xa1\x01\n\x0bGetInstance\
7019    \x124.google.spanner.admin.instance.v1.GetInstanceRequest\x1a*.google.sp\
7020    anner.admin.instance.v1.Instance\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=p\
7021    rojects/*/instances/*}\xdaA\x04name\x12\x9c\x02\n\x0eCreateInstance\x127\
7022    .google.spanner.admin.instance.v1.CreateInstanceRequest\x1a\x1d.google.l\
7023    ongrunning.Operation\"\xb1\x01\xcaAd\n)google.spanner.admin.instance.v1.\
7024    Instance\x127google.spanner.admin.instance.v1.CreateInstanceMetadata\x82\
7025    \xd3\xe4\x93\x02&\"!/v1/{parent=projects/*}/instances:\x01*\xdaA\x1bpare\
7026    nt,instance_id,instance\x12\x9d\x02\n\x0eUpdateInstance\x127.google.span\
7027    ner.admin.instance.v1.UpdateInstanceRequest\x1a\x1d.google.longrunning.O\
7028    peration\"\xb2\x01\xcaAd\n)google.spanner.admin.instance.v1.Instance\x12\
7029    7google.spanner.admin.instance.v1.UpdateInstanceMetadata\x82\xd3\xe4\x93\
7030    \x02/2*/v1/{instance.name=projects/*/instances/*}:\x01*\xdaA\x13instance\
7031    ,field_mask\x12\x93\x01\n\x0eDeleteInstance\x127.google.spanner.admin.in\
7032    stance.v1.DeleteInstanceRequest\x1a\x16.google.protobuf.Empty\"0\x82\xd3\
7033    \xe4\x93\x02#*!/v1/{name=projects/*/instances/*}\xdaA\x04name\x12\x9a\
7034    \x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.g\
7035    oogle.iam.v1.Policy\"O\x82\xd3\xe4\x93\x027\"2/v1/{resource=projects/*/i\
7036    nstances/*}:setIamPolicy:\x01*\xdaA\x0fresource,policy\x12\x93\x01\n\x0c\
7037    GetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.\
7038    v1.Policy\"H\x82\xd3\xe4\x93\x027\"2/v1/{resource=projects/*/instances/*\
7039    }:getIamPolicy:\x01*\xdaA\x08resource\x12\xc5\x01\n\x12TestIamPermission\
7040    s\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIa\
7041    mPermissionsResponse\"Z\x82\xd3\xe4\x93\x02=\"8/v1/{resource=projects/*/\
7042    instances/*}:testIamPermissions:\x01*\xdaA\x14resource,permissions\x1ax\
7043    \xd2A\\https://www.googleapis.com/auth/cloud-platform,https://www.google\
7044    apis.com/auth/spanner.admin\xcaA\x16spanner.googleapis.comB\x8b\x02\n$co\
7045    m.google.spanner.admin.instance.v1B\x19SpannerInstanceAdminProtoP\x01ZFc\
7046    loud.google.com/go/spanner/admin/instance/apiv1/instancepb;instancepb\
7047    \xaa\x02&Google.Cloud.Spanner.Admin.Instance.V1\xca\x02&Google\\Cloud\\S\
7048    panner\\Admin\\Instance\\V1\xea\x02+Google::Cloud::Spanner::Admin::Insta\
7049    nce::V1J\x9c\xde\x02\n\x07\x12\x05\x0e\0\x84\t\x01\n\xbc\x04\n\x01\x0c\
7050    \x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202022\x20Google\x20LLC\n\n\
7051    \x20Licensed\x20under\x20the\x20Apache\x20License,\x20Version\x202.0\x20\
7052    (the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20this\x20file\x20e\
7053    xcept\x20in\x20compliance\x20with\x20the\x20License.\n\x20You\x20may\x20\
7054    obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\x20\x20\x20\x20\
7055    \x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Unless\x20required\
7056    \x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\x20writing,\x20s\
7057    oftware\n\x20distributed\x20under\x20the\x20License\x20is\x20distributed\
7058    \x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\
7059    \x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20express\x20or\x20impli\
7060    ed.\n\x20See\x20the\x20License\x20for\x20the\x20specific\x20language\x20\
7061    governing\x20permissions\x20and\n\x20limitations\x20under\x20the\x20Lice\
7062    nse.\n\n\x08\n\x01\x02\x12\x03\x10\0)\n\t\n\x02\x03\0\x12\x03\x12\0&\n\t\
7063    \n\x02\x03\x01\x12\x03\x13\0!\n\t\n\x02\x03\x02\x12\x03\x14\0)\n\t\n\x02\
7064    \x03\x03\x12\x03\x15\0#\n\t\n\x02\x03\x04\x12\x03\x16\0(\n\t\n\x02\x03\
7065    \x05\x12\x03\x17\0$\n\t\n\x02\x03\x06\x12\x03\x18\0-\n\t\n\x02\x03\x07\
7066    \x12\x03\x19\0%\n\t\n\x02\x03\x08\x12\x03\x1a\0*\n\t\n\x02\x03\t\x12\x03\
7067    \x1b\0)\n\t\n\x02\x03\n\x12\x03\x1c\07\n\x08\n\x01\x08\x12\x03\x1e\0C\n\
7068    \t\n\x02\x08%\x12\x03\x1e\0C\n\x08\n\x01\x08\x12\x03\x1f\0]\n\t\n\x02\
7069    \x08\x0b\x12\x03\x1f\0]\n\x08\n\x01\x08\x12\x03\x20\0\"\n\t\n\x02\x08\n\
7070    \x12\x03\x20\0\"\n\x08\n\x01\x08\x12\x03!\0:\n\t\n\x02\x08\x08\x12\x03!\
7071    \0:\n\x08\n\x01\x08\x12\x03\"\0=\n\t\n\x02\x08\x01\x12\x03\"\0=\n\x08\n\
7072    \x01\x08\x12\x03#\0E\n\t\n\x02\x08)\x12\x03#\0E\n\x08\n\x01\x08\x12\x03$\
7073    \0D\n\t\n\x02\x08-\x12\x03$\0D\n\xdd\x08\n\x02\x06\0\x12\x05;\0\x95\x03\
7074    \x01\x1a\xcf\x08\x20Cloud\x20Spanner\x20Instance\x20Admin\x20API\n\n\x20\
7075    The\x20Cloud\x20Spanner\x20Instance\x20Admin\x20API\x20can\x20be\x20used\
7076    \x20to\x20create,\x20delete,\n\x20modify\x20and\x20list\x20instances.\
7077    \x20Instances\x20are\x20dedicated\x20Cloud\x20Spanner\x20serving\n\x20an\
7078    d\x20storage\x20resources\x20to\x20be\x20used\x20by\x20Cloud\x20Spanner\
7079    \x20databases.\n\n\x20Each\x20instance\x20has\x20a\x20\"configuration\",\
7080    \x20which\x20dictates\x20where\x20the\n\x20serving\x20resources\x20for\
7081    \x20the\x20Cloud\x20Spanner\x20instance\x20are\x20located\x20(e.g.,\n\
7082    \x20US-central,\x20Europe).\x20Configurations\x20are\x20created\x20by\
7083    \x20Google\x20based\x20on\n\x20resource\x20availability.\n\n\x20Cloud\
7084    \x20Spanner\x20billing\x20is\x20based\x20on\x20the\x20instances\x20that\
7085    \x20exist\x20and\x20their\n\x20sizes.\x20After\x20an\x20instance\x20exis\
7086    ts,\x20there\x20are\x20no\x20additional\n\x20per-database\x20or\x20per-o\
7087    peration\x20charges\x20for\x20use\x20of\x20the\x20instance\n\x20(though\
7088    \x20there\x20may\x20be\x20additional\x20network\x20bandwidth\x20charges)\
7089    .\n\x20Instances\x20offer\x20isolation:\x20problems\x20with\x20databases\
7090    \x20in\x20one\x20instance\n\x20will\x20not\x20affect\x20other\x20instanc\
7091    es.\x20However,\x20within\x20an\x20instance\n\x20databases\x20can\x20aff\
7092    ect\x20each\x20other.\x20For\x20example,\x20if\x20one\x20database\x20in\
7093    \x20an\n\x20instance\x20receives\x20a\x20lot\x20of\x20requests\x20and\
7094    \x20consumes\x20most\x20of\x20the\n\x20instance\x20resources,\x20fewer\
7095    \x20resources\x20are\x20available\x20for\x20other\n\x20databases\x20in\
7096    \x20that\x20instance,\x20and\x20their\x20performance\x20may\x20suffer.\n\
7097    \n\n\n\x03\x06\0\x01\x12\x03;\x08\x15\n\n\n\x03\x06\0\x03\x12\x03<\x02>\
7098    \n\x0c\n\x05\x06\0\x03\x99\x08\x12\x03<\x02>\n\x0b\n\x03\x06\0\x03\x12\
7099    \x04=\x02?6\n\r\n\x05\x06\0\x03\x9a\x08\x12\x04=\x02?6\nP\n\x04\x06\0\
7100    \x02\0\x12\x04B\x02H\x03\x1aB\x20Lists\x20the\x20supported\x20instance\
7101    \x20configurations\x20for\x20a\x20given\x20project.\n\n\x0c\n\x05\x06\0\
7102    \x02\0\x01\x12\x03B\x06\x19\n\x0c\n\x05\x06\0\x02\0\x02\x12\x03B\x1a4\n\
7103    \x0c\n\x05\x06\0\x02\0\x03\x12\x03C\x0f*\n\r\n\x05\x06\0\x02\0\x04\x12\
7104    \x04D\x04F\x06\n\x11\n\t\x06\0\x02\0\x04\xb0\xca\xbc\"\x12\x04D\x04F\x06\
7105    \n\x0c\n\x05\x06\0\x02\0\x04\x12\x03G\x044\n\x0f\n\x08\x06\0\x02\0\x04\
7106    \x9b\x08\0\x12\x03G\x044\nK\n\x04\x06\0\x02\x01\x12\x04K\x02P\x03\x1a=\
7107    \x20Gets\x20information\x20about\x20a\x20particular\x20instance\x20confi\
7108    guration.\n\n\x0c\n\x05\x06\0\x02\x01\x01\x12\x03K\x06\x17\n\x0c\n\x05\
7109    \x06\0\x02\x01\x02\x12\x03K\x180\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03K;\
7110    I\n\r\n\x05\x06\0\x02\x01\x04\x12\x04L\x04N\x06\n\x11\n\t\x06\0\x02\x01\
7111    \x04\xb0\xca\xbc\"\x12\x04L\x04N\x06\n\x0c\n\x05\x06\0\x02\x01\x04\x12\
7112    \x03O\x042\n\x0f\n\x08\x06\0\x02\x01\x04\x9b\x08\0\x12\x03O\x042\n\xca\
7113    \x0e\n\x04\x06\0\x02\x02\x12\x05{\x02\x87\x01\x03\x1a\xba\x0e\x20Creates\
7114    \x20an\x20instance\x20config\x20and\x20begins\x20preparing\x20it\x20to\
7115    \x20be\x20used.\x20The\n\x20returned\x20[long-running\x20operation][goog\
7116    le.longrunning.Operation]\n\x20can\x20be\x20used\x20to\x20track\x20the\
7117    \x20progress\x20of\x20preparing\x20the\x20new\n\x20instance\x20config.\
7118    \x20The\x20instance\x20config\x20name\x20is\x20assigned\x20by\x20the\x20\
7119    caller.\x20If\x20the\n\x20named\x20instance\x20config\x20already\x20exis\
7120    ts,\x20`CreateInstanceConfig`\x20returns\n\x20`ALREADY_EXISTS`.\n\n\x20I\
7121    mmediately\x20after\x20the\x20request\x20returns:\n\n\x20\x20\x20*\x20Th\
7122    e\x20instance\x20config\x20is\x20readable\x20via\x20the\x20API,\x20with\
7123    \x20all\x20requested\n\x20\x20\x20\x20\x20attributes.\x20The\x20instance\
7124    \x20config's\n\x20\x20\x20\x20\x20[reconciling][google.spanner.admin.ins\
7125    tance.v1.InstanceConfig.reconciling]\n\x20\x20\x20\x20\x20field\x20is\
7126    \x20set\x20to\x20true.\x20Its\x20state\x20is\x20`CREATING`.\n\n\x20While\
7127    \x20the\x20operation\x20is\x20pending:\n\n\x20\x20\x20*\x20Cancelling\
7128    \x20the\x20operation\x20renders\x20the\x20instance\x20config\x20immediat\
7129    ely\n\x20\x20\x20\x20\x20unreadable\x20via\x20the\x20API.\n\x20\x20\x20*\
7130    \x20Except\x20for\x20deleting\x20the\x20creating\x20resource,\x20all\x20\
7131    other\x20attempts\x20to\x20modify\n\x20\x20\x20\x20\x20the\x20instance\
7132    \x20config\x20are\x20rejected.\n\n\x20Upon\x20completion\x20of\x20the\
7133    \x20returned\x20operation:\n\n\x20\x20\x20*\x20Instances\x20can\x20be\
7134    \x20created\x20using\x20the\x20instance\x20configuration.\n\x20\x20\x20*\
7135    \x20The\x20instance\x20config's\n\x20\x20\x20[reconciling][google.spanne\
7136    r.admin.instance.v1.InstanceConfig.reconciling]\n\x20\x20\x20field\x20be\
7137    comes\x20false.\x20Its\x20state\x20becomes\x20`READY`.\n\n\x20The\x20ret\
7138    urned\x20[long-running\x20operation][google.longrunning.Operation]\x20wi\
7139    ll\n\x20have\x20a\x20name\x20of\x20the\x20format\n\x20`<instance_config_\
7140    name>/operations/<operation_id>`\x20and\x20can\x20be\x20used\x20to\x20tr\
7141    ack\n\x20creation\x20of\x20the\x20instance\x20config.\x20The\n\x20[metad\
7142    ata][google.longrunning.Operation.metadata]\x20field\x20type\x20is\n\x20\
7143    [CreateInstanceConfigMetadata][google.spanner.admin.instance.v1.CreateIn\
7144    stanceConfigMetadata].\n\x20The\x20[response][google.longrunning.Operati\
7145    on.response]\x20field\x20type\x20is\n\x20[InstanceConfig][google.spanner\
7146    .admin.instance.v1.InstanceConfig],\x20if\n\x20successful.\n\n\x20Author\
7147    ization\x20requires\x20`spanner.instanceConfigs.create`\x20permission\
7148    \x20on\n\x20the\x20resource\n\x20[parent][google.spanner.admin.instance.\
7149    v1.CreateInstanceConfigRequest.parent].\n\n\x0c\n\x05\x06\0\x02\x02\x01\
7150    \x12\x03{\x06\x1a\n\x0c\n\x05\x06\0\x02\x02\x02\x12\x03{\x1b6\n\x0c\n\
7151    \x05\x06\0\x02\x02\x03\x12\x03|\x0f+\n\x0e\n\x05\x06\0\x02\x02\x04\x12\
7152    \x05}\x04\x80\x01\x06\n\x12\n\t\x06\0\x02\x02\x04\xb0\xca\xbc\"\x12\x05}\
7153    \x04\x80\x01\x06\n\x0f\n\x05\x06\0\x02\x02\x04\x12\x06\x81\x01\x04\x82\
7154    \x014\n\x12\n\x08\x06\0\x02\x02\x04\x9b\x08\0\x12\x06\x81\x01\x04\x82\
7155    \x014\n\x0f\n\x05\x06\0\x02\x02\x04\x12\x06\x83\x01\x04\x86\x01\x06\n\
7156    \x11\n\x07\x06\0\x02\x02\x04\x99\x08\x12\x06\x83\x01\x04\x86\x01\x06\n\
7157    \x99\x0f\n\x04\x06\0\x02\x03\x12\x06\xb5\x01\x02\xc0\x01\x03\x1a\x88\x0f\
7158    \x20Updates\x20an\x20instance\x20config.\x20The\x20returned\n\x20[long-r\
7159    unning\x20operation][google.longrunning.Operation]\x20can\x20be\x20used\
7160    \x20to\x20track\n\x20the\x20progress\x20of\x20updating\x20the\x20instanc\
7161    e.\x20If\x20the\x20named\x20instance\x20config\x20does\n\x20not\x20exist\
7162    ,\x20returns\x20`NOT_FOUND`.\n\n\x20Only\x20user\x20managed\x20configura\
7163    tions\x20can\x20be\x20updated.\n\n\x20Immediately\x20after\x20the\x20req\
7164    uest\x20returns:\n\n\x20\x20\x20*\x20The\x20instance\x20config's\n\x20\
7165    \x20\x20\x20\x20[reconciling][google.spanner.admin.instance.v1.InstanceC\
7166    onfig.reconciling]\n\x20\x20\x20\x20\x20field\x20is\x20set\x20to\x20true\
7167    .\n\n\x20While\x20the\x20operation\x20is\x20pending:\n\n\x20\x20\x20*\
7168    \x20Cancelling\x20the\x20operation\x20sets\x20its\x20metadata's\n\x20\
7169    \x20\x20\x20\x20[cancel_time][google.spanner.admin.instance.v1.UpdateIns\
7170    tanceConfigMetadata.cancel_time].\n\x20\x20\x20\x20\x20The\x20operation\
7171    \x20is\x20guaranteed\x20to\x20succeed\x20at\x20undoing\x20all\x20changes\
7172    ,\x20after\n\x20\x20\x20\x20\x20which\x20point\x20it\x20terminates\x20wi\
7173    th\x20a\x20`CANCELLED`\x20status.\n\x20\x20\x20*\x20All\x20other\x20atte\
7174    mpts\x20to\x20modify\x20the\x20instance\x20config\x20are\x20rejected.\n\
7175    \x20\x20\x20*\x20Reading\x20the\x20instance\x20config\x20via\x20the\x20A\
7176    PI\x20continues\x20to\x20give\x20the\n\x20\x20\x20\x20\x20pre-request\
7177    \x20values.\n\n\x20Upon\x20completion\x20of\x20the\x20returned\x20operat\
7178    ion:\n\n\x20\x20\x20*\x20Creating\x20instances\x20using\x20the\x20instan\
7179    ce\x20configuration\x20uses\x20the\x20new\n\x20\x20\x20\x20\x20values.\n\
7180    \x20\x20\x20*\x20The\x20instance\x20config's\x20new\x20values\x20are\x20\
7181    readable\x20via\x20the\x20API.\n\x20\x20\x20*\x20The\x20instance\x20conf\
7182    ig's\n\x20\x20\x20[reconciling][google.spanner.admin.instance.v1.Instanc\
7183    eConfig.reconciling]\n\x20\x20\x20field\x20becomes\x20false.\n\n\x20The\
7184    \x20returned\x20[long-running\x20operation][google.longrunning.Operation\
7185    ]\x20will\n\x20have\x20a\x20name\x20of\x20the\x20format\n\x20`<instance_\
7186    config_name>/operations/<operation_id>`\x20and\x20can\x20be\x20used\x20t\
7187    o\x20track\n\x20the\x20instance\x20config\x20modification.\x20\x20The\n\
7188    \x20[metadata][google.longrunning.Operation.metadata]\x20field\x20type\
7189    \x20is\n\x20[UpdateInstanceConfigMetadata][google.spanner.admin.instance\
7190    .v1.UpdateInstanceConfigMetadata].\n\x20The\x20[response][google.longrun\
7191    ning.Operation.response]\x20field\x20type\x20is\n\x20[InstanceConfig][go\
7192    ogle.spanner.admin.instance.v1.InstanceConfig],\x20if\n\x20successful.\n\
7193    \n\x20Authorization\x20requires\x20`spanner.instanceConfigs.update`\x20p\
7194    ermission\x20on\n\x20the\x20resource\x20[name][google.spanner.admin.inst\
7195    ance.v1.InstanceConfig.name].\n\n\r\n\x05\x06\0\x02\x03\x01\x12\x04\xb5\
7196    \x01\x06\x1a\n\r\n\x05\x06\0\x02\x03\x02\x12\x04\xb5\x01\x1b6\n\r\n\x05\
7197    \x06\0\x02\x03\x03\x12\x04\xb6\x01\x0f+\n\x0f\n\x05\x06\0\x02\x03\x04\
7198    \x12\x06\xb7\x01\x04\xba\x01\x06\n\x13\n\t\x06\0\x02\x03\x04\xb0\xca\xbc\
7199    \"\x12\x06\xb7\x01\x04\xba\x01\x06\n\r\n\x05\x06\0\x02\x03\x04\x12\x04\
7200    \xbb\x01\x04I\n\x10\n\x08\x06\0\x02\x03\x04\x9b\x08\0\x12\x04\xbb\x01\
7201    \x04I\n\x0f\n\x05\x06\0\x02\x03\x04\x12\x06\xbc\x01\x04\xbf\x01\x06\n\
7202    \x11\n\x07\x06\0\x02\x03\x04\x99\x08\x12\x06\xbc\x01\x04\xbf\x01\x06\n\
7203    \x86\x03\n\x04\x06\0\x02\x04\x12\x06\xca\x01\x02\xd0\x01\x03\x1a\xf5\x02\
7204    \x20Deletes\x20the\x20instance\x20config.\x20Deletion\x20is\x20only\x20a\
7205    llowed\x20when\x20no\n\x20instances\x20are\x20using\x20the\x20configurat\
7206    ion.\x20If\x20any\x20instances\x20are\x20using\n\x20the\x20config,\x20re\
7207    turns\x20`FAILED_PRECONDITION`.\n\n\x20Only\x20user\x20managed\x20config\
7208    urations\x20can\x20be\x20deleted.\n\n\x20Authorization\x20requires\x20`s\
7209    panner.instanceConfigs.delete`\x20permission\x20on\n\x20the\x20resource\
7210    \x20[name][google.spanner.admin.instance.v1.InstanceConfig.name].\n\n\r\
7211    \n\x05\x06\0\x02\x04\x01\x12\x04\xca\x01\x06\x1a\n\r\n\x05\x06\0\x02\x04\
7212    \x02\x12\x04\xca\x01\x1b6\n\r\n\x05\x06\0\x02\x04\x03\x12\x04\xcb\x01\
7213    \x0f$\n\x0f\n\x05\x06\0\x02\x04\x04\x12\x06\xcc\x01\x04\xce\x01\x06\n\
7214    \x13\n\t\x06\0\x02\x04\x04\xb0\xca\xbc\"\x12\x06\xcc\x01\x04\xce\x01\x06\
7215    \n\r\n\x05\x06\0\x02\x04\x04\x12\x04\xcf\x01\x042\n\x10\n\x08\x06\0\x02\
7216    \x04\x04\x9b\x08\0\x12\x04\xcf\x01\x042\n\xaa\x05\n\x04\x06\0\x02\x05\
7217    \x12\x06\xdd\x01\x02\xe3\x01\x03\x1a\x99\x05\x20Lists\x20the\x20user-man\
7218    aged\x20instance\x20config\x20[long-running\n\x20operations][google.long\
7219    running.Operation]\x20in\x20the\x20given\x20project.\x20An\x20instance\n\
7220    \x20config\x20operation\x20has\x20a\x20name\x20of\x20the\x20form\n\x20`p\
7221    rojects/<project>/instanceConfigs/<instance_config>/operations/<operatio\
7222    n>`.\n\x20The\x20long-running\x20operation\n\x20[metadata][google.longru\
7223    nning.Operation.metadata]\x20field\x20type\n\x20`metadata.type_url`\x20d\
7224    escribes\x20the\x20type\x20of\x20the\x20metadata.\x20Operations\x20retur\
7225    ned\n\x20include\x20those\x20that\x20have\x20completed/failed/canceled\
7226    \x20within\x20the\x20last\x207\x20days,\n\x20and\x20pending\x20operation\
7227    s.\x20Operations\x20returned\x20are\x20ordered\x20by\n\x20`operation.met\
7228    adata.value.start_time`\x20in\x20descending\x20order\x20starting\n\x20fr\
7229    om\x20the\x20most\x20recently\x20started\x20operation.\n\n\r\n\x05\x06\0\
7230    \x02\x05\x01\x12\x04\xdd\x01\x06\"\n\r\n\x05\x06\0\x02\x05\x02\x12\x04\
7231    \xdd\x01#F\n\r\n\x05\x06\0\x02\x05\x03\x12\x04\xde\x01\x0f3\n\x0f\n\x05\
7232    \x06\0\x02\x05\x04\x12\x06\xdf\x01\x04\xe1\x01\x06\n\x13\n\t\x06\0\x02\
7233    \x05\x04\xb0\xca\xbc\"\x12\x06\xdf\x01\x04\xe1\x01\x06\n\r\n\x05\x06\0\
7234    \x02\x05\x04\x12\x04\xe2\x01\x044\n\x10\n\x08\x06\0\x02\x05\x04\x9b\x08\
7235    \0\x12\x04\xe2\x01\x044\n;\n\x04\x06\0\x02\x06\x12\x06\xe6\x01\x02\xeb\
7236    \x01\x03\x1a+\x20Lists\x20all\x20instances\x20in\x20the\x20given\x20proj\
7237    ect.\n\n\r\n\x05\x06\0\x02\x06\x01\x12\x04\xe6\x01\x06\x13\n\r\n\x05\x06\
7238    \0\x02\x06\x02\x12\x04\xe6\x01\x14(\n\r\n\x05\x06\0\x02\x06\x03\x12\x04\
7239    \xe6\x013H\n\x0f\n\x05\x06\0\x02\x06\x04\x12\x06\xe7\x01\x04\xe9\x01\x06\
7240    \n\x13\n\t\x06\0\x02\x06\x04\xb0\xca\xbc\"\x12\x06\xe7\x01\x04\xe9\x01\
7241    \x06\n\r\n\x05\x06\0\x02\x06\x04\x12\x04\xea\x01\x044\n\x10\n\x08\x06\0\
7242    \x02\x06\x04\x9b\x08\0\x12\x04\xea\x01\x044\n?\n\x04\x06\0\x02\x07\x12\
7243    \x06\xee\x01\x02\xf3\x01\x03\x1a/\x20Gets\x20information\x20about\x20a\
7244    \x20particular\x20instance.\n\n\r\n\x05\x06\0\x02\x07\x01\x12\x04\xee\
7245    \x01\x06\x11\n\r\n\x05\x06\0\x02\x07\x02\x12\x04\xee\x01\x12$\n\r\n\x05\
7246    \x06\0\x02\x07\x03\x12\x04\xee\x01/7\n\x0f\n\x05\x06\0\x02\x07\x04\x12\
7247    \x06\xef\x01\x04\xf1\x01\x06\n\x13\n\t\x06\0\x02\x07\x04\xb0\xca\xbc\"\
7248    \x12\x06\xef\x01\x04\xf1\x01\x06\n\r\n\x05\x06\0\x02\x07\x04\x12\x04\xf2\
7249    \x01\x042\n\x10\n\x08\x06\0\x02\x07\x04\x9b\x08\0\x12\x04\xf2\x01\x042\n\
7250    \xaa\x0c\n\x04\x06\0\x02\x08\x12\x06\x97\x02\x02\xa2\x02\x03\x1a\x99\x0c\
7251    \x20Creates\x20an\x20instance\x20and\x20begins\x20preparing\x20it\x20to\
7252    \x20begin\x20serving.\x20The\n\x20returned\x20[long-running\x20operation\
7253    ][google.longrunning.Operation]\n\x20can\x20be\x20used\x20to\x20track\
7254    \x20the\x20progress\x20of\x20preparing\x20the\x20new\n\x20instance.\x20T\
7255    he\x20instance\x20name\x20is\x20assigned\x20by\x20the\x20caller.\x20If\
7256    \x20the\n\x20named\x20instance\x20already\x20exists,\x20`CreateInstance`\
7257    \x20returns\n\x20`ALREADY_EXISTS`.\n\n\x20Immediately\x20upon\x20complet\
7258    ion\x20of\x20this\x20request:\n\n\x20\x20\x20*\x20The\x20instance\x20is\
7259    \x20readable\x20via\x20the\x20API,\x20with\x20all\x20requested\x20attrib\
7260    utes\n\x20\x20\x20\x20\x20but\x20no\x20allocated\x20resources.\x20Its\
7261    \x20state\x20is\x20`CREATING`.\n\n\x20Until\x20completion\x20of\x20the\
7262    \x20returned\x20operation:\n\n\x20\x20\x20*\x20Cancelling\x20the\x20oper\
7263    ation\x20renders\x20the\x20instance\x20immediately\x20unreadable\n\x20\
7264    \x20\x20\x20\x20via\x20the\x20API.\n\x20\x20\x20*\x20The\x20instance\x20\
7265    can\x20be\x20deleted.\n\x20\x20\x20*\x20All\x20other\x20attempts\x20to\
7266    \x20modify\x20the\x20instance\x20are\x20rejected.\n\n\x20Upon\x20complet\
7267    ion\x20of\x20the\x20returned\x20operation:\n\n\x20\x20\x20*\x20Billing\
7268    \x20for\x20all\x20successfully-allocated\x20resources\x20begins\x20(some\
7269    \x20types\n\x20\x20\x20\x20\x20may\x20have\x20lower\x20than\x20the\x20re\
7270    quested\x20levels).\n\x20\x20\x20*\x20Databases\x20can\x20be\x20created\
7271    \x20in\x20the\x20instance.\n\x20\x20\x20*\x20The\x20instance's\x20alloca\
7272    ted\x20resource\x20levels\x20are\x20readable\x20via\x20the\x20API.\n\x20\
7273    \x20\x20*\x20The\x20instance's\x20state\x20becomes\x20`READY`.\n\n\x20Th\
7274    e\x20returned\x20[long-running\x20operation][google.longrunning.Operatio\
7275    n]\x20will\n\x20have\x20a\x20name\x20of\x20the\x20format\x20`<instance_n\
7276    ame>/operations/<operation_id>`\x20and\n\x20can\x20be\x20used\x20to\x20t\
7277    rack\x20creation\x20of\x20the\x20instance.\x20\x20The\n\x20[metadata][go\
7278    ogle.longrunning.Operation.metadata]\x20field\x20type\x20is\n\x20[Create\
7279    InstanceMetadata][google.spanner.admin.instance.v1.CreateInstanceMetadat\
7280    a].\n\x20The\x20[response][google.longrunning.Operation.response]\x20fie\
7281    ld\x20type\x20is\n\x20[Instance][google.spanner.admin.instance.v1.Instan\
7282    ce],\x20if\x20successful.\n\n\r\n\x05\x06\0\x02\x08\x01\x12\x04\x97\x02\
7283    \x06\x14\n\r\n\x05\x06\0\x02\x08\x02\x12\x04\x97\x02\x15*\n\r\n\x05\x06\
7284    \0\x02\x08\x03\x12\x04\x98\x02\x0f+\n\x0f\n\x05\x06\0\x02\x08\x04\x12\
7285    \x06\x99\x02\x04\x9c\x02\x06\n\x13\n\t\x06\0\x02\x08\x04\xb0\xca\xbc\"\
7286    \x12\x06\x99\x02\x04\x9c\x02\x06\n\r\n\x05\x06\0\x02\x08\x04\x12\x04\x9d\
7287    \x02\x04I\n\x10\n\x08\x06\0\x02\x08\x04\x9b\x08\0\x12\x04\x9d\x02\x04I\n\
7288    \x0f\n\x05\x06\0\x02\x08\x04\x12\x06\x9e\x02\x04\xa1\x02\x06\n\x11\n\x07\
7289    \x06\0\x02\x08\x04\x99\x08\x12\x06\x9e\x02\x04\xa1\x02\x06\n\xbc\x0f\n\
7290    \x04\x06\0\x02\t\x12\x06\xcc\x02\x02\xd7\x02\x03\x1a\xab\x0f\x20Updates\
7291    \x20an\x20instance,\x20and\x20begins\x20allocating\x20or\x20releasing\
7292    \x20resources\n\x20as\x20requested.\x20The\x20returned\x20[long-running\
7293    \n\x20operation][google.longrunning.Operation]\x20can\x20be\x20used\x20t\
7294    o\x20track\x20the\n\x20progress\x20of\x20updating\x20the\x20instance.\
7295    \x20If\x20the\x20named\x20instance\x20does\x20not\n\x20exist,\x20returns\
7296    \x20`NOT_FOUND`.\n\n\x20Immediately\x20upon\x20completion\x20of\x20this\
7297    \x20request:\n\n\x20\x20\x20*\x20For\x20resource\x20types\x20for\x20whic\
7298    h\x20a\x20decrease\x20in\x20the\x20instance's\x20allocation\n\x20\x20\
7299    \x20\x20\x20has\x20been\x20requested,\x20billing\x20is\x20based\x20on\
7300    \x20the\x20newly-requested\x20level.\n\n\x20Until\x20completion\x20of\
7301    \x20the\x20returned\x20operation:\n\n\x20\x20\x20*\x20Cancelling\x20the\
7302    \x20operation\x20sets\x20its\x20metadata's\n\x20\x20\x20\x20\x20[cancel_\
7303    time][google.spanner.admin.instance.v1.UpdateInstanceMetadata.cancel_tim\
7304    e],\n\x20\x20\x20\x20\x20and\x20begins\x20restoring\x20resources\x20to\
7305    \x20their\x20pre-request\x20values.\x20The\n\x20\x20\x20\x20\x20operatio\
7306    n\x20is\x20guaranteed\x20to\x20succeed\x20at\x20undoing\x20all\x20resour\
7307    ce\x20changes,\n\x20\x20\x20\x20\x20after\x20which\x20point\x20it\x20ter\
7308    minates\x20with\x20a\x20`CANCELLED`\x20status.\n\x20\x20\x20*\x20All\x20\
7309    other\x20attempts\x20to\x20modify\x20the\x20instance\x20are\x20rejected.\
7310    \n\x20\x20\x20*\x20Reading\x20the\x20instance\x20via\x20the\x20API\x20co\
7311    ntinues\x20to\x20give\x20the\x20pre-request\n\x20\x20\x20\x20\x20resourc\
7312    e\x20levels.\n\n\x20Upon\x20completion\x20of\x20the\x20returned\x20opera\
7313    tion:\n\n\x20\x20\x20*\x20Billing\x20begins\x20for\x20all\x20successfull\
7314    y-allocated\x20resources\x20(some\x20types\n\x20\x20\x20\x20\x20may\x20h\
7315    ave\x20lower\x20than\x20the\x20requested\x20levels).\n\x20\x20\x20*\x20A\
7316    ll\x20newly-reserved\x20resources\x20are\x20available\x20for\x20serving\
7317    \x20the\x20instance's\n\x20\x20\x20\x20\x20tables.\n\x20\x20\x20*\x20The\
7318    \x20instance's\x20new\x20resource\x20levels\x20are\x20readable\x20via\
7319    \x20the\x20API.\n\n\x20The\x20returned\x20[long-running\x20operation][go\
7320    ogle.longrunning.Operation]\x20will\n\x20have\x20a\x20name\x20of\x20the\
7321    \x20format\x20`<instance_name>/operations/<operation_id>`\x20and\n\x20ca\
7322    n\x20be\x20used\x20to\x20track\x20the\x20instance\x20modification.\x20\
7323    \x20The\n\x20[metadata][google.longrunning.Operation.metadata]\x20field\
7324    \x20type\x20is\n\x20[UpdateInstanceMetadata][google.spanner.admin.instan\
7325    ce.v1.UpdateInstanceMetadata].\n\x20The\x20[response][google.longrunning\
7326    .Operation.response]\x20field\x20type\x20is\n\x20[Instance][google.spann\
7327    er.admin.instance.v1.Instance],\x20if\x20successful.\n\n\x20Authorizatio\
7328    n\x20requires\x20`spanner.instances.update`\x20permission\x20on\n\x20the\
7329    \x20resource\x20[name][google.spanner.admin.instance.v1.Instance.name].\
7330    \n\n\r\n\x05\x06\0\x02\t\x01\x12\x04\xcc\x02\x06\x14\n\r\n\x05\x06\0\x02\
7331    \t\x02\x12\x04\xcc\x02\x15*\n\r\n\x05\x06\0\x02\t\x03\x12\x04\xcd\x02\
7332    \x0f+\n\x0f\n\x05\x06\0\x02\t\x04\x12\x06\xce\x02\x04\xd1\x02\x06\n\x13\
7333    \n\t\x06\0\x02\t\x04\xb0\xca\xbc\"\x12\x06\xce\x02\x04\xd1\x02\x06\n\r\n\
7334    \x05\x06\0\x02\t\x04\x12\x04\xd2\x02\x04A\n\x10\n\x08\x06\0\x02\t\x04\
7335    \x9b\x08\0\x12\x04\xd2\x02\x04A\n\x0f\n\x05\x06\0\x02\t\x04\x12\x06\xd3\
7336    \x02\x04\xd6\x02\x06\n\x11\n\x07\x06\0\x02\t\x04\x99\x08\x12\x06\xd3\x02\
7337    \x04\xd6\x02\x06\n\xc8\x02\n\x04\x06\0\x02\n\x12\x06\xe4\x02\x02\xe9\x02\
7338    \x03\x1a\xb7\x02\x20Deletes\x20an\x20instance.\n\n\x20Immediately\x20upo\
7339    n\x20completion\x20of\x20the\x20request:\n\n\x20\x20\x20*\x20Billing\x20\
7340    ceases\x20for\x20all\x20of\x20the\x20instance's\x20reserved\x20resources\
7341    .\n\n\x20Soon\x20afterward:\n\n\x20\x20\x20*\x20The\x20instance\x20and\
7342    \x20*all\x20of\x20its\x20databases*\x20immediately\x20and\n\x20\x20\x20\
7343    \x20\x20irrevocably\x20disappear\x20from\x20the\x20API.\x20All\x20data\
7344    \x20in\x20the\x20databases\n\x20\x20\x20\x20\x20is\x20permanently\x20del\
7345    eted.\n\n\r\n\x05\x06\0\x02\n\x01\x12\x04\xe4\x02\x06\x14\n\r\n\x05\x06\
7346    \0\x02\n\x02\x12\x04\xe4\x02\x15*\n\r\n\x05\x06\0\x02\n\x03\x12\x04\xe4\
7347    \x025J\n\x0f\n\x05\x06\0\x02\n\x04\x12\x06\xe5\x02\x04\xe7\x02\x06\n\x13\
7348    \n\t\x06\0\x02\n\x04\xb0\xca\xbc\"\x12\x06\xe5\x02\x04\xe7\x02\x06\n\r\n\
7349    \x05\x06\0\x02\n\x04\x12\x04\xe8\x02\x042\n\x10\n\x08\x06\0\x02\n\x04\
7350    \x9b\x08\0\x12\x04\xe8\x02\x042\n\xdf\x01\n\x04\x06\0\x02\x0b\x12\x06\
7351    \xf0\x02\x02\xf7\x02\x03\x1a\xce\x01\x20Sets\x20the\x20access\x20control\
7352    \x20policy\x20on\x20an\x20instance\x20resource.\x20Replaces\x20any\n\x20\
7353    existing\x20policy.\n\n\x20Authorization\x20requires\x20`spanner.instanc\
7354    es.setIamPolicy`\x20on\n\x20[resource][google.iam.v1.SetIamPolicyRequest\
7355    .resource].\n\n\r\n\x05\x06\0\x02\x0b\x01\x12\x04\xf0\x02\x06\x12\n\r\n\
7356    \x05\x06\0\x02\x0b\x02\x12\x04\xf0\x02\x134\n\r\n\x05\x06\0\x02\x0b\x03\
7357    \x12\x04\xf1\x02\x0f#\n\x0f\n\x05\x06\0\x02\x0b\x04\x12\x06\xf2\x02\x04\
7358    \xf5\x02\x06\n\x13\n\t\x06\0\x02\x0b\x04\xb0\xca\xbc\"\x12\x06\xf2\x02\
7359    \x04\xf5\x02\x06\n\r\n\x05\x06\0\x02\x0b\x04\x12\x04\xf6\x02\x04=\n\x10\
7360    \n\x08\x06\0\x02\x0b\x04\x9b\x08\0\x12\x04\xf6\x02\x04=\n\x90\x02\n\x04\
7361    \x06\0\x02\x0c\x12\x06\xfe\x02\x02\x85\x03\x03\x1a\xff\x01\x20Gets\x20th\
7362    e\x20access\x20control\x20policy\x20for\x20an\x20instance\x20resource.\
7363    \x20Returns\x20an\x20empty\n\x20policy\x20if\x20an\x20instance\x20exists\
7364    \x20but\x20does\x20not\x20have\x20a\x20policy\x20set.\n\n\x20Authorizati\
7365    on\x20requires\x20`spanner.instances.getIamPolicy`\x20on\n\x20[resource]\
7366    [google.iam.v1.GetIamPolicyRequest.resource].\n\n\r\n\x05\x06\0\x02\x0c\
7367    \x01\x12\x04\xfe\x02\x06\x12\n\r\n\x05\x06\0\x02\x0c\x02\x12\x04\xfe\x02\
7368    \x134\n\r\n\x05\x06\0\x02\x0c\x03\x12\x04\xff\x02\x0f#\n\x0f\n\x05\x06\0\
7369    \x02\x0c\x04\x12\x06\x80\x03\x04\x83\x03\x06\n\x13\n\t\x06\0\x02\x0c\x04\
7370    \xb0\xca\xbc\"\x12\x06\x80\x03\x04\x83\x03\x06\n\r\n\x05\x06\0\x02\x0c\
7371    \x04\x12\x04\x84\x03\x046\n\x10\n\x08\x06\0\x02\x0c\x04\x9b\x08\0\x12\
7372    \x04\x84\x03\x046\n\xd5\x02\n\x04\x06\0\x02\r\x12\x06\x8d\x03\x02\x94\
7373    \x03\x03\x1a\xc4\x02\x20Returns\x20permissions\x20that\x20the\x20caller\
7374    \x20has\x20on\x20the\x20specified\x20instance\x20resource.\n\n\x20Attemp\
7375    ting\x20this\x20RPC\x20on\x20a\x20non-existent\x20Cloud\x20Spanner\x20in\
7376    stance\x20resource\x20will\n\x20result\x20in\x20a\x20NOT_FOUND\x20error\
7377    \x20if\x20the\x20user\x20has\x20`spanner.instances.list`\n\x20permission\
7378    \x20on\x20the\x20containing\x20Google\x20Cloud\x20Project.\x20Otherwise\
7379    \x20returns\x20an\n\x20empty\x20set\x20of\x20permissions.\n\n\r\n\x05\
7380    \x06\0\x02\r\x01\x12\x04\x8d\x03\x06\x18\n\r\n\x05\x06\0\x02\r\x02\x12\
7381    \x04\x8d\x03\x19@\n\r\n\x05\x06\0\x02\r\x03\x12\x04\x8e\x03\x0f7\n\x0f\n\
7382    \x05\x06\0\x02\r\x04\x12\x06\x8f\x03\x04\x92\x03\x06\n\x13\n\t\x06\0\x02\
7383    \r\x04\xb0\xca\xbc\"\x12\x06\x8f\x03\x04\x92\x03\x06\n\r\n\x05\x06\0\x02\
7384    \r\x04\x12\x04\x93\x03\x04B\n\x10\n\x08\x06\0\x02\r\x04\x9b\x08\0\x12\
7385    \x04\x93\x03\x04B\n\x0c\n\x02\x04\0\x12\x06\x97\x03\0\xc5\x03\x01\n\x0b\
7386    \n\x03\x04\0\x01\x12\x04\x97\x03\x08\x13\n\xad\x01\n\x04\x04\0\x04\0\x12\
7387    \x06\x9b\x03\x02\xb8\x03\x03\x1a\x9c\x01\x20Indicates\x20the\x20type\x20\
7388    of\x20replica.\x20\x20See\x20the\x20[replica\x20types\n\x20documentation\
7389    ](https://cloud.google.com/spanner/docs/replication#replica_types)\n\x20\
7390    for\x20more\x20details.\n\n\r\n\x05\x04\0\x04\0\x01\x12\x04\x9b\x03\x07\
7391    \x12\n\x20\n\x06\x04\0\x04\0\x02\0\x12\x04\x9d\x03\x04\x19\x1a\x10\x20No\
7392    t\x20specified.\n\n\x0f\n\x07\x04\0\x04\0\x02\0\x01\x12\x04\x9d\x03\x04\
7393    \x14\n\x0f\n\x07\x04\0\x04\0\x02\0\x02\x12\x04\x9d\x03\x17\x18\n\xfe\x01\
7394    \n\x06\x04\0\x04\0\x02\x01\x12\x04\xa6\x03\x04\x13\x1a\xed\x01\x20Read-w\
7395    rite\x20replicas\x20support\x20both\x20reads\x20and\x20writes.\x20These\
7396    \x20replicas:\n\n\x20*\x20Maintain\x20a\x20full\x20copy\x20of\x20your\
7397    \x20data.\n\x20*\x20Serve\x20reads.\n\x20*\x20Can\x20vote\x20whether\x20\
7398    to\x20commit\x20a\x20write.\n\x20*\x20Participate\x20in\x20leadership\
7399    \x20election.\n\x20*\x20Are\x20eligible\x20to\x20become\x20a\x20leader.\
7400    \n\n\x0f\n\x07\x04\0\x04\0\x02\x01\x01\x12\x04\xa6\x03\x04\x0e\n\x0f\n\
7401    \x07\x04\0\x04\0\x02\x01\x02\x12\x04\xa6\x03\x11\x12\n\xeb\x01\n\x06\x04\
7402    \0\x04\0\x02\x02\x12\x04\xae\x03\x04\x12\x1a\xda\x01\x20Read-only\x20rep\
7403    licas\x20only\x20support\x20reads\x20(not\x20writes).\x20Read-only\x20re\
7404    plicas:\n\n\x20*\x20Maintain\x20a\x20full\x20copy\x20of\x20your\x20data.\
7405    \n\x20*\x20Serve\x20reads.\n\x20*\x20Do\x20not\x20participate\x20in\x20v\
7406    oting\x20to\x20commit\x20writes.\n\x20*\x20Are\x20not\x20eligible\x20to\
7407    \x20become\x20a\x20leader.\n\n\x0f\n\x07\x04\0\x04\0\x02\x02\x01\x12\x04\
7408    \xae\x03\x04\r\n\x0f\n\x07\x04\0\x04\0\x02\x02\x02\x12\x04\xae\x03\x10\
7409    \x11\n\xa4\x02\n\x06\x04\0\x04\0\x02\x03\x12\x04\xb7\x03\x04\x10\x1a\x93\
7410    \x02\x20Witness\x20replicas\x20don't\x20support\x20reads\x20but\x20do\
7411    \x20participate\x20in\x20voting\x20to\n\x20commit\x20writes.\x20Witness\
7412    \x20replicas:\n\n\x20*\x20Do\x20not\x20maintain\x20a\x20full\x20copy\x20\
7413    of\x20data.\n\x20*\x20Do\x20not\x20serve\x20reads.\n\x20*\x20Vote\x20whe\
7414    ther\x20to\x20commit\x20writes.\n\x20*\x20Participate\x20in\x20leader\
7415    \x20election\x20but\x20are\x20not\x20eligible\x20to\x20become\x20leader.\
7416    \n\n\x0f\n\x07\x04\0\x04\0\x02\x03\x01\x12\x04\xb7\x03\x04\x0b\n\x0f\n\
7417    \x07\x04\0\x04\0\x02\x03\x02\x12\x04\xb7\x03\x0e\x0f\nJ\n\x04\x04\0\x02\
7418    \0\x12\x04\xbb\x03\x02\x16\x1a<\x20The\x20location\x20of\x20the\x20servi\
7419    ng\x20resources,\x20e.g.\x20\"us-central1\".\n\n\r\n\x05\x04\0\x02\0\x05\
7420    \x12\x04\xbb\x03\x02\x08\n\r\n\x05\x04\0\x02\0\x01\x12\x04\xbb\x03\t\x11\
7421    \n\r\n\x05\x04\0\x02\0\x03\x12\x04\xbb\x03\x14\x15\n$\n\x04\x04\0\x02\
7422    \x01\x12\x04\xbe\x03\x02\x17\x1a\x16\x20The\x20type\x20of\x20replica.\n\
7423    \n\r\n\x05\x04\0\x02\x01\x06\x12\x04\xbe\x03\x02\r\n\r\n\x05\x04\0\x02\
7424    \x01\x01\x12\x04\xbe\x03\x0e\x12\n\r\n\x05\x04\0\x02\x01\x03\x12\x04\xbe\
7425    \x03\x15\x16\n\xee\x01\n\x04\x04\0\x02\x02\x12\x04\xc4\x03\x02#\x1a\xdf\
7426    \x01\x20If\x20true,\x20this\x20location\x20is\x20designated\x20as\x20the\
7427    \x20default\x20leader\x20location\x20where\n\x20leader\x20replicas\x20ar\
7428    e\x20placed.\x20See\x20the\x20[region\x20types\n\x20documentation](https\
7429    ://cloud.google.com/spanner/docs/instances#region_types)\n\x20for\x20mor\
7430    e\x20details.\n\n\r\n\x05\x04\0\x02\x02\x05\x12\x04\xc4\x03\x02\x06\n\r\
7431    \n\x05\x04\0\x02\x02\x01\x12\x04\xc4\x03\x07\x1e\n\r\n\x05\x04\0\x02\x02\
7432    \x03\x12\x04\xc4\x03!\"\n\x97\x01\n\x02\x04\x01\x12\x06\xc9\x03\0\xb2\
7433    \x04\x01\x1a\x88\x01\x20A\x20possible\x20configuration\x20for\x20a\x20Cl\
7434    oud\x20Spanner\x20instance.\x20Configurations\n\x20define\x20the\x20geog\
7435    raphic\x20placement\x20of\x20nodes\x20and\x20their\x20replication.\n\n\
7436    \x0b\n\x03\x04\x01\x01\x12\x04\xc9\x03\x08\x16\n\r\n\x03\x04\x01\x07\x12\
7437    \x06\xca\x03\x02\xcd\x03\x04\n\x0f\n\x05\x04\x01\x07\x9d\x08\x12\x06\xca\
7438    \x03\x02\xcd\x03\x04\n1\n\x04\x04\x01\x04\0\x12\x06\xd0\x03\x02\xd9\x03\
7439    \x03\x1a!\x20The\x20type\x20of\x20this\x20configuration.\n\n\r\n\x05\x04\
7440    \x01\x04\0\x01\x12\x04\xd0\x03\x07\x0b\n\x1e\n\x06\x04\x01\x04\0\x02\0\
7441    \x12\x04\xd2\x03\x04\x19\x1a\x0e\x20Unspecified.\n\n\x0f\n\x07\x04\x01\
7442    \x04\0\x02\0\x01\x12\x04\xd2\x03\x04\x14\n\x0f\n\x07\x04\x01\x04\0\x02\0\
7443    \x02\x12\x04\xd2\x03\x17\x18\n/\n\x06\x04\x01\x04\0\x02\x01\x12\x04\xd5\
7444    \x03\x04\x17\x1a\x1f\x20Google\x20managed\x20configuration.\n\n\x0f\n\
7445    \x07\x04\x01\x04\0\x02\x01\x01\x12\x04\xd5\x03\x04\x12\n\x0f\n\x07\x04\
7446    \x01\x04\0\x02\x01\x02\x12\x04\xd5\x03\x15\x16\n-\n\x06\x04\x01\x04\0\
7447    \x02\x02\x12\x04\xd8\x03\x04\x15\x1a\x1d\x20User\x20managed\x20configura\
7448    tion.\n\n\x0f\n\x07\x04\x01\x04\0\x02\x02\x01\x12\x04\xd8\x03\x04\x10\n\
7449    \x0f\n\x07\x04\x01\x04\0\x02\x02\x02\x12\x04\xd8\x03\x13\x14\nE\n\x04\
7450    \x04\x01\x04\x01\x12\x06\xdc\x03\x02\xe6\x03\x03\x1a5\x20Indicates\x20th\
7451    e\x20current\x20state\x20of\x20the\x20instance\x20config.\n\n\r\n\x05\
7452    \x04\x01\x04\x01\x01\x12\x04\xdc\x03\x07\x0c\n\x20\n\x06\x04\x01\x04\x01\
7453    \x02\0\x12\x04\xde\x03\x04\x1a\x1a\x10\x20Not\x20specified.\n\n\x0f\n\
7454    \x07\x04\x01\x04\x01\x02\0\x01\x12\x04\xde\x03\x04\x15\n\x0f\n\x07\x04\
7455    \x01\x04\x01\x02\0\x02\x12\x04\xde\x03\x18\x19\n=\n\x06\x04\x01\x04\x01\
7456    \x02\x01\x12\x04\xe1\x03\x04\x11\x1a-\x20The\x20instance\x20config\x20is\
7457    \x20still\x20being\x20created.\n\n\x0f\n\x07\x04\x01\x04\x01\x02\x01\x01\
7458    \x12\x04\xe1\x03\x04\x0c\n\x0f\n\x07\x04\x01\x04\x01\x02\x01\x02\x12\x04\
7459    \xe1\x03\x0f\x10\na\n\x06\x04\x01\x04\x01\x02\x02\x12\x04\xe5\x03\x04\
7460    \x0e\x1aQ\x20The\x20instance\x20config\x20is\x20fully\x20created\x20and\
7461    \x20ready\x20to\x20be\x20used\x20to\x20create\n\x20instances.\n\n\x0f\n\
7462    \x07\x04\x01\x04\x01\x02\x02\x01\x12\x04\xe5\x03\x04\t\n\x0f\n\x07\x04\
7463    \x01\x04\x01\x02\x02\x02\x12\x04\xe5\x03\x0c\r\n\x94\x01\n\x04\x04\x01\
7464    \x02\0\x12\x04\xeb\x03\x02\x12\x1a\x85\x01\x20A\x20unique\x20identifier\
7465    \x20for\x20the\x20instance\x20configuration.\x20\x20Values\n\x20are\x20o\
7466    f\x20the\x20form\n\x20`projects/<project>/instanceConfigs/[a-z][-a-z0-9]\
7467    *`.\n\n\r\n\x05\x04\x01\x02\0\x05\x12\x04\xeb\x03\x02\x08\n\r\n\x05\x04\
7468    \x01\x02\0\x01\x12\x04\xeb\x03\t\r\n\r\n\x05\x04\x01\x02\0\x03\x12\x04\
7469    \xeb\x03\x10\x11\nM\n\x04\x04\x01\x02\x01\x12\x04\xee\x03\x02\x1a\x1a?\
7470    \x20The\x20name\x20of\x20this\x20instance\x20configuration\x20as\x20it\
7471    \x20appears\x20in\x20UIs.\n\n\r\n\x05\x04\x01\x02\x01\x05\x12\x04\xee\
7472    \x03\x02\x08\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xee\x03\t\x15\n\r\n\
7473    \x05\x04\x01\x02\x01\x03\x12\x04\xee\x03\x18\x19\ne\n\x04\x04\x01\x02\
7474    \x02\x12\x04\xf2\x03\x02C\x1aW\x20Output\x20only.\x20Whether\x20this\x20\
7475    instance\x20config\x20is\x20a\x20Google\x20or\x20User\x20Managed\n\x20Co\
7476    nfiguration.\n\n\r\n\x05\x04\x01\x02\x02\x06\x12\x04\xf2\x03\x02\x06\n\r\
7477    \n\x05\x04\x01\x02\x02\x01\x12\x04\xf2\x03\x07\x12\n\r\n\x05\x04\x01\x02\
7478    \x02\x03\x12\x04\xf2\x03\x15\x16\n\r\n\x05\x04\x01\x02\x02\x08\x12\x04\
7479    \xf2\x03\x17B\n\x10\n\x08\x04\x01\x02\x02\x08\x9c\x08\0\x12\x04\xf2\x03\
7480    \x18A\ns\n\x04\x04\x01\x02\x03\x12\x04\xf6\x03\x02$\x1ae\x20The\x20geogr\
7481    aphic\x20placement\x20of\x20nodes\x20in\x20this\x20instance\x20configura\
7482    tion\x20and\x20their\n\x20replication\x20properties.\n\n\r\n\x05\x04\x01\
7483    \x02\x03\x04\x12\x04\xf6\x03\x02\n\n\r\n\x05\x04\x01\x02\x03\x06\x12\x04\
7484    \xf6\x03\x0b\x16\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\xf6\x03\x17\x1f\n\
7485    \r\n\x05\x04\x01\x02\x03\x03\x12\x04\xf6\x03\"#\n\x9d\x01\n\x04\x04\x01\
7486    \x02\x04\x12\x06\xfa\x03\x02\xfb\x032\x1a\x8c\x01\x20Output\x20only.\x20\
7487    The\x20available\x20optional\x20replicas\x20to\x20choose\x20from\x20for\
7488    \x20user\n\x20managed\x20configurations.\x20Populated\x20for\x20Google\
7489    \x20managed\x20configurations.\n\n\r\n\x05\x04\x01\x02\x04\x04\x12\x04\
7490    \xfa\x03\x02\n\n\r\n\x05\x04\x01\x02\x04\x06\x12\x04\xfa\x03\x0b\x16\n\r\
7491    \n\x05\x04\x01\x02\x04\x01\x12\x04\xfa\x03\x17(\n\r\n\x05\x04\x01\x02\
7492    \x04\x03\x12\x04\xfa\x03+,\n\r\n\x05\x04\x01\x02\x04\x08\x12\x04\xfb\x03\
7493    \x061\n\x10\n\x08\x04\x01\x02\x04\x08\x9c\x08\0\x12\x04\xfb\x03\x070\n\
7494    \xa7\x02\n\x04\x04\x01\x02\x05\x12\x06\x81\x04\x02\x83\x04\x05\x1a\x96\
7495    \x02\x20Base\x20configuration\x20name,\x20e.g.\x20projects/<project_name\
7496    >/instanceConfigs/nam3,\n\x20based\x20on\x20which\x20this\x20configurati\
7497    on\x20is\x20created.\x20Only\x20set\x20for\x20user\x20managed\n\x20confi\
7498    gurations.\x20`base_config`\x20must\x20refer\x20to\x20a\x20configuration\
7499    \x20of\x20type\n\x20GOOGLE_MANAGED\x20in\x20the\x20same\x20project\x20as\
7500    \x20this\x20configuration.\n\n\r\n\x05\x04\x01\x02\x05\x05\x12\x04\x81\
7501    \x04\x02\x08\n\r\n\x05\x04\x01\x02\x05\x01\x12\x04\x81\x04\t\x14\n\r\n\
7502    \x05\x04\x01\x02\x05\x03\x12\x04\x81\x04\x17\x18\n\x0f\n\x05\x04\x01\x02\
7503    \x05\x08\x12\x06\x81\x04\x19\x83\x04\x04\n\x11\n\x07\x04\x01\x02\x05\x08\
7504    \x9f\x08\x12\x06\x81\x04\x1a\x83\x04\x03\n\xd5\t\n\x04\x04\x01\x02\x06\
7505    \x12\x04\x9a\x04\x02!\x1a\xc6\t\x20Cloud\x20Labels\x20are\x20a\x20flexib\
7506    le\x20and\x20lightweight\x20mechanism\x20for\x20organizing\x20cloud\n\
7507    \x20resources\x20into\x20groups\x20that\x20reflect\x20a\x20customer's\
7508    \x20organizational\x20needs\x20and\n\x20deployment\x20strategies.\x20Clo\
7509    ud\x20Labels\x20can\x20be\x20used\x20to\x20filter\x20collections\x20of\n\
7510    \x20resources.\x20They\x20can\x20be\x20used\x20to\x20control\x20how\x20r\
7511    esource\x20metrics\x20are\x20aggregated.\n\x20And\x20they\x20can\x20be\
7512    \x20used\x20as\x20arguments\x20to\x20policy\x20management\x20rules\x20(e\
7513    .g.\x20route,\n\x20firewall,\x20load\x20balancing,\x20etc.).\n\n\x20\x20\
7514    *\x20Label\x20keys\x20must\x20be\x20between\x201\x20and\x2063\x20charact\
7515    ers\x20long\x20and\x20must\x20conform\x20to\n\x20\x20\x20\x20the\x20foll\
7516    owing\x20regular\x20expression:\x20`[a-z][a-z0-9_-]{0,62}`.\n\x20\x20*\
7517    \x20Label\x20values\x20must\x20be\x20between\x200\x20and\x2063\x20charac\
7518    ters\x20long\x20and\x20must\x20conform\n\x20\x20\x20\x20to\x20the\x20reg\
7519    ular\x20expression\x20`[a-z0-9_-]{0,63}`.\n\x20\x20*\x20No\x20more\x20th\
7520    an\x2064\x20labels\x20can\x20be\x20associated\x20with\x20a\x20given\x20r\
7521    esource.\n\n\x20See\x20https://goo.gl/xmQnxf\x20for\x20more\x20informati\
7522    on\x20on\x20and\x20examples\x20of\x20labels.\n\n\x20If\x20you\x20plan\
7523    \x20to\x20use\x20labels\x20in\x20your\x20own\x20code,\x20please\x20note\
7524    \x20that\x20additional\n\x20characters\x20may\x20be\x20allowed\x20in\x20\
7525    the\x20future.\x20Therefore,\x20you\x20are\x20advised\x20to\x20use\n\x20\
7526    an\x20internal\x20label\x20representation,\x20such\x20as\x20JSON,\x20whi\
7527    ch\x20doesn't\x20rely\x20upon\n\x20specific\x20characters\x20being\x20di\
7528    sallowed.\x20\x20For\x20example,\x20representing\x20labels\n\x20as\x20th\
7529    e\x20string:\x20\x20name\x20+\x20\"_\"\x20+\x20value\x20\x20would\x20pro\
7530    ve\x20problematic\x20if\x20we\x20were\x20to\n\x20allow\x20\"_\"\x20in\
7531    \x20a\x20future\x20release.\n\n\r\n\x05\x04\x01\x02\x06\x06\x12\x04\x9a\
7532    \x04\x02\x15\n\r\n\x05\x04\x01\x02\x06\x01\x12\x04\x9a\x04\x16\x1c\n\r\n\
7533    \x05\x04\x01\x02\x06\x03\x12\x04\x9a\x04\x1f\x20\n\xb1\x05\n\x04\x04\x01\
7534    \x02\x07\x12\x04\xa6\x04\x02\x12\x1a\xa2\x05\x20etag\x20is\x20used\x20fo\
7535    r\x20optimistic\x20concurrency\x20control\x20as\x20a\x20way\n\x20to\x20h\
7536    elp\x20prevent\x20simultaneous\x20updates\x20of\x20a\x20instance\x20conf\
7537    ig\x20from\x20overwriting\n\x20each\x20other.\x20It\x20is\x20strongly\
7538    \x20suggested\x20that\x20systems\x20make\x20use\x20of\x20the\x20etag\x20\
7539    in\n\x20the\x20read-modify-write\x20cycle\x20to\x20perform\x20instance\
7540    \x20config\x20updates\x20in\x20order\x20to\n\x20avoid\x20race\x20conditi\
7541    ons:\x20An\x20etag\x20is\x20returned\x20in\x20the\x20response\x20which\
7542    \x20contains\n\x20instance\x20configs,\x20and\x20systems\x20are\x20expec\
7543    ted\x20to\x20put\x20that\x20etag\x20in\x20the\x20request\n\x20to\x20upda\
7544    te\x20instance\x20config\x20to\x20ensure\x20that\x20their\x20change\x20w\
7545    ill\x20be\x20applied\x20to\n\x20the\x20same\x20version\x20of\x20the\x20i\
7546    nstance\x20config.\n\x20If\x20no\x20etag\x20is\x20provided\x20in\x20the\
7547    \x20call\x20to\x20update\x20instance\x20config,\x20then\x20the\n\x20exis\
7548    ting\x20instance\x20config\x20is\x20overwritten\x20blindly.\n\n\r\n\x05\
7549    \x04\x01\x02\x07\x05\x12\x04\xa6\x04\x02\x08\n\r\n\x05\x04\x01\x02\x07\
7550    \x01\x12\x04\xa6\x04\t\r\n\r\n\x05\x04\x01\x02\x07\x03\x12\x04\xa6\x04\
7551    \x10\x11\n\x86\x01\n\x04\x04\x01\x02\x08\x12\x04\xaa\x04\x02%\x1ax\x20Al\
7552    lowed\x20values\x20of\x20the\x20\"default_leader\"\x20schema\x20option\
7553    \x20for\x20databases\x20in\n\x20instances\x20that\x20use\x20this\x20inst\
7554    ance\x20configuration.\n\n\r\n\x05\x04\x01\x02\x08\x04\x12\x04\xaa\x04\
7555    \x02\n\n\r\n\x05\x04\x01\x02\x08\x05\x12\x04\xaa\x04\x0b\x11\n\r\n\x05\
7556    \x04\x01\x02\x08\x01\x12\x04\xaa\x04\x12\x20\n\r\n\x05\x04\x01\x02\x08\
7557    \x03\x12\x04\xaa\x04#$\n\x9b\x01\n\x04\x04\x01\x02\t\x12\x04\xae\x04\x02\
7558    D\x1a\x8c\x01\x20Output\x20only.\x20If\x20true,\x20the\x20instance\x20co\
7559    nfig\x20is\x20being\x20created\x20or\x20updated.\x20If\n\x20false,\x20th\
7560    ere\x20are\x20no\x20ongoing\x20operations\x20for\x20the\x20instance\x20c\
7561    onfig.\n\n\r\n\x05\x04\x01\x02\t\x05\x12\x04\xae\x04\x02\x06\n\r\n\x05\
7562    \x04\x01\x02\t\x01\x12\x04\xae\x04\x07\x12\n\r\n\x05\x04\x01\x02\t\x03\
7563    \x12\x04\xae\x04\x15\x17\n\r\n\x05\x04\x01\x02\t\x08\x12\x04\xae\x04\x18\
7564    C\n\x10\n\x08\x04\x01\x02\t\x08\x9c\x08\0\x12\x04\xae\x04\x19B\n?\n\x04\
7565    \x04\x01\x02\n\x12\x04\xb1\x04\x02?\x1a1\x20Output\x20only.\x20The\x20cu\
7566    rrent\x20instance\x20config\x20state.\n\n\r\n\x05\x04\x01\x02\n\x06\x12\
7567    \x04\xb1\x04\x02\x07\n\r\n\x05\x04\x01\x02\n\x01\x12\x04\xb1\x04\x08\r\n\
7568    \r\n\x05\x04\x01\x02\n\x03\x12\x04\xb1\x04\x10\x12\n\r\n\x05\x04\x01\x02\
7569    \n\x08\x12\x04\xb1\x04\x13>\n\x10\n\x08\x04\x01\x02\n\x08\x9c\x08\0\x12\
7570    \x04\xb1\x04\x14=\n3\n\x02\x04\x02\x12\x06\xb5\x04\0\xee\x04\x01\x1a%\
7571    \x20Autoscaling\x20config\x20for\x20an\x20instance.\n\n\x0b\n\x03\x04\
7572    \x02\x01\x12\x04\xb5\x04\x08\x19\n\xd6\x02\n\x04\x04\x02\x03\0\x12\x06\
7573    \xbb\x04\x02\xd4\x04\x03\x1a\xc5\x02\x20The\x20autoscaling\x20limits\x20\
7574    for\x20the\x20instance.\x20Users\x20can\x20define\x20the\x20minimum\x20a\
7575    nd\n\x20maximum\x20compute\x20capacity\x20allocated\x20to\x20the\x20inst\
7576    ance,\x20and\x20the\x20autoscaler\x20will\n\x20only\x20scale\x20within\
7577    \x20that\x20range.\x20Users\x20can\x20either\x20use\x20nodes\x20or\x20pr\
7578    ocessing\n\x20units\x20to\x20specify\x20the\x20limits,\x20but\x20should\
7579    \x20use\x20the\x20same\x20unit\x20to\x20set\x20both\x20the\n\x20min_limi\
7580    t\x20and\x20max_limit.\n\n\r\n\x05\x04\x02\x03\0\x01\x12\x04\xbb\x04\n\
7581    \x1b\nB\n\x06\x04\x02\x03\0\x08\0\x12\x06\xbd\x04\x04\xc5\x04\x05\x1a0\
7582    \x20The\x20minimum\x20compute\x20capacity\x20for\x20the\x20instance.\n\n\
7583    \x0f\n\x07\x04\x02\x03\0\x08\0\x01\x12\x04\xbd\x04\n\x13\n\x7f\n\x06\x04\
7584    \x02\x03\0\x02\0\x12\x04\xc0\x04\x06\x1a\x1ao\x20Minimum\x20number\x20of\
7585    \x20nodes\x20allocated\x20to\x20the\x20instance.\x20If\x20set,\x20this\
7586    \x20number\n\x20should\x20be\x20greater\x20than\x20or\x20equal\x20to\x20\
7587    1.\n\n\x0f\n\x07\x04\x02\x03\0\x02\0\x05\x12\x04\xc0\x04\x06\x0b\n\x0f\n\
7588    \x07\x04\x02\x03\0\x02\0\x01\x12\x04\xc0\x04\x0c\x15\n\x0f\n\x07\x04\x02\
7589    \x03\0\x02\0\x03\x12\x04\xc0\x04\x18\x19\n\x81\x01\n\x06\x04\x02\x03\0\
7590    \x02\x01\x12\x04\xc4\x04\x06%\x1aq\x20Minimum\x20number\x20of\x20process\
7591    ing\x20units\x20allocated\x20to\x20the\x20instance.\x20If\x20set,\n\x20t\
7592    his\x20number\x20should\x20be\x20multiples\x20of\x201000.\n\n\x0f\n\x07\
7593    \x04\x02\x03\0\x02\x01\x05\x12\x04\xc4\x04\x06\x0b\n\x0f\n\x07\x04\x02\
7594    \x03\0\x02\x01\x01\x12\x04\xc4\x04\x0c\x20\n\x0f\n\x07\x04\x02\x03\0\x02\
7595    \x01\x03\x12\x04\xc4\x04#$\n\xa4\x01\n\x06\x04\x02\x03\0\x08\x01\x12\x06\
7596    \xca\x04\x04\xd3\x04\x05\x1a\x91\x01\x20The\x20maximum\x20compute\x20cap\
7597    acity\x20for\x20the\x20instance.\x20The\x20maximum\x20compute\n\x20capac\
7598    ity\x20should\x20be\x20less\x20than\x20or\x20equal\x20to\x2010X\x20the\
7599    \x20minimum\x20compute\n\x20capacity.\n\n\x0f\n\x07\x04\x02\x03\0\x08\
7600    \x01\x01\x12\x04\xca\x04\n\x13\n\x87\x01\n\x06\x04\x02\x03\0\x02\x02\x12\
7601    \x04\xcd\x04\x06\x1a\x1aw\x20Maximum\x20number\x20of\x20nodes\x20allocat\
7602    ed\x20to\x20the\x20instance.\x20If\x20set,\x20this\x20number\n\x20should\
7603    \x20be\x20greater\x20than\x20or\x20equal\x20to\x20min_nodes.\n\n\x0f\n\
7604    \x07\x04\x02\x03\0\x02\x02\x05\x12\x04\xcd\x04\x06\x0b\n\x0f\n\x07\x04\
7605    \x02\x03\0\x02\x02\x01\x12\x04\xcd\x04\x0c\x15\n\x0f\n\x07\x04\x02\x03\0\
7606    \x02\x02\x03\x12\x04\xcd\x04\x18\x19\n\xb8\x01\n\x06\x04\x02\x03\0\x02\
7607    \x03\x12\x04\xd2\x04\x06%\x1a\xa7\x01\x20Maximum\x20number\x20of\x20proc\
7608    essing\x20units\x20allocated\x20to\x20the\x20instance.\x20If\x20set,\n\
7609    \x20this\x20number\x20should\x20be\x20multiples\x20of\x201000\x20and\x20\
7610    be\x20greater\x20than\x20or\x20equal\x20to\n\x20min_processing_units.\n\
7611    \n\x0f\n\x07\x04\x02\x03\0\x02\x03\x05\x12\x04\xd2\x04\x06\x0b\n\x0f\n\
7612    \x07\x04\x02\x03\0\x02\x03\x01\x12\x04\xd2\x04\x0c\x20\n\x0f\n\x07\x04\
7613    \x02\x03\0\x02\x03\x03\x12\x04\xd2\x04#$\n:\n\x04\x04\x02\x03\x01\x12\
7614    \x06\xd7\x04\x02\xe5\x04\x03\x1a*\x20The\x20autoscaling\x20targets\x20fo\
7615    r\x20an\x20instance.\n\n\r\n\x05\x04\x02\x03\x01\x01\x12\x04\xd7\x04\n\
7616    \x1c\n\x8b\x02\n\x06\x04\x02\x03\x01\x02\0\x12\x06\xdc\x04\x04\xdd\x041\
7617    \x1a\xf8\x01\x20Required.\x20The\x20target\x20high\x20priority\x20cpu\
7618    \x20utilization\x20percentage\x20that\x20the\n\x20autoscaler\x20should\
7619    \x20be\x20trying\x20to\x20achieve\x20for\x20the\x20instance.\x20This\x20\
7620    number\x20is\n\x20on\x20a\x20scale\x20from\x200\x20(no\x20utilization)\
7621    \x20to\x20100\x20(full\x20utilization).\x20The\x20valid\n\x20range\x20is\
7622    \x20[10,\x2090]\x20inclusive.\n\n\x0f\n\x07\x04\x02\x03\x01\x02\0\x05\
7623    \x12\x04\xdc\x04\x04\t\n\x0f\n\x07\x04\x02\x03\x01\x02\0\x01\x12\x04\xdc\
7624    \x04\n/\n\x0f\n\x07\x04\x02\x03\x01\x02\0\x03\x12\x04\xdc\x0423\n\x0f\n\
7625    \x07\x04\x02\x03\x01\x02\0\x08\x12\x04\xdd\x04\x080\n\x12\n\n\x04\x02\
7626    \x03\x01\x02\0\x08\x9c\x08\0\x12\x04\xdd\x04\t/\n\x82\x02\n\x06\x04\x02\
7627    \x03\x01\x02\x01\x12\x06\xe3\x04\x04\xe4\x041\x1a\xef\x01\x20Required.\
7628    \x20The\x20target\x20storage\x20utilization\x20percentage\x20that\x20the\
7629    \x20autoscaler\n\x20should\x20be\x20trying\x20to\x20achieve\x20for\x20th\
7630    e\x20instance.\x20This\x20number\x20is\x20on\x20a\x20scale\n\x20from\x20\
7631    0\x20(no\x20utilization)\x20to\x20100\x20(full\x20utilization).\x20The\
7632    \x20valid\x20range\x20is\n\x20[10,\x20100]\x20inclusive.\n\n\x0f\n\x07\
7633    \x04\x02\x03\x01\x02\x01\x05\x12\x04\xe3\x04\x04\t\n\x0f\n\x07\x04\x02\
7634    \x03\x01\x02\x01\x01\x12\x04\xe3\x04\n%\n\x0f\n\x07\x04\x02\x03\x01\x02\
7635    \x01\x03\x12\x04\xe3\x04()\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x08\x12\
7636    \x04\xe4\x04\x080\n\x12\n\n\x04\x02\x03\x01\x02\x01\x08\x9c\x08\0\x12\
7637    \x04\xe4\x04\t/\n?\n\x04\x04\x02\x02\0\x12\x06\xe8\x04\x02\xe9\x04/\x1a/\
7638    \x20Required.\x20Autoscaling\x20limits\x20for\x20an\x20instance.\n\n\r\n\
7639    \x05\x04\x02\x02\0\x06\x12\x04\xe8\x04\x02\x13\n\r\n\x05\x04\x02\x02\0\
7640    \x01\x12\x04\xe8\x04\x14&\n\r\n\x05\x04\x02\x02\0\x03\x12\x04\xe8\x04)*\
7641    \n\r\n\x05\x04\x02\x02\0\x08\x12\x04\xe9\x04\x06.\n\x10\n\x08\x04\x02\
7642    \x02\0\x08\x9c\x08\0\x12\x04\xe9\x04\x07-\nD\n\x04\x04\x02\x02\x01\x12\
7643    \x06\xec\x04\x02\xed\x04/\x1a4\x20Required.\x20The\x20autoscaling\x20tar\
7644    gets\x20for\x20an\x20instance.\n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\
7645    \xec\x04\x02\x14\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xec\x04\x15(\n\r\
7646    \n\x05\x04\x02\x02\x01\x03\x12\x04\xec\x04+,\n\r\n\x05\x04\x02\x02\x01\
7647    \x08\x12\x04\xed\x04\x06.\n\x10\n\x08\x04\x02\x02\x01\x08\x9c\x08\0\x12\
7648    \x04\xed\x04\x07-\n\\\n\x02\x04\x03\x12\x06\xf1\x04\0\xe6\x05\x01\x1aN\
7649    \x20An\x20isolated\x20set\x20of\x20Cloud\x20Spanner\x20resources\x20on\
7650    \x20which\x20databases\x20can\x20be\x20hosted.\n\n\x0b\n\x03\x04\x03\x01\
7651    \x12\x04\xf1\x04\x08\x10\n\r\n\x03\x04\x03\x07\x12\x06\xf2\x04\x02\xf5\
7652    \x04\x04\n\x0f\n\x05\x04\x03\x07\x9d\x08\x12\x06\xf2\x04\x02\xf5\x04\x04\
7653    \n>\n\x04\x04\x03\x04\0\x12\x06\xf8\x04\x02\x84\x05\x03\x1a.\x20Indicate\
7654    s\x20the\x20current\x20state\x20of\x20the\x20instance.\n\n\r\n\x05\x04\
7655    \x03\x04\0\x01\x12\x04\xf8\x04\x07\x0c\n\x20\n\x06\x04\x03\x04\0\x02\0\
7656    \x12\x04\xfa\x04\x04\x1a\x1a\x10\x20Not\x20specified.\n\n\x0f\n\x07\x04\
7657    \x03\x04\0\x02\0\x01\x12\x04\xfa\x04\x04\x15\n\x0f\n\x07\x04\x03\x04\0\
7658    \x02\0\x02\x12\x04\xfa\x04\x18\x19\n\x94\x01\n\x06\x04\x03\x04\0\x02\x01\
7659    \x12\x04\xff\x04\x04\x11\x1a\x83\x01\x20The\x20instance\x20is\x20still\
7660    \x20being\x20created.\x20Resources\x20may\x20not\x20be\n\x20available\
7661    \x20yet,\x20and\x20operations\x20such\x20as\x20database\x20creation\x20m\
7662    ay\x20not\n\x20work.\n\n\x0f\n\x07\x04\x03\x04\0\x02\x01\x01\x12\x04\xff\
7663    \x04\x04\x0c\n\x0f\n\x07\x04\x03\x04\0\x02\x01\x02\x12\x04\xff\x04\x0f\
7664    \x10\na\n\x06\x04\x03\x04\0\x02\x02\x12\x04\x83\x05\x04\x0e\x1aQ\x20The\
7665    \x20instance\x20is\x20fully\x20created\x20and\x20ready\x20to\x20do\x20wo\
7666    rk\x20such\x20as\n\x20creating\x20databases.\n\n\x0f\n\x07\x04\x03\x04\0\
7667    \x02\x02\x01\x12\x04\x83\x05\x04\t\n\x0f\n\x07\x04\x03\x04\0\x02\x02\x02\
7668    \x12\x04\x83\x05\x0c\r\n\x96\x02\n\x04\x04\x03\x02\0\x12\x04\x8a\x05\x02\
7669    ;\x1a\x87\x02\x20Required.\x20A\x20unique\x20identifier\x20for\x20the\
7670    \x20instance,\x20which\x20cannot\x20be\x20changed\n\x20after\x20the\x20i\
7671    nstance\x20is\x20created.\x20Values\x20are\x20of\x20the\x20form\n\x20`pr\
7672    ojects/<project>/instances/[a-z][-a-z0-9]*[a-z0-9]`.\x20The\x20final\n\
7673    \x20segment\x20of\x20the\x20name\x20must\x20be\x20between\x202\x20and\
7674    \x2064\x20characters\x20in\x20length.\n\n\r\n\x05\x04\x03\x02\0\x05\x12\
7675    \x04\x8a\x05\x02\x08\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\x8a\x05\t\r\n\r\
7676    \n\x05\x04\x03\x02\0\x03\x12\x04\x8a\x05\x10\x11\n\r\n\x05\x04\x03\x02\0\
7677    \x08\x12\x04\x8a\x05\x12:\n\x10\n\x08\x04\x03\x02\0\x08\x9c\x08\0\x12\
7678    \x04\x8a\x05\x139\n\xc0\x02\n\x04\x04\x03\x02\x01\x12\x06\x90\x05\x02\
7679    \x95\x05\x04\x1a\xaf\x02\x20Required.\x20The\x20name\x20of\x20the\x20ins\
7680    tance's\x20configuration.\x20Values\x20are\x20of\x20the\x20form\n\x20`pr\
7681    ojects/<project>/instanceConfigs/<configuration>`.\x20See\n\x20also\x20[\
7682    InstanceConfig][google.spanner.admin.instance.v1.InstanceConfig]\x20and\
7683    \n\x20[ListInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdm\
7684    in.ListInstanceConfigs].\n\n\r\n\x05\x04\x03\x02\x01\x05\x12\x04\x90\x05\
7685    \x02\x08\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\x90\x05\t\x0f\n\r\n\x05\
7686    \x04\x03\x02\x01\x03\x12\x04\x90\x05\x12\x13\n\x0f\n\x05\x04\x03\x02\x01\
7687    \x08\x12\x06\x90\x05\x14\x95\x05\x03\n\x10\n\x08\x04\x03\x02\x01\x08\x9c\
7688    \x08\0\x12\x04\x91\x05\x04*\n\x11\n\x07\x04\x03\x02\x01\x08\x9f\x08\x12\
7689    \x06\x92\x05\x04\x94\x05\x05\n\x9e\x01\n\x04\x04\x03\x02\x02\x12\x04\x99\
7690    \x05\x02C\x1a\x8f\x01\x20Required.\x20The\x20descriptive\x20name\x20for\
7691    \x20this\x20instance\x20as\x20it\x20appears\x20in\x20UIs.\n\x20Must\x20b\
7692    e\x20unique\x20per\x20project\x20and\x20between\x204\x20and\x2030\x20cha\
7693    racters\x20in\x20length.\n\n\r\n\x05\x04\x03\x02\x02\x05\x12\x04\x99\x05\
7694    \x02\x08\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\x99\x05\t\x15\n\r\n\x05\
7695    \x04\x03\x02\x02\x03\x12\x04\x99\x05\x18\x19\n\r\n\x05\x04\x03\x02\x02\
7696    \x08\x12\x04\x99\x05\x1aB\n\x10\n\x08\x04\x03\x02\x02\x08\x9c\x08\0\x12\
7697    \x04\x99\x05\x1bA\n\xe0\x03\n\x04\x04\x03\x02\x03\x12\x04\xa7\x05\x02\
7698    \x17\x1a\xd1\x03\x20The\x20number\x20of\x20nodes\x20allocated\x20to\x20t\
7699    his\x20instance.\x20At\x20most\x20one\x20of\x20either\n\x20node_count\
7700    \x20or\x20processing_units\x20should\x20be\x20present\x20in\x20the\x20me\
7701    ssage.\n\n\x20Users\x20can\x20set\x20the\x20node_count\x20field\x20to\
7702    \x20specify\x20the\x20target\x20number\x20of\x20nodes\n\x20allocated\x20\
7703    to\x20the\x20instance.\n\n\x20This\x20may\x20be\x20zero\x20in\x20API\x20\
7704    responses\x20for\x20instances\x20that\x20are\x20not\x20yet\x20in\x20stat\
7705    e\n\x20`READY`.\n\n\x20See\x20[the\n\x20documentation](https://cloud.goo\
7706    gle.com/spanner/docs/compute-capacity)\n\x20for\x20more\x20information\
7707    \x20about\x20nodes\x20and\x20processing\x20units.\n\n\r\n\x05\x04\x03\
7708    \x02\x03\x05\x12\x04\xa7\x05\x02\x07\n\r\n\x05\x04\x03\x02\x03\x01\x12\
7709    \x04\xa7\x05\x08\x12\n\r\n\x05\x04\x03\x02\x03\x03\x12\x04\xa7\x05\x15\
7710    \x16\n\xf5\x03\n\x04\x04\x03\x02\x04\x12\x04\xb5\x05\x02\x1d\x1a\xe6\x03\
7711    \x20The\x20number\x20of\x20processing\x20units\x20allocated\x20to\x20thi\
7712    s\x20instance.\x20At\x20most\x20one\x20of\n\x20processing_units\x20or\
7713    \x20node_count\x20should\x20be\x20present\x20in\x20the\x20message.\n\n\
7714    \x20Users\x20can\x20set\x20the\x20processing_units\x20field\x20to\x20spe\
7715    cify\x20the\x20target\x20number\x20of\n\x20processing\x20units\x20alloca\
7716    ted\x20to\x20the\x20instance.\n\n\x20This\x20may\x20be\x20zero\x20in\x20\
7717    API\x20responses\x20for\x20instances\x20that\x20are\x20not\x20yet\x20in\
7718    \x20state\n\x20`READY`.\n\n\x20See\x20[the\n\x20documentation](https://c\
7719    loud.google.com/spanner/docs/compute-capacity)\n\x20for\x20more\x20infor\
7720    mation\x20about\x20nodes\x20and\x20processing\x20units.\n\n\r\n\x05\x04\
7721    \x03\x02\x04\x05\x12\x04\xb5\x05\x02\x07\n\r\n\x05\x04\x03\x02\x04\x01\
7722    \x12\x04\xb5\x05\x08\x18\n\r\n\x05\x04\x03\x02\x04\x03\x12\x04\xb5\x05\
7723    \x1b\x1c\n\x8e\x02\n\x04\x04\x03\x02\x05\x12\x06\xbb\x05\x02\xbc\x05/\
7724    \x1a\xfd\x01\x20Optional.\x20The\x20autoscaling\x20configuration.\x20Aut\
7725    oscaling\x20is\x20enabled\x20if\x20this\n\x20field\x20is\x20set.\x20When\
7726    \x20autoscaling\x20is\x20enabled,\x20node_count\x20and\x20processing_uni\
7727    ts\n\x20are\x20treated\x20as\x20OUTPUT_ONLY\x20fields\x20and\x20reflect\
7728    \x20the\x20current\x20compute\x20capacity\n\x20allocated\x20to\x20the\
7729    \x20instance.\n\n\r\n\x05\x04\x03\x02\x05\x06\x12\x04\xbb\x05\x02\x13\n\
7730    \r\n\x05\x04\x03\x02\x05\x01\x12\x04\xbb\x05\x14&\n\r\n\x05\x04\x03\x02\
7731    \x05\x03\x12\x04\xbb\x05)+\n\r\n\x05\x04\x03\x02\x05\x08\x12\x04\xbc\x05\
7732    \x06.\n\x10\n\x08\x04\x03\x02\x05\x08\x9c\x08\0\x12\x04\xbc\x05\x07-\n\
7733    \xd2\x02\n\x04\x04\x03\x02\x06\x12\x04\xc3\x05\x02>\x1a\xc3\x02\x20Outpu\
7734    t\x20only.\x20The\x20current\x20instance\x20state.\x20For\n\x20[CreateIn\
7735    stance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance],\
7736    \n\x20the\x20state\x20must\x20be\x20either\x20omitted\x20or\x20set\x20to\
7737    \x20`CREATING`.\x20For\n\x20[UpdateInstance][google.spanner.admin.instan\
7738    ce.v1.InstanceAdmin.UpdateInstance],\n\x20the\x20state\x20must\x20be\x20\
7739    either\x20omitted\x20or\x20set\x20to\x20`READY`.\n\n\r\n\x05\x04\x03\x02\
7740    \x06\x06\x12\x04\xc3\x05\x02\x07\n\r\n\x05\x04\x03\x02\x06\x01\x12\x04\
7741    \xc3\x05\x08\r\n\r\n\x05\x04\x03\x02\x06\x03\x12\x04\xc3\x05\x10\x11\n\r\
7742    \n\x05\x04\x03\x02\x06\x08\x12\x04\xc3\x05\x12=\n\x10\n\x08\x04\x03\x02\
7743    \x06\x08\x9c\x08\0\x12\x04\xc3\x05\x13<\n\xd1\t\n\x04\x04\x03\x02\x07\
7744    \x12\x04\xda\x05\x02!\x1a\xc2\t\x20Cloud\x20Labels\x20are\x20a\x20flexib\
7745    le\x20and\x20lightweight\x20mechanism\x20for\x20organizing\x20cloud\n\
7746    \x20resources\x20into\x20groups\x20that\x20reflect\x20a\x20customer's\
7747    \x20organizational\x20needs\x20and\n\x20deployment\x20strategies.\x20Clo\
7748    ud\x20Labels\x20can\x20be\x20used\x20to\x20filter\x20collections\x20of\n\
7749    \x20resources.\x20They\x20can\x20be\x20used\x20to\x20control\x20how\x20r\
7750    esource\x20metrics\x20are\x20aggregated.\n\x20And\x20they\x20can\x20be\
7751    \x20used\x20as\x20arguments\x20to\x20policy\x20management\x20rules\x20(e\
7752    .g.\x20route,\n\x20firewall,\x20load\x20balancing,\x20etc.).\n\n\x20\x20\
7753    *\x20Label\x20keys\x20must\x20be\x20between\x201\x20and\x2063\x20charact\
7754    ers\x20long\x20and\x20must\x20conform\x20to\n\x20\x20\x20\x20the\x20foll\
7755    owing\x20regular\x20expression:\x20`[a-z][a-z0-9_-]{0,62}`.\n\x20\x20*\
7756    \x20Label\x20values\x20must\x20be\x20between\x200\x20and\x2063\x20charac\
7757    ters\x20long\x20and\x20must\x20conform\n\x20\x20\x20\x20to\x20the\x20reg\
7758    ular\x20expression\x20`[a-z0-9_-]{0,63}`.\n\x20\x20*\x20No\x20more\x20th\
7759    an\x2064\x20labels\x20can\x20be\x20associated\x20with\x20a\x20given\x20r\
7760    esource.\n\n\x20See\x20https://goo.gl/xmQnxf\x20for\x20more\x20informati\
7761    on\x20on\x20and\x20examples\x20of\x20labels.\n\n\x20If\x20you\x20plan\
7762    \x20to\x20use\x20labels\x20in\x20your\x20own\x20code,\x20please\x20note\
7763    \x20that\x20additional\n\x20characters\x20may\x20be\x20allowed\x20in\x20\
7764    the\x20future.\x20And\x20so\x20you\x20are\x20advised\x20to\x20use\x20an\
7765    \n\x20internal\x20label\x20representation,\x20such\x20as\x20JSON,\x20whi\
7766    ch\x20doesn't\x20rely\x20upon\n\x20specific\x20characters\x20being\x20di\
7767    sallowed.\x20\x20For\x20example,\x20representing\x20labels\n\x20as\x20th\
7768    e\x20string:\x20\x20name\x20+\x20\"_\"\x20+\x20value\x20\x20would\x20pro\
7769    ve\x20problematic\x20if\x20we\x20were\x20to\n\x20allow\x20\"_\"\x20in\
7770    \x20a\x20future\x20release.\n\n\r\n\x05\x04\x03\x02\x07\x06\x12\x04\xda\
7771    \x05\x02\x15\n\r\n\x05\x04\x03\x02\x07\x01\x12\x04\xda\x05\x16\x1c\n\r\n\
7772    \x05\x04\x03\x02\x07\x03\x12\x04\xda\x05\x1f\x20\n8\n\x04\x04\x03\x02\
7773    \x08\x12\x04\xdd\x05\x02$\x1a*\x20Deprecated.\x20This\x20field\x20is\x20\
7774    not\x20populated.\n\n\r\n\x05\x04\x03\x02\x08\x04\x12\x04\xdd\x05\x02\n\
7775    \n\r\n\x05\x04\x03\x02\x08\x05\x12\x04\xdd\x05\x0b\x11\n\r\n\x05\x04\x03\
7776    \x02\x08\x01\x12\x04\xdd\x05\x12\x1f\n\r\n\x05\x04\x03\x02\x08\x03\x12\
7777    \x04\xdd\x05\"#\nJ\n\x04\x04\x03\x02\t\x12\x06\xe0\x05\x02\xe1\x052\x1a:\
7778    \x20Output\x20only.\x20The\x20time\x20at\x20which\x20the\x20instance\x20\
7779    was\x20created.\n\n\r\n\x05\x04\x03\x02\t\x06\x12\x04\xe0\x05\x02\x1b\n\
7780    \r\n\x05\x04\x03\x02\t\x01\x12\x04\xe0\x05\x1c'\n\r\n\x05\x04\x03\x02\t\
7781    \x03\x12\x04\xe0\x05*,\n\r\n\x05\x04\x03\x02\t\x08\x12\x04\xe1\x05\x061\
7782    \n\x10\n\x08\x04\x03\x02\t\x08\x9c\x08\0\x12\x04\xe1\x05\x070\nX\n\x04\
7783    \x04\x03\x02\n\x12\x06\xe4\x05\x02\xe5\x052\x1aH\x20Output\x20only.\x20T\
7784    he\x20time\x20at\x20which\x20the\x20instance\x20was\x20most\x20recently\
7785    \x20updated.\n\n\r\n\x05\x04\x03\x02\n\x06\x12\x04\xe4\x05\x02\x1b\n\r\n\
7786    \x05\x04\x03\x02\n\x01\x12\x04\xe4\x05\x1c'\n\r\n\x05\x04\x03\x02\n\x03\
7787    \x12\x04\xe4\x05*,\n\r\n\x05\x04\x03\x02\n\x08\x12\x04\xe5\x05\x061\n\
7788    \x10\n\x08\x04\x03\x02\n\x08\x9c\x08\0\x12\x04\xe5\x05\x070\n{\n\x02\x04\
7789    \x04\x12\x06\xea\x05\0\xfe\x05\x01\x1am\x20The\x20request\x20for\n\x20[L\
7790    istInstanceConfigs][google.spanner.admin.instance.v1.InstanceAdmin.ListI\
7791    nstanceConfigs].\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xea\x05\x08\"\n\xa7\
7792    \x01\n\x04\x04\x04\x02\0\x12\x06\xee\x05\x02\xf3\x05\x04\x1a\x96\x01\x20\
7793    Required.\x20The\x20name\x20of\x20the\x20project\x20for\x20which\x20a\
7794    \x20list\x20of\x20supported\x20instance\n\x20configurations\x20is\x20req\
7795    uested.\x20Values\x20are\x20of\x20the\x20form\n\x20`projects/<project>`.\
7796    \n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xee\x05\x02\x08\n\r\n\x05\x04\x04\
7797    \x02\0\x01\x12\x04\xee\x05\t\x0f\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\xee\
7798    \x05\x12\x13\n\x0f\n\x05\x04\x04\x02\0\x08\x12\x06\xee\x05\x14\xf3\x05\
7799    \x03\n\x10\n\x08\x04\x04\x02\0\x08\x9c\x08\0\x12\x04\xef\x05\x04*\n\x11\
7800    \n\x07\x04\x04\x02\0\x08\x9f\x08\x12\x06\xf0\x05\x04\xf2\x05\x05\n\x95\
7801    \x01\n\x04\x04\x04\x02\x01\x12\x04\xf7\x05\x02\x16\x1a\x86\x01\x20Number\
7802    \x20of\x20instance\x20configurations\x20to\x20be\x20returned\x20in\x20th\
7803    e\x20response.\x20If\x200\x20or\n\x20less,\x20defaults\x20to\x20the\x20s\
7804    erver's\x20maximum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\x04\x02\
7805    \x01\x05\x12\x04\xf7\x05\x02\x07\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\
7806    \xf7\x05\x08\x11\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xf7\x05\x14\x15\n\
7807    \x8c\x02\n\x04\x04\x04\x02\x02\x12\x04\xfd\x05\x02\x18\x1a\xfd\x01\x20If\
7808    \x20non-empty,\x20`page_token`\x20should\x20contain\x20a\n\x20[next_page\
7809    _token][google.spanner.admin.instance.v1.ListInstanceConfigsResponse.nex\
7810    t_page_token]\n\x20from\x20a\x20previous\n\x20[ListInstanceConfigsRespon\
7811    se][google.spanner.admin.instance.v1.ListInstanceConfigsResponse].\n\n\r\
7812    \n\x05\x04\x04\x02\x02\x05\x12\x04\xfd\x05\x02\x08\n\r\n\x05\x04\x04\x02\
7813    \x02\x01\x12\x04\xfd\x05\t\x13\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xfd\
7814    \x05\x16\x17\n|\n\x02\x04\x05\x12\x06\x82\x06\0\x8a\x06\x01\x1an\x20The\
7815    \x20response\x20for\n\x20[ListInstanceConfigs][google.spanner.admin.inst\
7816    ance.v1.InstanceAdmin.ListInstanceConfigs].\n\n\x0b\n\x03\x04\x05\x01\
7817    \x12\x04\x82\x06\x08#\n>\n\x04\x04\x05\x02\0\x12\x04\x84\x06\x02/\x1a0\
7818    \x20The\x20list\x20of\x20requested\x20instance\x20configurations.\n\n\r\
7819    \n\x05\x04\x05\x02\0\x04\x12\x04\x84\x06\x02\n\n\r\n\x05\x04\x05\x02\0\
7820    \x06\x12\x04\x84\x06\x0b\x19\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\x84\x06\
7821    \x1a*\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\x84\x06-.\n\xd6\x01\n\x04\x04\
7822    \x05\x02\x01\x12\x04\x89\x06\x02\x1d\x1a\xc7\x01\x20`next_page_token`\
7823    \x20can\x20be\x20sent\x20in\x20a\x20subsequent\n\x20[ListInstanceConfigs\
7824    ][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigs]\n\
7825    \x20call\x20to\x20fetch\x20more\x20of\x20the\x20matching\x20instance\x20\
7826    configurations.\n\n\r\n\x05\x04\x05\x02\x01\x05\x12\x04\x89\x06\x02\x08\
7827    \n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\x89\x06\t\x18\n\r\n\x05\x04\x05\
7828    \x02\x01\x03\x12\x04\x89\x06\x1b\x1c\n~\n\x02\x04\x06\x12\x06\x8e\x06\0\
7829    \x97\x06\x01\x1ap\x20The\x20request\x20for\n\x20[GetInstanceConfigReques\
7830    t][google.spanner.admin.instance.v1.InstanceAdmin.GetInstanceConfig].\n\
7831    \n\x0b\n\x03\x04\x06\x01\x12\x04\x8e\x06\x08\x20\n\x95\x01\n\x04\x04\x06\
7832    \x02\0\x12\x06\x91\x06\x02\x96\x06\x04\x1a\x84\x01\x20Required.\x20The\
7833    \x20name\x20of\x20the\x20requested\x20instance\x20configuration.\x20Valu\
7834    es\x20are\x20of\n\x20the\x20form\x20`projects/<project>/instanceConfigs/\
7835    <config>`.\n\n\r\n\x05\x04\x06\x02\0\x05\x12\x04\x91\x06\x02\x08\n\r\n\
7836    \x05\x04\x06\x02\0\x01\x12\x04\x91\x06\t\r\n\r\n\x05\x04\x06\x02\0\x03\
7837    \x12\x04\x91\x06\x10\x11\n\x0f\n\x05\x04\x06\x02\0\x08\x12\x06\x91\x06\
7838    \x12\x96\x06\x03\n\x10\n\x08\x04\x06\x02\0\x08\x9c\x08\0\x12\x04\x92\x06\
7839    \x04*\n\x11\n\x07\x04\x06\x02\0\x08\x9f\x08\x12\x06\x93\x06\x04\x95\x06\
7840    \x05\nj\n\x02\x04\x07\x12\x06\x9b\x06\0\xb5\x06\x01\x1a\\\x20The\x20requ\
7841    est\x20for\n\x20[CreateInstanceConfigRequest][InstanceAdmin.CreateInstan\
7842    ceConfigRequest].\n\n\x0b\n\x03\x04\x07\x01\x12\x04\x9b\x06\x08#\n\x89\
7843    \x01\n\x04\x04\x07\x02\0\x12\x06\x9e\x06\x02\xa3\x06\x04\x1ay\x20Require\
7844    d.\x20The\x20name\x20of\x20the\x20project\x20in\x20which\x20to\x20create\
7845    \x20the\x20instance\x20config.\n\x20Values\x20are\x20of\x20the\x20form\
7846    \x20`projects/<project>`.\n\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\x9e\x06\
7847    \x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\x9e\x06\t\x0f\n\r\n\x05\x04\
7848    \x07\x02\0\x03\x12\x04\x9e\x06\x12\x13\n\x0f\n\x05\x04\x07\x02\0\x08\x12\
7849    \x06\x9e\x06\x14\xa3\x06\x03\n\x10\n\x08\x04\x07\x02\0\x08\x9c\x08\0\x12\
7850    \x04\x9f\x06\x04*\n\x11\n\x07\x04\x07\x02\0\x08\x9f\x08\x12\x06\xa0\x06\
7851    \x04\xa2\x06\x05\n\x95\x02\n\x04\x04\x07\x02\x01\x12\x04\xa9\x06\x02I\
7852    \x1a\x86\x02\x20Required.\x20The\x20ID\x20of\x20the\x20instance\x20confi\
7853    g\x20to\x20create.\x20\x20Valid\x20identifiers\x20are\n\x20of\x20the\x20\
7854    form\x20`custom-[-a-z0-9]*[a-z0-9]`\x20and\x20must\x20be\x20between\x202\
7855    \x20and\x2064\n\x20characters\x20in\x20length.\x20The\x20`custom-`\x20pr\
7856    efix\x20is\x20required\x20to\x20avoid\x20name\n\x20conflicts\x20with\x20\
7857    Google\x20managed\x20configurations.\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\
7858    \x04\xa9\x06\x02\x08\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xa9\x06\t\x1b\
7859    \n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xa9\x06\x1e\x1f\n\r\n\x05\x04\x07\
7860    \x02\x01\x08\x12\x04\xa9\x06\x20H\n\x10\n\x08\x04\x07\x02\x01\x08\x9c\
7861    \x08\0\x12\x04\xa9\x06!G\n\xb5\x02\n\x04\x04\x07\x02\x02\x12\x04\xb0\x06\
7862    \x02N\x1a\xa6\x02\x20Required.\x20The\x20InstanceConfig\x20proto\x20of\
7863    \x20the\x20configuration\x20to\x20create.\n\x20instance_config.name\x20m\
7864    ust\x20be\n\x20`<parent>/instanceConfigs/<instance_config_id>`.\n\x20ins\
7865    tance_config.base_config\x20must\x20be\x20a\x20Google\x20managed\x20conf\
7866    iguration\x20name,\n\x20e.g.\x20<parent>/instanceConfigs/us-east1,\x20<p\
7867    arent>/instanceConfigs/nam3.\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\xb0\
7868    \x06\x02\x10\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xb0\x06\x11\x20\n\r\n\
7869    \x05\x04\x07\x02\x02\x03\x12\x04\xb0\x06#$\n\r\n\x05\x04\x07\x02\x02\x08\
7870    \x12\x04\xb0\x06%M\n\x10\n\x08\x04\x07\x02\x02\x08\x9c\x08\0\x12\x04\xb0\
7871    \x06&L\nk\n\x04\x04\x07\x02\x03\x12\x04\xb4\x06\x02\x19\x1a]\x20An\x20op\
7872    tion\x20to\x20validate,\x20but\x20not\x20actually\x20execute,\x20a\x20re\
7873    quest,\n\x20and\x20provide\x20the\x20same\x20response.\n\n\r\n\x05\x04\
7874    \x07\x02\x03\x05\x12\x04\xb4\x06\x02\x06\n\r\n\x05\x04\x07\x02\x03\x01\
7875    \x12\x04\xb4\x06\x07\x14\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\xb4\x06\
7876    \x17\x18\nj\n\x02\x04\x08\x12\x06\xb9\x06\0\xce\x06\x01\x1a\\\x20The\x20\
7877    request\x20for\n\x20[UpdateInstanceConfigRequest][InstanceAdmin.UpdateIn\
7878    stanceConfigRequest].\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xb9\x06\x08#\n\
7879    \x82\x03\n\x04\x04\x08\x02\0\x12\x04\xc0\x06\x02N\x1a\xf3\x02\x20Require\
7880    d.\x20The\x20user\x20instance\x20config\x20to\x20update,\x20which\x20mus\
7881    t\x20always\x20include\x20the\n\x20instance\x20config\x20name.\x20Otherw\
7882    ise,\x20only\x20fields\x20mentioned\x20in\n\x20[update_mask][google.span\
7883    ner.admin.instance.v1.UpdateInstanceConfigRequest.update_mask]\n\x20need\
7884    \x20be\x20included.\x20To\x20prevent\x20conflicts\x20of\x20concurrent\
7885    \x20updates,\n\x20[etag][google.spanner.admin.instance.v1.InstanceConfig\
7886    .reconciling]\x20can\n\x20be\x20used.\n\n\r\n\x05\x04\x08\x02\0\x06\x12\
7887    \x04\xc0\x06\x02\x10\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xc0\x06\x11\x20\
7888    \n\r\n\x05\x04\x08\x02\0\x03\x12\x04\xc0\x06#$\n\r\n\x05\x04\x08\x02\0\
7889    \x08\x12\x04\xc0\x06%M\n\x10\n\x08\x04\x08\x02\0\x08\x9c\x08\0\x12\x04\
7890    \xc0\x06&L\n\x9a\x03\n\x04\x04\x08\x02\x01\x12\x06\xc8\x06\x02\xc9\x06/\
7891    \x1a\x89\x03\x20Required.\x20A\x20mask\x20specifying\x20which\x20fields\
7892    \x20in\n\x20[InstanceConfig][google.spanner.admin.instance.v1.InstanceCo\
7893    nfig]\x20should\x20be\n\x20updated.\x20The\x20field\x20mask\x20must\x20a\
7894    lways\x20be\x20specified;\x20this\x20prevents\x20any\x20future\n\x20fiel\
7895    ds\x20in\x20[InstanceConfig][google.spanner.admin.instance.v1.InstanceCo\
7896    nfig]\n\x20from\x20being\x20erased\x20accidentally\x20by\x20clients\x20t\
7897    hat\x20do\x20not\x20know\x20about\x20them.\x20Only\n\x20display_name\x20\
7898    and\x20labels\x20can\x20be\x20updated.\n\n\r\n\x05\x04\x08\x02\x01\x06\
7899    \x12\x04\xc8\x06\x02\x1b\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xc8\x06\
7900    \x1c'\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xc8\x06*+\n\r\n\x05\x04\x08\
7901    \x02\x01\x08\x12\x04\xc9\x06\x06.\n\x10\n\x08\x04\x08\x02\x01\x08\x9c\
7902    \x08\0\x12\x04\xc9\x06\x07-\nk\n\x04\x04\x08\x02\x02\x12\x04\xcd\x06\x02\
7903    \x19\x1a]\x20An\x20option\x20to\x20validate,\x20but\x20not\x20actually\
7904    \x20execute,\x20a\x20request,\n\x20and\x20provide\x20the\x20same\x20resp\
7905    onse.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xcd\x06\x02\x06\n\r\n\x05\
7906    \x04\x08\x02\x02\x01\x12\x04\xcd\x06\x07\x14\n\r\n\x05\x04\x08\x02\x02\
7907    \x03\x12\x04\xcd\x06\x17\x18\nj\n\x02\x04\t\x12\x06\xd2\x06\0\xe9\x06\
7908    \x01\x1a\\\x20The\x20request\x20for\n\x20[DeleteInstanceConfigRequest][I\
7909    nstanceAdmin.DeleteInstanceConfigRequest].\n\n\x0b\n\x03\x04\t\x01\x12\
7910    \x04\xd2\x06\x08#\n\xa2\x01\n\x04\x04\t\x02\0\x12\x06\xd6\x06\x02\xdb\
7911    \x06\x04\x1a\x91\x01\x20Required.\x20The\x20name\x20of\x20the\x20instanc\
7912    e\x20configuration\x20to\x20be\x20deleted.\n\x20Values\x20are\x20of\x20t\
7913    he\x20form\n\x20`projects/<project>/instanceConfigs/<instance_config>`\n\
7914    \n\r\n\x05\x04\t\x02\0\x05\x12\x04\xd6\x06\x02\x08\n\r\n\x05\x04\t\x02\0\
7915    \x01\x12\x04\xd6\x06\t\r\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xd6\x06\x10\
7916    \x11\n\x0f\n\x05\x04\t\x02\0\x08\x12\x06\xd6\x06\x12\xdb\x06\x03\n\x10\n\
7917    \x08\x04\t\x02\0\x08\x9c\x08\0\x12\x04\xd7\x06\x04*\n\x11\n\x07\x04\t\
7918    \x02\0\x08\x9f\x08\x12\x06\xd8\x06\x04\xda\x06\x05\n\x97\x03\n\x04\x04\t\
7919    \x02\x01\x12\x04\xe4\x06\x02\x12\x1a\x88\x03\x20Used\x20for\x20optimisti\
7920    c\x20concurrency\x20control\x20as\x20a\x20way\x20to\x20help\x20prevent\n\
7921    \x20simultaneous\x20deletes\x20of\x20an\x20instance\x20config\x20from\
7922    \x20overwriting\x20each\n\x20other.\x20If\x20not\x20empty,\x20the\x20API\
7923    \n\x20only\x20deletes\x20the\x20instance\x20config\x20when\x20the\x20eta\
7924    g\x20provided\x20matches\x20the\x20current\n\x20status\x20of\x20the\x20r\
7925    equested\x20instance\x20config.\x20Otherwise,\x20deletes\x20the\x20insta\
7926    nce\n\x20config\x20without\x20checking\x20the\x20current\x20status\x20of\
7927    \x20the\x20requested\x20instance\n\x20config.\n\n\r\n\x05\x04\t\x02\x01\
7928    \x05\x12\x04\xe4\x06\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xe4\x06\
7929    \t\r\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xe4\x06\x10\x11\nk\n\x04\x04\t\
7930    \x02\x02\x12\x04\xe8\x06\x02\x19\x1a]\x20An\x20option\x20to\x20validate,\
7931    \x20but\x20not\x20actually\x20execute,\x20a\x20request,\n\x20and\x20prov\
7932    ide\x20the\x20same\x20response.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\
7933    \xe8\x06\x02\x06\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xe8\x06\x07\x14\n\r\
7934    \n\x05\x04\t\x02\x02\x03\x12\x04\xe8\x06\x17\x18\n\x8d\x01\n\x02\x04\n\
7935    \x12\x06\xed\x06\0\xae\x07\x01\x1a\x7f\x20The\x20request\x20for\n\x20[Li\
7936    stInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdm\
7937    in.ListInstanceConfigOperations].\n\n\x0b\n\x03\x04\n\x01\x12\x04\xed\
7938    \x06\x08+\nx\n\x04\x04\n\x02\0\x12\x06\xf0\x06\x02\xf5\x06\x04\x1ah\x20R\
7939    equired.\x20The\x20project\x20of\x20the\x20instance\x20config\x20operati\
7940    ons.\n\x20Values\x20are\x20of\x20the\x20form\x20`projects/<project>`.\n\
7941    \n\r\n\x05\x04\n\x02\0\x05\x12\x04\xf0\x06\x02\x08\n\r\n\x05\x04\n\x02\0\
7942    \x01\x12\x04\xf0\x06\t\x0f\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xf0\x06\x12\
7943    \x13\n\x0f\n\x05\x04\n\x02\0\x08\x12\x06\xf0\x06\x14\xf5\x06\x03\n\x10\n\
7944    \x08\x04\n\x02\0\x08\x9c\x08\0\x12\x04\xf1\x06\x04*\n\x11\n\x07\x04\n\
7945    \x02\0\x08\x9f\x08\x12\x06\xf2\x06\x04\xf4\x06\x05\n\x9f\x10\n\x04\x04\n\
7946    \x02\x01\x12\x04\xa2\x07\x02\x14\x1a\x90\x10\x20An\x20expression\x20that\
7947    \x20filters\x20the\x20list\x20of\x20returned\x20operations.\n\n\x20A\x20\
7948    filter\x20expression\x20consists\x20of\x20a\x20field\x20name,\x20a\n\x20\
7949    comparison\x20operator,\x20and\x20a\x20value\x20for\x20filtering.\n\x20T\
7950    he\x20value\x20must\x20be\x20a\x20string,\x20a\x20number,\x20or\x20a\x20\
7951    boolean.\x20The\x20comparison\x20operator\n\x20must\x20be\x20one\x20of:\
7952    \x20`<`,\x20`>`,\x20`<=`,\x20`>=`,\x20`!=`,\x20`=`,\x20or\x20`:`.\n\x20C\
7953    olon\x20`:`\x20is\x20the\x20contains\x20operator.\x20Filter\x20rules\x20\
7954    are\x20not\x20case\x20sensitive.\n\n\x20The\x20following\x20fields\x20in\
7955    \x20the\x20[Operation][google.longrunning.Operation]\n\x20are\x20eligibl\
7956    e\x20for\x20filtering:\n\n\x20\x20\x20*\x20`name`\x20-\x20The\x20name\
7957    \x20of\x20the\x20long-running\x20operation\n\x20\x20\x20*\x20`done`\x20-\
7958    \x20False\x20if\x20the\x20operation\x20is\x20in\x20progress,\x20else\x20\
7959    true.\n\x20\x20\x20*\x20`metadata.@type`\x20-\x20the\x20type\x20of\x20me\
7960    tadata.\x20For\x20example,\x20the\x20type\x20string\n\x20\x20\x20\x20\
7961    \x20\x20for\n\x20\x20\x20\x20\x20\x20[CreateInstanceConfigMetadata][goog\
7962    le.spanner.admin.instance.v1.CreateInstanceConfigMetadata]\n\x20\x20\x20\
7963    \x20\x20\x20is\n\x20\x20\x20\x20\x20\x20`type.googleapis.com/google.span\
7964    ner.admin.instance.v1.CreateInstanceConfigMetadata`.\n\x20\x20\x20*\x20`\
7965    metadata.<field_name>`\x20-\x20any\x20field\x20in\x20metadata.value.\n\
7966    \x20\x20\x20\x20\x20\x20`metadata.@type`\x20must\x20be\x20specified\x20f\
7967    irst,\x20if\x20filtering\x20on\x20metadata\n\x20\x20\x20\x20\x20\x20fiel\
7968    ds.\n\x20\x20\x20*\x20`error`\x20-\x20Error\x20associated\x20with\x20the\
7969    \x20long-running\x20operation.\n\x20\x20\x20*\x20`response.@type`\x20-\
7970    \x20the\x20type\x20of\x20response.\n\x20\x20\x20*\x20`response.<field_na\
7971    me>`\x20-\x20any\x20field\x20in\x20response.value.\n\n\x20You\x20can\x20\
7972    combine\x20multiple\x20expressions\x20by\x20enclosing\x20each\x20express\
7973    ion\x20in\n\x20parentheses.\x20By\x20default,\x20expressions\x20are\x20c\
7974    ombined\x20with\x20AND\x20logic.\x20However,\n\x20you\x20can\x20specify\
7975    \x20AND,\x20OR,\x20and\x20NOT\x20logic\x20explicitly.\n\n\x20Here\x20are\
7976    \x20a\x20few\x20examples:\n\n\x20\x20\x20*\x20`done:true`\x20-\x20The\
7977    \x20operation\x20is\x20complete.\n\x20\x20\x20*\x20`(metadata.@type=`\
7978    \x20\\\n\x20\x20\x20\x20\x20`type.googleapis.com/google.spanner.admin.in\
7979    stance.v1.CreateInstanceConfigMetadata)\n\x20\x20\x20\x20\x20AND`\x20\\\
7980    \n\x20\x20\x20\x20\x20`(metadata.instance_config.name:custom-config)\x20\
7981    AND`\x20\\\n\x20\x20\x20\x20\x20`(metadata.progress.start_time\x20<\x20\
7982    \\\"2021-03-28T14:50:00Z\\\")\x20AND`\x20\\\n\x20\x20\x20\x20\x20`(error\
7983    :*)`\x20-\x20Return\x20operations\x20where:\n\x20\x20\x20\x20\x20*\x20Th\
7984    e\x20operation's\x20metadata\x20type\x20is\n\x20\x20\x20\x20\x20[CreateI\
7985    nstanceConfigMetadata][google.spanner.admin.instance.v1.CreateInstanceCo\
7986    nfigMetadata].\n\x20\x20\x20\x20\x20*\x20The\x20instance\x20config\x20na\
7987    me\x20contains\x20\"custom-config\".\n\x20\x20\x20\x20\x20*\x20The\x20op\
7988    eration\x20started\x20before\x202021-03-28T14:50:00Z.\n\x20\x20\x20\x20\
7989    \x20*\x20The\x20operation\x20resulted\x20in\x20an\x20error.\n\n\r\n\x05\
7990    \x04\n\x02\x01\x05\x12\x04\xa2\x07\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\
7991    \x12\x04\xa2\x07\t\x0f\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xa2\x07\x12\
7992    \x13\n\x87\x01\n\x04\x04\n\x02\x02\x12\x04\xa6\x07\x02\x16\x1ay\x20Numbe\
7993    r\x20of\x20operations\x20to\x20be\x20returned\x20in\x20the\x20response.\
7994    \x20If\x200\x20or\n\x20less,\x20defaults\x20to\x20the\x20server's\x20max\
7995    imum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\
7996    \xa6\x07\x02\x07\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xa6\x07\x08\x11\n\r\
7997    \n\x05\x04\n\x02\x02\x03\x12\x04\xa6\x07\x14\x15\n\xd8\x02\n\x04\x04\n\
7998    \x02\x03\x12\x04\xad\x07\x02\x18\x1a\xc9\x02\x20If\x20non-empty,\x20`pag\
7999    e_token`\x20should\x20contain\x20a\n\x20[next_page_token][google.spanner\
8000    .admin.instance.v1.ListInstanceConfigOperationsResponse.next_page_token]\
8001    \n\x20from\x20a\x20previous\n\x20[ListInstanceConfigOperationsResponse][\
8002    google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse]\n\
8003    \x20to\x20the\x20same\x20`parent`\x20and\x20with\x20the\x20same\x20`filt\
8004    er`.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xad\x07\x02\x08\n\r\n\x05\x04\
8005    \n\x02\x03\x01\x12\x04\xad\x07\t\x13\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\
8006    \xad\x07\x16\x17\n\x8f\x01\n\x02\x04\x0b\x12\x06\xb2\x07\0\xbe\x07\x01\
8007    \x1a\x80\x01\x20The\x20response\x20for\n\x20[ListInstanceConfigOperation\
8008    s][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOper\
8009    ations].\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xb2\x07\x08,\n\xbd\x02\n\x04\
8010    \x04\x0b\x02\0\x12\x04\xb8\x07\x027\x1a\xae\x02\x20The\x20list\x20of\x20\
8011    matching\x20instance\x20config\x20[long-running\n\x20operations][google.\
8012    longrunning.Operation].\x20Each\x20operation's\x20name\x20will\x20be\n\
8013    \x20prefixed\x20by\x20the\x20instance\x20config's\x20name.\x20The\x20ope\
8014    ration's\n\x20[metadata][google.longrunning.Operation.metadata]\x20field\
8015    \x20type\n\x20`metadata.type_url`\x20describes\x20the\x20type\x20of\x20t\
8016    he\x20metadata.\n\n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\xb8\x07\x02\n\n\r\
8017    \n\x05\x04\x0b\x02\0\x06\x12\x04\xb8\x07\x0b'\n\r\n\x05\x04\x0b\x02\0\
8018    \x01\x12\x04\xb8\x07(2\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xb8\x0756\n\
8019    \xd9\x01\n\x04\x04\x0b\x02\x01\x12\x04\xbd\x07\x02\x1d\x1a\xca\x01\x20`n\
8020    ext_page_token`\x20can\x20be\x20sent\x20in\x20a\x20subsequent\n\x20[List\
8021    InstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin\
8022    .ListInstanceConfigOperations]\n\x20call\x20to\x20fetch\x20more\x20of\
8023    \x20the\x20matching\x20metadata.\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\
8024    \xbd\x07\x02\x08\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xbd\x07\t\x18\n\r\
8025    \n\x05\x04\x0b\x02\x01\x03\x12\x04\xbd\x07\x1b\x1c\nk\n\x02\x04\x0c\x12\
8026    \x06\xc2\x07\0\xd1\x07\x01\x1a]\x20The\x20request\x20for\n\x20[GetInstan\
8027    ce][google.spanner.admin.instance.v1.InstanceAdmin.GetInstance].\n\n\x0b\
8028    \n\x03\x04\x0c\x01\x12\x04\xc2\x07\x08\x1a\n\x82\x01\n\x04\x04\x0c\x02\0\
8029    \x12\x06\xc5\x07\x02\xca\x07\x04\x1ar\x20Required.\x20The\x20name\x20of\
8030    \x20the\x20requested\x20instance.\x20Values\x20are\x20of\x20the\x20form\
8031    \n\x20`projects/<project>/instances/<instance>`.\n\n\r\n\x05\x04\x0c\x02\
8032    \0\x05\x12\x04\xc5\x07\x02\x08\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\xc5\
8033    \x07\t\r\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\xc5\x07\x10\x11\n\x0f\n\x05\
8034    \x04\x0c\x02\0\x08\x12\x06\xc5\x07\x12\xca\x07\x03\n\x10\n\x08\x04\x0c\
8035    \x02\0\x08\x9c\x08\0\x12\x04\xc6\x07\x04*\n\x11\n\x07\x04\x0c\x02\0\x08\
8036    \x9f\x08\x12\x06\xc7\x07\x04\xc9\x07\x05\n\xf5\x01\n\x04\x04\x0c\x02\x01\
8037    \x12\x04\xd0\x07\x02+\x1a\xe6\x01\x20If\x20field_mask\x20is\x20present,\
8038    \x20specifies\x20the\x20subset\x20of\n\x20[Instance][google.spanner.admi\
8039    n.instance.v1.Instance]\x20fields\x20that\x20should\x20be\n\x20returned.\
8040    \x20If\x20absent,\x20all\n\x20[Instance][google.spanner.admin.instance.v\
8041    1.Instance]\x20fields\x20are\x20returned.\n\n\r\n\x05\x04\x0c\x02\x01\
8042    \x06\x12\x04\xd0\x07\x02\x1b\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xd0\
8043    \x07\x1c&\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xd0\x07)*\nq\n\x02\x04\r\
8044    \x12\x06\xd5\x07\0\xe7\x07\x01\x1ac\x20The\x20request\x20for\n\x20[Creat\
8045    eInstance][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstance\
8046    ].\n\n\x0b\n\x03\x04\r\x01\x12\x04\xd5\x07\x08\x1d\n\x82\x01\n\x04\x04\r\
8047    \x02\0\x12\x06\xd8\x07\x02\xdd\x07\x04\x1ar\x20Required.\x20The\x20name\
8048    \x20of\x20the\x20project\x20in\x20which\x20to\x20create\x20the\x20instan\
8049    ce.\x20Values\n\x20are\x20of\x20the\x20form\x20`projects/<project>`.\n\n\
8050    \r\n\x05\x04\r\x02\0\x05\x12\x04\xd8\x07\x02\x08\n\r\n\x05\x04\r\x02\0\
8051    \x01\x12\x04\xd8\x07\t\x0f\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xd8\x07\x12\
8052    \x13\n\x0f\n\x05\x04\r\x02\0\x08\x12\x06\xd8\x07\x14\xdd\x07\x03\n\x10\n\
8053    \x08\x04\r\x02\0\x08\x9c\x08\0\x12\x04\xd9\x07\x04*\n\x11\n\x07\x04\r\
8054    \x02\0\x08\x9f\x08\x12\x06\xda\x07\x04\xdc\x07\x05\n\xae\x01\n\x04\x04\r\
8055    \x02\x01\x12\x04\xe2\x07\x02B\x1a\x9f\x01\x20Required.\x20The\x20ID\x20o\
8056    f\x20the\x20instance\x20to\x20create.\x20\x20Valid\x20identifiers\x20are\
8057    \x20of\x20the\n\x20form\x20`[a-z][-a-z0-9]*[a-z0-9]`\x20and\x20must\x20b\
8058    e\x20between\x202\x20and\x2064\x20characters\x20in\n\x20length.\n\n\r\n\
8059    \x05\x04\r\x02\x01\x05\x12\x04\xe2\x07\x02\x08\n\r\n\x05\x04\r\x02\x01\
8060    \x01\x12\x04\xe2\x07\t\x14\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xe2\x07\
8061    \x17\x18\n\r\n\x05\x04\r\x02\x01\x08\x12\x04\xe2\x07\x19A\n\x10\n\x08\
8062    \x04\r\x02\x01\x08\x9c\x08\0\x12\x04\xe2\x07\x1a@\n\x89\x01\n\x04\x04\r\
8063    \x02\x02\x12\x04\xe6\x07\x02A\x1a{\x20Required.\x20The\x20instance\x20to\
8064    \x20create.\x20\x20The\x20name\x20may\x20be\x20omitted,\x20but\x20if\n\
8065    \x20specified\x20must\x20be\x20`<parent>/instances/<instance_id>`.\n\n\r\
8066    \n\x05\x04\r\x02\x02\x06\x12\x04\xe6\x07\x02\n\n\r\n\x05\x04\r\x02\x02\
8067    \x01\x12\x04\xe6\x07\x0b\x13\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xe6\x07\
8068    \x16\x17\n\r\n\x05\x04\r\x02\x02\x08\x12\x04\xe6\x07\x18@\n\x10\n\x08\
8069    \x04\r\x02\x02\x08\x9c\x08\0\x12\x04\xe6\x07\x19?\no\n\x02\x04\x0e\x12\
8070    \x06\xeb\x07\0\x93\x08\x01\x1aa\x20The\x20request\x20for\n\x20[ListInsta\
8071    nces][google.spanner.admin.instance.v1.InstanceAdmin.ListInstances].\n\n\
8072    \x0b\n\x03\x04\x0e\x01\x12\x04\xeb\x07\x08\x1c\n\x8d\x01\n\x04\x04\x0e\
8073    \x02\0\x12\x06\xee\x07\x02\xf3\x07\x04\x1a}\x20Required.\x20The\x20name\
8074    \x20of\x20the\x20project\x20for\x20which\x20a\x20list\x20of\x20instances\
8075    \x20is\n\x20requested.\x20Values\x20are\x20of\x20the\x20form\x20`project\
8076    s/<project>`.\n\n\r\n\x05\x04\x0e\x02\0\x05\x12\x04\xee\x07\x02\x08\n\r\
8077    \n\x05\x04\x0e\x02\0\x01\x12\x04\xee\x07\t\x0f\n\r\n\x05\x04\x0e\x02\0\
8078    \x03\x12\x04\xee\x07\x12\x13\n\x0f\n\x05\x04\x0e\x02\0\x08\x12\x06\xee\
8079    \x07\x14\xf3\x07\x03\n\x10\n\x08\x04\x0e\x02\0\x08\x9c\x08\0\x12\x04\xef\
8080    \x07\x04*\n\x11\n\x07\x04\x0e\x02\0\x08\x9f\x08\x12\x06\xf0\x07\x04\xf2\
8081    \x07\x05\n\x86\x01\n\x04\x04\x0e\x02\x01\x12\x04\xf7\x07\x02\x16\x1ax\
8082    \x20Number\x20of\x20instances\x20to\x20be\x20returned\x20in\x20the\x20re\
8083    sponse.\x20If\x200\x20or\x20less,\x20defaults\n\x20to\x20the\x20server's\
8084    \x20maximum\x20allowed\x20page\x20size.\n\n\r\n\x05\x04\x0e\x02\x01\x05\
8085    \x12\x04\xf7\x07\x02\x07\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xf7\x07\
8086    \x08\x11\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xf7\x07\x14\x15\n\xfa\x01\
8087    \n\x04\x04\x0e\x02\x02\x12\x04\xfd\x07\x02\x18\x1a\xeb\x01\x20If\x20non-\
8088    empty,\x20`page_token`\x20should\x20contain\x20a\n\x20[next_page_token][\
8089    google.spanner.admin.instance.v1.ListInstancesResponse.next_page_token]\
8090    \n\x20from\x20a\x20previous\n\x20[ListInstancesResponse][google.spanner.\
8091    admin.instance.v1.ListInstancesResponse].\n\n\r\n\x05\x04\x0e\x02\x02\
8092    \x05\x12\x04\xfd\x07\x02\x08\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xfd\
8093    \x07\t\x13\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xfd\x07\x16\x17\n\xdd\
8094    \x06\n\x04\x04\x0e\x02\x03\x12\x04\x92\x08\x02\x14\x1a\xce\x06\x20An\x20\
8095    expression\x20for\x20filtering\x20the\x20results\x20of\x20the\x20request\
8096    .\x20Filter\x20rules\x20are\n\x20case\x20insensitive.\x20The\x20fields\
8097    \x20eligible\x20for\x20filtering\x20are:\n\n\x20\x20\x20*\x20`name`\n\
8098    \x20\x20\x20*\x20`display_name`\n\x20\x20\x20*\x20`labels.key`\x20where\
8099    \x20key\x20is\x20the\x20name\x20of\x20a\x20label\n\n\x20Some\x20examples\
8100    \x20of\x20using\x20filters\x20are:\n\n\x20\x20\x20*\x20`name:*`\x20-->\
8101    \x20The\x20instance\x20has\x20a\x20name.\n\x20\x20\x20*\x20`name:Howl`\
8102    \x20-->\x20The\x20instance's\x20name\x20contains\x20the\x20string\x20\"h\
8103    owl\".\n\x20\x20\x20*\x20`name:HOWL`\x20-->\x20Equivalent\x20to\x20above\
8104    .\n\x20\x20\x20*\x20`NAME:howl`\x20-->\x20Equivalent\x20to\x20above.\n\
8105    \x20\x20\x20*\x20`labels.env:*`\x20-->\x20The\x20instance\x20has\x20the\
8106    \x20label\x20\"env\".\n\x20\x20\x20*\x20`labels.env:dev`\x20-->\x20The\
8107    \x20instance\x20has\x20the\x20label\x20\"env\"\x20and\x20the\x20value\
8108    \x20of\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
8109    \x20\x20\x20\x20\x20\x20\x20\x20the\x20label\x20contains\x20the\x20strin\
8110    g\x20\"dev\".\n\x20\x20\x20*\x20`name:howl\x20labels.env:dev`\x20-->\x20\
8111    The\x20instance's\x20name\x20contains\x20\"howl\"\x20and\n\x20\x20\x20\
8112    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
8113    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20it\x20has\x20the\x20\
8114    label\x20\"env\"\x20with\x20its\x20value\n\x20\x20\x20\x20\x20\x20\x20\
8115    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
8116    \x20\x20\x20\x20\x20\x20\x20\x20\x20containing\x20\"dev\".\n\n\r\n\x05\
8117    \x04\x0e\x02\x03\x05\x12\x04\x92\x08\x02\x08\n\r\n\x05\x04\x0e\x02\x03\
8118    \x01\x12\x04\x92\x08\t\x0f\n\r\n\x05\x04\x0e\x02\x03\x03\x12\x04\x92\x08\
8119    \x12\x13\np\n\x02\x04\x0f\x12\x06\x97\x08\0\x9f\x08\x01\x1ab\x20The\x20r\
8120    esponse\x20for\n\x20[ListInstances][google.spanner.admin.instance.v1.Ins\
8121    tanceAdmin.ListInstances].\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\x97\x08\x08\
8122    \x1d\n0\n\x04\x04\x0f\x02\0\x12\x04\x99\x08\x02\"\x1a\"\x20The\x20list\
8123    \x20of\x20requested\x20instances.\n\n\r\n\x05\x04\x0f\x02\0\x04\x12\x04\
8124    \x99\x08\x02\n\n\r\n\x05\x04\x0f\x02\0\x06\x12\x04\x99\x08\x0b\x13\n\r\n\
8125    \x05\x04\x0f\x02\0\x01\x12\x04\x99\x08\x14\x1d\n\r\n\x05\x04\x0f\x02\0\
8126    \x03\x12\x04\x99\x08\x20!\n\xbc\x01\n\x04\x04\x0f\x02\x01\x12\x04\x9e\
8127    \x08\x02\x1d\x1a\xad\x01\x20`next_page_token`\x20can\x20be\x20sent\x20in\
8128    \x20a\x20subsequent\n\x20[ListInstances][google.spanner.admin.instance.v\
8129    1.InstanceAdmin.ListInstances]\n\x20call\x20to\x20fetch\x20more\x20of\
8130    \x20the\x20matching\x20instances.\n\n\r\n\x05\x04\x0f\x02\x01\x05\x12\
8131    \x04\x9e\x08\x02\x08\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\x9e\x08\t\x18\
8132    \n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\x9e\x08\x1b\x1c\nq\n\x02\x04\x10\
8133    \x12\x06\xa3\x08\0\xb1\x08\x01\x1ac\x20The\x20request\x20for\n\x20[Updat\
8134    eInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance\
8135    ].\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xa3\x08\x08\x1d\n\xe9\x01\n\x04\x04\
8136    \x10\x02\0\x12\x04\xa8\x08\x02A\x1a\xda\x01\x20Required.\x20The\x20insta\
8137    nce\x20to\x20update,\x20which\x20must\x20always\x20include\x20the\x20ins\
8138    tance\n\x20name.\x20\x20Otherwise,\x20only\x20fields\x20mentioned\x20in\
8139    \n\x20[field_mask][google.spanner.admin.instance.v1.UpdateInstanceReques\
8140    t.field_mask]\n\x20need\x20be\x20included.\n\n\r\n\x05\x04\x10\x02\0\x06\
8141    \x12\x04\xa8\x08\x02\n\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xa8\x08\x0b\
8142    \x13\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\xa8\x08\x16\x17\n\r\n\x05\x04\
8143    \x10\x02\0\x08\x12\x04\xa8\x08\x18@\n\x10\n\x08\x04\x10\x02\0\x08\x9c\
8144    \x08\0\x12\x04\xa8\x08\x19?\n\xd4\x02\n\x04\x04\x10\x02\x01\x12\x06\xaf\
8145    \x08\x02\xb0\x08/\x1a\xc3\x02\x20Required.\x20A\x20mask\x20specifying\
8146    \x20which\x20fields\x20in\n\x20[Instance][google.spanner.admin.instance.\
8147    v1.Instance]\x20should\x20be\x20updated.\n\x20The\x20field\x20mask\x20mu\
8148    st\x20always\x20be\x20specified;\x20this\x20prevents\x20any\x20future\
8149    \x20fields\x20in\n\x20[Instance][google.spanner.admin.instance.v1.Instan\
8150    ce]\x20from\x20being\x20erased\n\x20accidentally\x20by\x20clients\x20tha\
8151    t\x20do\x20not\x20know\x20about\x20them.\n\n\r\n\x05\x04\x10\x02\x01\x06\
8152    \x12\x04\xaf\x08\x02\x1b\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xaf\x08\
8153    \x1c&\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xaf\x08)*\n\r\n\x05\x04\x10\
8154    \x02\x01\x08\x12\x04\xb0\x08\x06.\n\x10\n\x08\x04\x10\x02\x01\x08\x9c\
8155    \x08\0\x12\x04\xb0\x08\x07-\nq\n\x02\x04\x11\x12\x06\xb5\x08\0\xbe\x08\
8156    \x01\x1ac\x20The\x20request\x20for\n\x20[DeleteInstance][google.spanner.\
8157    admin.instance.v1.InstanceAdmin.DeleteInstance].\n\n\x0b\n\x03\x04\x11\
8158    \x01\x12\x04\xb5\x08\x08\x1d\n\x85\x01\n\x04\x04\x11\x02\0\x12\x06\xb8\
8159    \x08\x02\xbd\x08\x04\x1au\x20Required.\x20The\x20name\x20of\x20the\x20in\
8160    stance\x20to\x20be\x20deleted.\x20Values\x20are\x20of\x20the\x20form\n\
8161    \x20`projects/<project>/instances/<instance>`\n\n\r\n\x05\x04\x11\x02\0\
8162    \x05\x12\x04\xb8\x08\x02\x08\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xb8\x08\
8163    \t\r\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xb8\x08\x10\x11\n\x0f\n\x05\x04\
8164    \x11\x02\0\x08\x12\x06\xb8\x08\x12\xbd\x08\x03\n\x10\n\x08\x04\x11\x02\0\
8165    \x08\x9c\x08\0\x12\x04\xb9\x08\x04*\n\x11\n\x07\x04\x11\x02\0\x08\x9f\
8166    \x08\x12\x06\xba\x08\x04\xbc\x08\x05\n\x8d\x01\n\x02\x04\x12\x12\x06\xc2\
8167    \x08\0\xd2\x08\x01\x1a\x7f\x20Metadata\x20type\x20for\x20the\x20operatio\
8168    n\x20returned\x20by\n\x20[CreateInstance][google.spanner.admin.instance.\
8169    v1.InstanceAdmin.CreateInstance].\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xc2\
8170    \x08\x08\x1e\n+\n\x04\x04\x12\x02\0\x12\x04\xc4\x08\x02\x18\x1a\x1d\x20T\
8171    he\x20instance\x20being\x20created.\n\n\r\n\x05\x04\x12\x02\0\x06\x12\
8172    \x04\xc4\x08\x02\n\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\xc4\x08\x0b\x13\n\
8173    \r\n\x05\x04\x12\x02\0\x03\x12\x04\xc4\x08\x16\x17\n\x8d\x01\n\x04\x04\
8174    \x12\x02\x01\x12\x04\xc9\x08\x02+\x1a\x7f\x20The\x20time\x20at\x20which\
8175    \x20the\n\x20[CreateInstance][google.spanner.admin.instance.v1.InstanceA\
8176    dmin.CreateInstance]\n\x20request\x20was\x20received.\n\n\r\n\x05\x04\
8177    \x12\x02\x01\x06\x12\x04\xc9\x08\x02\x1b\n\r\n\x05\x04\x12\x02\x01\x01\
8178    \x12\x04\xc9\x08\x1c&\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xc9\x08)*\n\
8179    \xbd\x01\n\x04\x04\x12\x02\x02\x12\x04\xce\x08\x02,\x1a\xae\x01\x20The\
8180    \x20time\x20at\x20which\x20this\x20operation\x20was\x20cancelled.\x20If\
8181    \x20set,\x20this\x20operation\x20is\n\x20in\x20the\x20process\x20of\x20u\
8182    ndoing\x20itself\x20(which\x20is\x20guaranteed\x20to\x20succeed)\x20and\
8183    \n\x20cannot\x20be\x20cancelled\x20again.\n\n\r\n\x05\x04\x12\x02\x02\
8184    \x06\x12\x04\xce\x08\x02\x1b\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\xce\
8185    \x08\x1c'\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\xce\x08*+\nV\n\x04\x04\
8186    \x12\x02\x03\x12\x04\xd1\x08\x02)\x1aH\x20The\x20time\x20at\x20which\x20\
8187    this\x20operation\x20failed\x20or\x20was\x20completed\x20successfully.\n\
8188    \n\r\n\x05\x04\x12\x02\x03\x06\x12\x04\xd1\x08\x02\x1b\n\r\n\x05\x04\x12\
8189    \x02\x03\x01\x12\x04\xd1\x08\x1c$\n\r\n\x05\x04\x12\x02\x03\x03\x12\x04\
8190    \xd1\x08'(\n\x8d\x01\n\x02\x04\x13\x12\x06\xd6\x08\0\xe6\x08\x01\x1a\x7f\
8191    \x20Metadata\x20type\x20for\x20the\x20operation\x20returned\x20by\n\x20[\
8192    UpdateInstance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateIns\
8193    tance].\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xd6\x08\x08\x1e\n4\n\x04\x04\
8194    \x13\x02\0\x12\x04\xd8\x08\x02\x18\x1a&\x20The\x20desired\x20end\x20stat\
8195    e\x20of\x20the\x20update.\n\n\r\n\x05\x04\x13\x02\0\x06\x12\x04\xd8\x08\
8196    \x02\n\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\xd8\x08\x0b\x13\n\r\n\x05\x04\
8197    \x13\x02\0\x03\x12\x04\xd8\x08\x16\x17\n\x89\x01\n\x04\x04\x13\x02\x01\
8198    \x12\x04\xdd\x08\x02+\x1a{\x20The\x20time\x20at\x20which\n\x20[UpdateIns\
8199    tance][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstance]\n\
8200    \x20request\x20was\x20received.\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\
8201    \xdd\x08\x02\x1b\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\xdd\x08\x1c&\n\r\
8202    \n\x05\x04\x13\x02\x01\x03\x12\x04\xdd\x08)*\n\xbd\x01\n\x04\x04\x13\x02\
8203    \x02\x12\x04\xe2\x08\x02,\x1a\xae\x01\x20The\x20time\x20at\x20which\x20t\
8204    his\x20operation\x20was\x20cancelled.\x20If\x20set,\x20this\x20operation\
8205    \x20is\n\x20in\x20the\x20process\x20of\x20undoing\x20itself\x20(which\
8206    \x20is\x20guaranteed\x20to\x20succeed)\x20and\n\x20cannot\x20be\x20cance\
8207    lled\x20again.\n\n\r\n\x05\x04\x13\x02\x02\x06\x12\x04\xe2\x08\x02\x1b\n\
8208    \r\n\x05\x04\x13\x02\x02\x01\x12\x04\xe2\x08\x1c'\n\r\n\x05\x04\x13\x02\
8209    \x02\x03\x12\x04\xe2\x08*+\nV\n\x04\x04\x13\x02\x03\x12\x04\xe5\x08\x02)\
8210    \x1aH\x20The\x20time\x20at\x20which\x20this\x20operation\x20failed\x20or\
8211    \x20was\x20completed\x20successfully.\n\n\r\n\x05\x04\x13\x02\x03\x06\
8212    \x12\x04\xe5\x08\x02\x1b\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\xe5\x08\
8213    \x1c$\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\xe5\x08'(\n\x9a\x01\n\x02\
8214    \x04\x14\x12\x06\xea\x08\0\xf5\x08\x01\x1a\x8b\x01\x20Metadata\x20type\
8215    \x20for\x20the\x20operation\x20returned\x20by\n\x20[CreateInstanceConfig\
8216    ][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig].\
8217    \n\n\x0b\n\x03\x04\x14\x01\x12\x04\xea\x08\x08$\n5\n\x04\x04\x14\x02\0\
8218    \x12\x04\xec\x08\x02%\x1a'\x20The\x20target\x20instance\x20config\x20end\
8219    \x20state.\n\n\r\n\x05\x04\x14\x02\0\x06\x12\x04\xec\x08\x02\x10\n\r\n\
8220    \x05\x04\x14\x02\0\x01\x12\x04\xec\x08\x11\x20\n\r\n\x05\x04\x14\x02\0\
8221    \x03\x12\x04\xec\x08#$\n\x8c\x01\n\x04\x04\x14\x02\x01\x12\x04\xf1\x08\
8222    \x02!\x1a~\x20The\x20progress\x20of\x20the\n\x20[CreateInstanceConfig][g\
8223    oogle.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig]\n\
8224    \x20operation.\n\n\r\n\x05\x04\x14\x02\x01\x06\x12\x04\xf1\x08\x02\x13\n\
8225    \r\n\x05\x04\x14\x02\x01\x01\x12\x04\xf1\x08\x14\x1c\n\r\n\x05\x04\x14\
8226    \x02\x01\x03\x12\x04\xf1\x08\x1f\x20\n?\n\x04\x04\x14\x02\x02\x12\x04\
8227    \xf4\x08\x02,\x1a1\x20The\x20time\x20at\x20which\x20this\x20operation\
8228    \x20was\x20cancelled.\n\n\r\n\x05\x04\x14\x02\x02\x06\x12\x04\xf4\x08\
8229    \x02\x1b\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\xf4\x08\x1c'\n\r\n\x05\
8230    \x04\x14\x02\x02\x03\x12\x04\xf4\x08*+\n\x9a\x01\n\x02\x04\x15\x12\x06\
8231    \xf9\x08\0\x84\t\x01\x1a\x8b\x01\x20Metadata\x20type\x20for\x20the\x20op\
8232    eration\x20returned\x20by\n\x20[UpdateInstanceConfig][google.spanner.adm\
8233    in.instance.v1.InstanceAdmin.UpdateInstanceConfig].\n\n\x0b\n\x03\x04\
8234    \x15\x01\x12\x04\xf9\x08\x08$\n;\n\x04\x04\x15\x02\0\x12\x04\xfb\x08\x02\
8235    %\x1a-\x20The\x20desired\x20instance\x20config\x20after\x20updating.\n\n\
8236    \r\n\x05\x04\x15\x02\0\x06\x12\x04\xfb\x08\x02\x10\n\r\n\x05\x04\x15\x02\
8237    \0\x01\x12\x04\xfb\x08\x11\x20\n\r\n\x05\x04\x15\x02\0\x03\x12\x04\xfb\
8238    \x08#$\n\x8c\x01\n\x04\x04\x15\x02\x01\x12\x04\x80\t\x02!\x1a~\x20The\
8239    \x20progress\x20of\x20the\n\x20[UpdateInstanceConfig][google.spanner.adm\
8240    in.instance.v1.InstanceAdmin.UpdateInstanceConfig]\n\x20operation.\n\n\r\
8241    \n\x05\x04\x15\x02\x01\x06\x12\x04\x80\t\x02\x13\n\r\n\x05\x04\x15\x02\
8242    \x01\x01\x12\x04\x80\t\x14\x1c\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\x80\
8243    \t\x1f\x20\n?\n\x04\x04\x15\x02\x02\x12\x04\x83\t\x02,\x1a1\x20The\x20ti\
8244    me\x20at\x20which\x20this\x20operation\x20was\x20cancelled.\n\n\r\n\x05\
8245    \x04\x15\x02\x02\x06\x12\x04\x83\t\x02\x1b\n\r\n\x05\x04\x15\x02\x02\x01\
8246    \x12\x04\x83\t\x1c'\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\x83\t*+b\x06pr\
8247    oto3\
8248";
8249
8250static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
8251
8252fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
8253    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
8254}
8255
8256pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
8257    file_descriptor_proto_lazy.get(|| {
8258        parse_descriptor_proto()
8259    })
8260}