google_cloud_rust_raw/api/
usage.rs1#![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#[derive(PartialEq,Clone,Default)]
27pub struct Usage {
28 pub requirements: ::protobuf::RepeatedField<::std::string::String>,
30 pub rules: ::protobuf::RepeatedField<UsageRule>,
31 pub producer_notification_channel: ::std::string::String,
32 pub unknown_fields: ::protobuf::UnknownFields,
34 pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a Usage {
38 fn default() -> &'a Usage {
39 <Usage as ::protobuf::Message>::default_instance()
40 }
41}
42
43impl Usage {
44 pub fn new() -> Usage {
45 ::std::default::Default::default()
46 }
47
48 pub fn get_requirements(&self) -> &[::std::string::String] {
52 &self.requirements
53 }
54 pub fn clear_requirements(&mut self) {
55 self.requirements.clear();
56 }
57
58 pub fn set_requirements(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
60 self.requirements = v;
61 }
62
63 pub fn mut_requirements(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
65 &mut self.requirements
66 }
67
68 pub fn take_requirements(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
70 ::std::mem::replace(&mut self.requirements, ::protobuf::RepeatedField::new())
71 }
72
73 pub fn get_rules(&self) -> &[UsageRule] {
77 &self.rules
78 }
79 pub fn clear_rules(&mut self) {
80 self.rules.clear();
81 }
82
83 pub fn set_rules(&mut self, v: ::protobuf::RepeatedField<UsageRule>) {
85 self.rules = v;
86 }
87
88 pub fn mut_rules(&mut self) -> &mut ::protobuf::RepeatedField<UsageRule> {
90 &mut self.rules
91 }
92
93 pub fn take_rules(&mut self) -> ::protobuf::RepeatedField<UsageRule> {
95 ::std::mem::replace(&mut self.rules, ::protobuf::RepeatedField::new())
96 }
97
98 pub fn get_producer_notification_channel(&self) -> &str {
102 &self.producer_notification_channel
103 }
104 pub fn clear_producer_notification_channel(&mut self) {
105 self.producer_notification_channel.clear();
106 }
107
108 pub fn set_producer_notification_channel(&mut self, v: ::std::string::String) {
110 self.producer_notification_channel = v;
111 }
112
113 pub fn mut_producer_notification_channel(&mut self) -> &mut ::std::string::String {
116 &mut self.producer_notification_channel
117 }
118
119 pub fn take_producer_notification_channel(&mut self) -> ::std::string::String {
121 ::std::mem::replace(&mut self.producer_notification_channel, ::std::string::String::new())
122 }
123}
124
125impl ::protobuf::Message for Usage {
126 fn is_initialized(&self) -> bool {
127 for v in &self.rules {
128 if !v.is_initialized() {
129 return false;
130 }
131 };
132 true
133 }
134
135 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
136 while !is.eof()? {
137 let (field_number, wire_type) = is.read_tag_unpack()?;
138 match field_number {
139 1 => {
140 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.requirements)?;
141 },
142 6 => {
143 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rules)?;
144 },
145 7 => {
146 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.producer_notification_channel)?;
147 },
148 _ => {
149 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
150 },
151 };
152 }
153 ::std::result::Result::Ok(())
154 }
155
156 #[allow(unused_variables)]
158 fn compute_size(&self) -> u32 {
159 let mut my_size = 0;
160 for value in &self.requirements {
161 my_size += ::protobuf::rt::string_size(1, &value);
162 };
163 for value in &self.rules {
164 let len = value.compute_size();
165 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
166 };
167 if !self.producer_notification_channel.is_empty() {
168 my_size += ::protobuf::rt::string_size(7, &self.producer_notification_channel);
169 }
170 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
171 self.cached_size.set(my_size);
172 my_size
173 }
174
175 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
176 for v in &self.requirements {
177 os.write_string(1, &v)?;
178 };
179 for v in &self.rules {
180 os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
181 os.write_raw_varint32(v.get_cached_size())?;
182 v.write_to_with_cached_sizes(os)?;
183 };
184 if !self.producer_notification_channel.is_empty() {
185 os.write_string(7, &self.producer_notification_channel)?;
186 }
187 os.write_unknown_fields(self.get_unknown_fields())?;
188 ::std::result::Result::Ok(())
189 }
190
191 fn get_cached_size(&self) -> u32 {
192 self.cached_size.get()
193 }
194
195 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
196 &self.unknown_fields
197 }
198
199 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
200 &mut self.unknown_fields
201 }
202
203 fn as_any(&self) -> &dyn (::std::any::Any) {
204 self as &dyn (::std::any::Any)
205 }
206 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
207 self as &mut dyn (::std::any::Any)
208 }
209 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
210 self
211 }
212
213 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
214 Self::descriptor_static()
215 }
216
217 fn new() -> Usage {
218 Usage::new()
219 }
220
221 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
222 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
223 descriptor.get(|| {
224 let mut fields = ::std::vec::Vec::new();
225 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
226 "requirements",
227 |m: &Usage| { &m.requirements },
228 |m: &mut Usage| { &mut m.requirements },
229 ));
230 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UsageRule>>(
231 "rules",
232 |m: &Usage| { &m.rules },
233 |m: &mut Usage| { &mut m.rules },
234 ));
235 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
236 "producer_notification_channel",
237 |m: &Usage| { &m.producer_notification_channel },
238 |m: &mut Usage| { &mut m.producer_notification_channel },
239 ));
240 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Usage>(
241 "Usage",
242 fields,
243 file_descriptor_proto()
244 )
245 })
246 }
247
248 fn default_instance() -> &'static Usage {
249 static instance: ::protobuf::rt::LazyV2<Usage> = ::protobuf::rt::LazyV2::INIT;
250 instance.get(Usage::new)
251 }
252}
253
254impl ::protobuf::Clear for Usage {
255 fn clear(&mut self) {
256 self.requirements.clear();
257 self.rules.clear();
258 self.producer_notification_channel.clear();
259 self.unknown_fields.clear();
260 }
261}
262
263impl ::std::fmt::Debug for Usage {
264 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
265 ::protobuf::text_format::fmt(self, f)
266 }
267}
268
269impl ::protobuf::reflect::ProtobufValue for Usage {
270 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
271 ::protobuf::reflect::ReflectValueRef::Message(self)
272 }
273}
274
275#[derive(PartialEq,Clone,Default)]
276pub struct UsageRule {
277 pub selector: ::std::string::String,
279 pub allow_unregistered_calls: bool,
280 pub skip_service_control: bool,
281 pub unknown_fields: ::protobuf::UnknownFields,
283 pub cached_size: ::protobuf::CachedSize,
284}
285
286impl<'a> ::std::default::Default for &'a UsageRule {
287 fn default() -> &'a UsageRule {
288 <UsageRule as ::protobuf::Message>::default_instance()
289 }
290}
291
292impl UsageRule {
293 pub fn new() -> UsageRule {
294 ::std::default::Default::default()
295 }
296
297 pub fn get_selector(&self) -> &str {
301 &self.selector
302 }
303 pub fn clear_selector(&mut self) {
304 self.selector.clear();
305 }
306
307 pub fn set_selector(&mut self, v: ::std::string::String) {
309 self.selector = v;
310 }
311
312 pub fn mut_selector(&mut self) -> &mut ::std::string::String {
315 &mut self.selector
316 }
317
318 pub fn take_selector(&mut self) -> ::std::string::String {
320 ::std::mem::replace(&mut self.selector, ::std::string::String::new())
321 }
322
323 pub fn get_allow_unregistered_calls(&self) -> bool {
327 self.allow_unregistered_calls
328 }
329 pub fn clear_allow_unregistered_calls(&mut self) {
330 self.allow_unregistered_calls = false;
331 }
332
333 pub fn set_allow_unregistered_calls(&mut self, v: bool) {
335 self.allow_unregistered_calls = v;
336 }
337
338 pub fn get_skip_service_control(&self) -> bool {
342 self.skip_service_control
343 }
344 pub fn clear_skip_service_control(&mut self) {
345 self.skip_service_control = false;
346 }
347
348 pub fn set_skip_service_control(&mut self, v: bool) {
350 self.skip_service_control = v;
351 }
352}
353
354impl ::protobuf::Message for UsageRule {
355 fn is_initialized(&self) -> bool {
356 true
357 }
358
359 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
360 while !is.eof()? {
361 let (field_number, wire_type) = is.read_tag_unpack()?;
362 match field_number {
363 1 => {
364 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.selector)?;
365 },
366 2 => {
367 if wire_type != ::protobuf::wire_format::WireTypeVarint {
368 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
369 }
370 let tmp = is.read_bool()?;
371 self.allow_unregistered_calls = tmp;
372 },
373 3 => {
374 if wire_type != ::protobuf::wire_format::WireTypeVarint {
375 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
376 }
377 let tmp = is.read_bool()?;
378 self.skip_service_control = tmp;
379 },
380 _ => {
381 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
382 },
383 };
384 }
385 ::std::result::Result::Ok(())
386 }
387
388 #[allow(unused_variables)]
390 fn compute_size(&self) -> u32 {
391 let mut my_size = 0;
392 if !self.selector.is_empty() {
393 my_size += ::protobuf::rt::string_size(1, &self.selector);
394 }
395 if self.allow_unregistered_calls != false {
396 my_size += 2;
397 }
398 if self.skip_service_control != false {
399 my_size += 2;
400 }
401 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
402 self.cached_size.set(my_size);
403 my_size
404 }
405
406 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
407 if !self.selector.is_empty() {
408 os.write_string(1, &self.selector)?;
409 }
410 if self.allow_unregistered_calls != false {
411 os.write_bool(2, self.allow_unregistered_calls)?;
412 }
413 if self.skip_service_control != false {
414 os.write_bool(3, self.skip_service_control)?;
415 }
416 os.write_unknown_fields(self.get_unknown_fields())?;
417 ::std::result::Result::Ok(())
418 }
419
420 fn get_cached_size(&self) -> u32 {
421 self.cached_size.get()
422 }
423
424 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
425 &self.unknown_fields
426 }
427
428 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
429 &mut self.unknown_fields
430 }
431
432 fn as_any(&self) -> &dyn (::std::any::Any) {
433 self as &dyn (::std::any::Any)
434 }
435 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
436 self as &mut dyn (::std::any::Any)
437 }
438 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
439 self
440 }
441
442 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
443 Self::descriptor_static()
444 }
445
446 fn new() -> UsageRule {
447 UsageRule::new()
448 }
449
450 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
451 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
452 descriptor.get(|| {
453 let mut fields = ::std::vec::Vec::new();
454 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
455 "selector",
456 |m: &UsageRule| { &m.selector },
457 |m: &mut UsageRule| { &mut m.selector },
458 ));
459 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
460 "allow_unregistered_calls",
461 |m: &UsageRule| { &m.allow_unregistered_calls },
462 |m: &mut UsageRule| { &mut m.allow_unregistered_calls },
463 ));
464 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
465 "skip_service_control",
466 |m: &UsageRule| { &m.skip_service_control },
467 |m: &mut UsageRule| { &mut m.skip_service_control },
468 ));
469 ::protobuf::reflect::MessageDescriptor::new_pb_name::<UsageRule>(
470 "UsageRule",
471 fields,
472 file_descriptor_proto()
473 )
474 })
475 }
476
477 fn default_instance() -> &'static UsageRule {
478 static instance: ::protobuf::rt::LazyV2<UsageRule> = ::protobuf::rt::LazyV2::INIT;
479 instance.get(UsageRule::new)
480 }
481}
482
483impl ::protobuf::Clear for UsageRule {
484 fn clear(&mut self) {
485 self.selector.clear();
486 self.allow_unregistered_calls = false;
487 self.skip_service_control = false;
488 self.unknown_fields.clear();
489 }
490}
491
492impl ::std::fmt::Debug for UsageRule {
493 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
494 ::protobuf::text_format::fmt(self, f)
495 }
496}
497
498impl ::protobuf::reflect::ProtobufValue for UsageRule {
499 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
500 ::protobuf::reflect::ReflectValueRef::Message(self)
501 }
502}
503
504static file_descriptor_proto_data: &'static [u8] = b"\
505 \n\x16google/api/usage.proto\x12\ngoogle.api\"\x9c\x01\n\x05Usage\x12\"\
506 \n\x0crequirements\x18\x01\x20\x03(\tR\x0crequirements\x12+\n\x05rules\
507 \x18\x06\x20\x03(\x0b2\x15.google.api.UsageRuleR\x05rules\x12B\n\x1dprod\
508 ucer_notification_channel\x18\x07\x20\x01(\tR\x1bproducerNotificationCha\
509 nnel\"\x93\x01\n\tUsageRule\x12\x1a\n\x08selector\x18\x01\x20\x01(\tR\
510 \x08selector\x128\n\x18allow_unregistered_calls\x18\x02\x20\x01(\x08R\
511 \x16allowUnregisteredCalls\x120\n\x14skip_service_control\x18\x03\x20\
512 \x01(\x08R\x12skipServiceControlBl\n\x0ecom.google.apiB\nUsageProtoP\x01\
513 ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\
514 \xa2\x02\x04GAPIJ\xa0\x1c\n\x06\x12\x04\x0e\0_\x01\n\xbc\x04\n\x01\x0c\
515 \x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202023\x20Google\x20LLC\n\n\
516 \x20Licensed\x20under\x20the\x20Apache\x20License,\x20Version\x202.0\x20\
517 (the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20this\x20file\x20e\
518 xcept\x20in\x20compliance\x20with\x20the\x20License.\n\x20You\x20may\x20\
519 obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\x20\x20\x20\x20\
520 \x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Unless\x20required\
521 \x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\x20writing,\x20s\
522 oftware\n\x20distributed\x20under\x20the\x20License\x20is\x20distributed\
523 \x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\
524 \x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20express\x20or\x20impli\
525 ed.\n\x20See\x20the\x20License\x20for\x20the\x20specific\x20language\x20\
526 governing\x20permissions\x20and\n\x20limitations\x20under\x20the\x20Lice\
527 nse.\n\n\x08\n\x01\x02\x12\x03\x10\0\x13\n\x08\n\x01\x08\x12\x03\x12\0\\\
528 \n\t\n\x02\x08\x0b\x12\x03\x12\0\\\n\x08\n\x01\x08\x12\x03\x13\0\"\n\t\n\
529 \x02\x08\n\x12\x03\x13\0\"\n\x08\n\x01\x08\x12\x03\x14\0+\n\t\n\x02\x08\
530 \x08\x12\x03\x14\0+\n\x08\n\x01\x08\x12\x03\x15\0'\n\t\n\x02\x08\x01\x12\
531 \x03\x15\0'\n\x08\n\x01\x08\x12\x03\x16\0\"\n\t\n\x02\x08$\x12\x03\x16\0\
532 \"\n;\n\x02\x04\0\x12\x04\x19\03\x01\x1a/\x20Configuration\x20controllin\
533 g\x20usage\x20of\x20a\x20service.\n\n\n\n\x03\x04\0\x01\x12\x03\x19\x08\
534 \r\n\xff\x03\n\x04\x04\0\x02\0\x12\x03#\x02#\x1a\xf1\x03\x20Requirements\
535 \x20that\x20must\x20be\x20satisfied\x20before\x20a\x20consumer\x20projec\
536 t\x20can\x20use\x20the\n\x20service.\x20Each\x20requirement\x20is\x20of\
537 \x20the\x20form\x20<service.name>/<requirement-id>;\n\x20for\x20example\
538 \x20'serviceusage.googleapis.com/billing-enabled'.\n\n\x20For\x20Google\
539 \x20APIs,\x20a\x20Terms\x20of\x20Service\x20requirement\x20must\x20be\
540 \x20included\x20here.\n\x20Google\x20Cloud\x20APIs\x20must\x20include\
541 \x20\"serviceusage.googleapis.com/tos/cloud\".\n\x20Other\x20Google\x20A\
542 PIs\x20should\x20include\n\x20\"serviceusage.googleapis.com/tos/universa\
543 l\".\x20Additional\x20ToS\x20can\x20be\n\x20included\x20based\x20on\x20t\
544 he\x20business\x20needs.\n\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03#\x02\n\n\
545 \x0c\n\x05\x04\0\x02\0\x05\x12\x03#\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x01\
546 \x12\x03#\x12\x1e\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03#!\"\n\x95\x01\n\
547 \x04\x04\0\x02\x01\x12\x03(\x02\x1f\x1a\x87\x01\x20A\x20list\x20of\x20us\
548 age\x20rules\x20that\x20apply\x20to\x20individual\x20API\x20methods.\n\n\
549 \x20**NOTE:**\x20All\x20service\x20configuration\x20rules\x20follow\x20\
550 \"last\x20one\x20wins\"\x20order.\n\n\x0c\n\x05\x04\0\x02\x01\x04\x12\
551 \x03(\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03(\x0b\x14\n\x0c\n\x05\
552 \x04\0\x02\x01\x01\x12\x03(\x15\x1a\n\x0c\n\x05\x04\0\x02\x01\x03\x12\
553 \x03(\x1d\x1e\n\xbd\x03\n\x04\x04\0\x02\x02\x12\x032\x02+\x1a\xaf\x03\
554 \x20The\x20full\x20resource\x20name\x20of\x20a\x20channel\x20used\x20for\
555 \x20sending\x20notifications\x20to\x20the\n\x20service\x20producer.\n\n\
556 \x20Google\x20Service\x20Management\x20currently\x20only\x20supports\n\
557 \x20[Google\x20Cloud\x20Pub/Sub](https://cloud.google.com/pubsub)\x20as\
558 \x20a\x20notification\n\x20channel.\x20To\x20use\x20Google\x20Cloud\x20P\
559 ub/Sub\x20as\x20the\x20channel,\x20this\x20must\x20be\x20the\x20name\n\
560 \x20of\x20a\x20Cloud\x20Pub/Sub\x20topic\x20that\x20uses\x20the\x20Cloud\
561 \x20Pub/Sub\x20topic\x20name\x20format\n\x20documented\x20in\x20https://\
562 cloud.google.com/pubsub/docs/overview.\n\n\x0c\n\x05\x04\0\x02\x02\x05\
563 \x12\x032\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x032\t&\n\x0c\n\x05\
564 \x04\0\x02\x02\x03\x12\x032)*\n\xc0\x06\n\x02\x04\x01\x12\x04N\0_\x01\
565 \x1a\xb3\x06\x20Usage\x20configuration\x20rules\x20for\x20the\x20service\
566 .\n\n\x20NOTE:\x20Under\x20development.\n\n\n\x20Use\x20this\x20rule\x20\
567 to\x20configure\x20unregistered\x20calls\x20for\x20the\x20service.\x20Un\
568 registered\n\x20calls\x20are\x20calls\x20that\x20do\x20not\x20contain\
569 \x20consumer\x20project\x20identity.\n\x20(Example:\x20calls\x20that\x20\
570 do\x20not\x20contain\x20an\x20API\x20key).\n\x20By\x20default,\x20API\
571 \x20methods\x20do\x20not\x20allow\x20unregistered\x20calls,\x20and\x20ea\
572 ch\x20method\x20call\n\x20must\x20be\x20identified\x20by\x20a\x20consume\
573 r\x20project\x20identity.\x20Use\x20this\x20rule\x20to\n\x20allow/disall\
574 ow\x20unregistered\x20calls.\n\n\x20Example\x20of\x20an\x20API\x20that\
575 \x20wants\x20to\x20allow\x20unregistered\x20calls\x20for\x20entire\x20se\
576 rvice.\n\n\x20\x20\x20\x20\x20usage:\n\x20\x20\x20\x20\x20\x20\x20rules:\
577 \n\x20\x20\x20\x20\x20\x20\x20-\x20selector:\x20\"*\"\n\x20\x20\x20\x20\
578 \x20\x20\x20\x20\x20allow_unregistered_calls:\x20true\n\n\x20Example\x20\
579 of\x20a\x20method\x20that\x20wants\x20to\x20allow\x20unregistered\x20cal\
580 ls.\n\n\x20\x20\x20\x20\x20usage:\n\x20\x20\x20\x20\x20\x20\x20rules:\n\
581 \x20\x20\x20\x20\x20\x20\x20-\x20selector:\x20\"google.example.library.v\
582 1.LibraryService.CreateBook\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20allow\
583 _unregistered_calls:\x20true\n\n\n\n\x03\x04\x01\x01\x12\x03N\x08\x11\n\
584 \xbf\x01\n\x04\x04\x01\x02\0\x12\x03T\x02\x16\x1a\xb1\x01\x20Selects\x20\
585 the\x20methods\x20to\x20which\x20this\x20rule\x20applies.\x20Use\x20'*'\
586 \x20to\x20indicate\x20all\n\x20methods\x20in\x20all\x20APIs.\n\n\x20Refe\
587 r\x20to\x20[selector][google.api.DocumentationRule.selector]\x20for\x20s\
588 yntax\n\x20details.\n\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03T\x02\x08\n\
589 \x0c\n\x05\x04\x01\x02\0\x01\x12\x03T\t\x11\n\x0c\n\x05\x04\x01\x02\0\
590 \x03\x12\x03T\x14\x15\n\x7f\n\x04\x04\x01\x02\x01\x12\x03X\x02$\x1ar\x20\
591 If\x20true,\x20the\x20selected\x20method\x20allows\x20unregistered\x20ca\
592 lls,\x20e.g.\x20calls\n\x20that\x20don't\x20identify\x20any\x20user\x20o\
593 r\x20application.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03X\x02\x06\n\
594 \x0c\n\x05\x04\x01\x02\x01\x01\x12\x03X\x07\x1f\n\x0c\n\x05\x04\x01\x02\
595 \x01\x03\x12\x03X\"#\n\x96\x02\n\x04\x04\x01\x02\x02\x12\x03^\x02\x20\
596 \x1a\x88\x02\x20If\x20true,\x20the\x20selected\x20method\x20should\x20sk\
597 ip\x20service\x20control\x20and\x20the\x20control\n\x20plane\x20features\
598 ,\x20such\x20as\x20quota\x20and\x20billing,\x20will\x20not\x20be\x20avai\
599 lable.\n\x20This\x20flag\x20is\x20used\x20by\x20Google\x20Cloud\x20Endpo\
600 ints\x20to\x20bypass\x20checks\x20for\x20internal\n\x20methods,\x20such\
601 \x20as\x20service\x20health\x20check\x20methods.\n\n\x0c\n\x05\x04\x01\
602 \x02\x02\x05\x12\x03^\x02\x06\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03^\
603 \x07\x1b\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03^\x1e\x1fb\x06proto3\
604";
605
606static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
607
608fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
609 ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
610}
611
612pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
613 file_descriptor_proto_lazy.get(|| {
614 parse_descriptor_proto()
615 })
616}