1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc.  All rights reserved.
3// https://developers.google.com/protocol-buffers/
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9//     * Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11//     * Redistributions in binary form must reproduce the above
12// copyright notice, this list of conditions and the following disclaimer
13// in the documentation and/or other materials provided with the
14// distribution.
15//     * Neither the name of Google Inc. nor the names of its
16// contributors may be used to endorse or promote products derived from
17// this software without specific prior written permission.
18//
19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31// Author: kenton@google.com (Kenton Varda)
32//
33// WARNING:  The plugin interface is currently EXPERIMENTAL and is subject to
34//   change.
35//
36// protoc (aka the Protocol Compiler) can be extended via plugins.  A plugin is
37// just a program that reads a CodeGeneratorRequest from stdin and writes a
38// CodeGeneratorResponse to stdout.
39//
40// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead
41// of dealing with the raw protocol defined here.
42//
43// A plugin executable needs only to be placed somewhere in the path.  The
44// plugin should be named "protoc-gen-$NAME", and will then be used when the
45// flag "--${NAME}_out" is passed to protoc.
46
47// Code generated by protoc-gen-go. DO NOT EDIT.
48// source: google/protobuf/compiler/plugin.proto
49
50package pluginpb
51
52import (
53	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
54	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
55	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
56	reflect "reflect"
57	sync "sync"
58)
59
60// Sync with code_generator.h.
61type CodeGeneratorResponse_Feature int32
62
63const (
64	CodeGeneratorResponse_FEATURE_NONE            CodeGeneratorResponse_Feature = 0
65	CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL CodeGeneratorResponse_Feature = 1
66)
67
68// Enum value maps for CodeGeneratorResponse_Feature.
69var (
70	CodeGeneratorResponse_Feature_name = map[int32]string{
71		0: "FEATURE_NONE",
72		1: "FEATURE_PROTO3_OPTIONAL",
73	}
74	CodeGeneratorResponse_Feature_value = map[string]int32{
75		"FEATURE_NONE":            0,
76		"FEATURE_PROTO3_OPTIONAL": 1,
77	}
78)
79
80func (x CodeGeneratorResponse_Feature) Enum() *CodeGeneratorResponse_Feature {
81	p := new(CodeGeneratorResponse_Feature)
82	*p = x
83	return p
84}
85
86func (x CodeGeneratorResponse_Feature) String() string {
87	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
88}
89
90func (CodeGeneratorResponse_Feature) Descriptor() protoreflect.EnumDescriptor {
91	return file_google_protobuf_compiler_plugin_proto_enumTypes[0].Descriptor()
92}
93
94func (CodeGeneratorResponse_Feature) Type() protoreflect.EnumType {
95	return &file_google_protobuf_compiler_plugin_proto_enumTypes[0]
96}
97
98func (x CodeGeneratorResponse_Feature) Number() protoreflect.EnumNumber {
99	return protoreflect.EnumNumber(x)
100}
101
102// Deprecated: Do not use.
103func (x *CodeGeneratorResponse_Feature) UnmarshalJSON(b []byte) error {
104	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
105	if err != nil {
106		return err
107	}
108	*x = CodeGeneratorResponse_Feature(num)
109	return nil
110}
111
112// Deprecated: Use CodeGeneratorResponse_Feature.Descriptor instead.
113func (CodeGeneratorResponse_Feature) EnumDescriptor() ([]byte, []int) {
114	return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2, 0}
115}
116
117// The version number of protocol compiler.
118type Version struct {
119	state         protoimpl.MessageState
120	sizeCache     protoimpl.SizeCache
121	unknownFields protoimpl.UnknownFields
122
123	Major *int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"`
124	Minor *int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"`
125	Patch *int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"`
126	// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
127	// be empty for mainline stable releases.
128	Suffix *string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"`
129}
130
131func (x *Version) Reset() {
132	*x = Version{}
133	if protoimpl.UnsafeEnabled {
134		mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[0]
135		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
136		ms.StoreMessageInfo(mi)
137	}
138}
139
140func (x *Version) String() string {
141	return protoimpl.X.MessageStringOf(x)
142}
143
144func (*Version) ProtoMessage() {}
145
146func (x *Version) ProtoReflect() protoreflect.Message {
147	mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[0]
148	if protoimpl.UnsafeEnabled && x != nil {
149		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
150		if ms.LoadMessageInfo() == nil {
151			ms.StoreMessageInfo(mi)
152		}
153		return ms
154	}
155	return mi.MessageOf(x)
156}
157
158// Deprecated: Use Version.ProtoReflect.Descriptor instead.
159func (*Version) Descriptor() ([]byte, []int) {
160	return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{0}
161}
162
163func (x *Version) GetMajor() int32 {
164	if x != nil && x.Major != nil {
165		return *x.Major
166	}
167	return 0
168}
169
170func (x *Version) GetMinor() int32 {
171	if x != nil && x.Minor != nil {
172		return *x.Minor
173	}
174	return 0
175}
176
177func (x *Version) GetPatch() int32 {
178	if x != nil && x.Patch != nil {
179		return *x.Patch
180	}
181	return 0
182}
183
184func (x *Version) GetSuffix() string {
185	if x != nil && x.Suffix != nil {
186		return *x.Suffix
187	}
188	return ""
189}
190
191// An encoded CodeGeneratorRequest is written to the plugin's stdin.
192type CodeGeneratorRequest struct {
193	state         protoimpl.MessageState
194	sizeCache     protoimpl.SizeCache
195	unknownFields protoimpl.UnknownFields
196
197	// The .proto files that were explicitly listed on the command-line.  The
198	// code generator should generate code only for these files.  Each file's
199	// descriptor will be included in proto_file, below.
200	FileToGenerate []string `protobuf:"bytes,1,rep,name=file_to_generate,json=fileToGenerate" json:"file_to_generate,omitempty"`
201	// The generator parameter passed on the command-line.
202	Parameter *string `protobuf:"bytes,2,opt,name=parameter" json:"parameter,omitempty"`
203	// FileDescriptorProtos for all files in files_to_generate and everything
204	// they import.  The files will appear in topological order, so each file
205	// appears before any file that imports it.
206	//
207	// protoc guarantees that all proto_files will be written after
208	// the fields above, even though this is not technically guaranteed by the
209	// protobuf wire format.  This theoretically could allow a plugin to stream
210	// in the FileDescriptorProtos and handle them one by one rather than read
211	// the entire set into memory at once.  However, as of this writing, this
212	// is not similarly optimized on protoc's end -- it will store all fields in
213	// memory at once before sending them to the plugin.
214	//
215	// Type names of fields and extensions in the FileDescriptorProto are always
216	// fully qualified.
217	ProtoFile []*descriptorpb.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"`
218	// The version number of protocol compiler.
219	CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"`
220}
221
222func (x *CodeGeneratorRequest) Reset() {
223	*x = CodeGeneratorRequest{}
224	if protoimpl.UnsafeEnabled {
225		mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[1]
226		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
227		ms.StoreMessageInfo(mi)
228	}
229}
230
231func (x *CodeGeneratorRequest) String() string {
232	return protoimpl.X.MessageStringOf(x)
233}
234
235func (*CodeGeneratorRequest) ProtoMessage() {}
236
237func (x *CodeGeneratorRequest) ProtoReflect() protoreflect.Message {
238	mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[1]
239	if protoimpl.UnsafeEnabled && x != nil {
240		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
241		if ms.LoadMessageInfo() == nil {
242			ms.StoreMessageInfo(mi)
243		}
244		return ms
245	}
246	return mi.MessageOf(x)
247}
248
249// Deprecated: Use CodeGeneratorRequest.ProtoReflect.Descriptor instead.
250func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) {
251	return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{1}
252}
253
254func (x *CodeGeneratorRequest) GetFileToGenerate() []string {
255	if x != nil {
256		return x.FileToGenerate
257	}
258	return nil
259}
260
261func (x *CodeGeneratorRequest) GetParameter() string {
262	if x != nil && x.Parameter != nil {
263		return *x.Parameter
264	}
265	return ""
266}
267
268func (x *CodeGeneratorRequest) GetProtoFile() []*descriptorpb.FileDescriptorProto {
269	if x != nil {
270		return x.ProtoFile
271	}
272	return nil
273}
274
275func (x *CodeGeneratorRequest) GetCompilerVersion() *Version {
276	if x != nil {
277		return x.CompilerVersion
278	}
279	return nil
280}
281
282// The plugin writes an encoded CodeGeneratorResponse to stdout.
283type CodeGeneratorResponse struct {
284	state         protoimpl.MessageState
285	sizeCache     protoimpl.SizeCache
286	unknownFields protoimpl.UnknownFields
287
288	// Error message.  If non-empty, code generation failed.  The plugin process
289	// should exit with status code zero even if it reports an error in this way.
290	//
291	// This should be used to indicate errors in .proto files which prevent the
292	// code generator from generating correct code.  Errors which indicate a
293	// problem in protoc itself -- such as the input CodeGeneratorRequest being
294	// unparseable -- should be reported by writing a message to stderr and
295	// exiting with a non-zero status code.
296	Error *string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
297	// A bitmask of supported features that the code generator supports.
298	// This is a bitwise "or" of values from the Feature enum.
299	SupportedFeatures *uint64                       `protobuf:"varint,2,opt,name=supported_features,json=supportedFeatures" json:"supported_features,omitempty"`
300	File              []*CodeGeneratorResponse_File `protobuf:"bytes,15,rep,name=file" json:"file,omitempty"`
301}
302
303func (x *CodeGeneratorResponse) Reset() {
304	*x = CodeGeneratorResponse{}
305	if protoimpl.UnsafeEnabled {
306		mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[2]
307		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
308		ms.StoreMessageInfo(mi)
309	}
310}
311
312func (x *CodeGeneratorResponse) String() string {
313	return protoimpl.X.MessageStringOf(x)
314}
315
316func (*CodeGeneratorResponse) ProtoMessage() {}
317
318func (x *CodeGeneratorResponse) ProtoReflect() protoreflect.Message {
319	mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[2]
320	if protoimpl.UnsafeEnabled && x != nil {
321		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
322		if ms.LoadMessageInfo() == nil {
323			ms.StoreMessageInfo(mi)
324		}
325		return ms
326	}
327	return mi.MessageOf(x)
328}
329
330// Deprecated: Use CodeGeneratorResponse.ProtoReflect.Descriptor instead.
331func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) {
332	return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2}
333}
334
335func (x *CodeGeneratorResponse) GetError() string {
336	if x != nil && x.Error != nil {
337		return *x.Error
338	}
339	return ""
340}
341
342func (x *CodeGeneratorResponse) GetSupportedFeatures() uint64 {
343	if x != nil && x.SupportedFeatures != nil {
344		return *x.SupportedFeatures
345	}
346	return 0
347}
348
349func (x *CodeGeneratorResponse) GetFile() []*CodeGeneratorResponse_File {
350	if x != nil {
351		return x.File
352	}
353	return nil
354}
355
356// Represents a single generated file.
357type CodeGeneratorResponse_File struct {
358	state         protoimpl.MessageState
359	sizeCache     protoimpl.SizeCache
360	unknownFields protoimpl.UnknownFields
361
362	// The file name, relative to the output directory.  The name must not
363	// contain "." or ".." components and must be relative, not be absolute (so,
364	// the file cannot lie outside the output directory).  "/" must be used as
365	// the path separator, not "\".
366	//
367	// If the name is omitted, the content will be appended to the previous
368	// file.  This allows the generator to break large files into small chunks,
369	// and allows the generated text to be streamed back to protoc so that large
370	// files need not reside completely in memory at one time.  Note that as of
371	// this writing protoc does not optimize for this -- it will read the entire
372	// CodeGeneratorResponse before writing files to disk.
373	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
374	// If non-empty, indicates that the named file should already exist, and the
375	// content here is to be inserted into that file at a defined insertion
376	// point.  This feature allows a code generator to extend the output
377	// produced by another code generator.  The original generator may provide
378	// insertion points by placing special annotations in the file that look
379	// like:
380	//   @@protoc_insertion_point(NAME)
381	// The annotation can have arbitrary text before and after it on the line,
382	// which allows it to be placed in a comment.  NAME should be replaced with
383	// an identifier naming the point -- this is what other generators will use
384	// as the insertion_point.  Code inserted at this point will be placed
385	// immediately above the line containing the insertion point (thus multiple
386	// insertions to the same point will come out in the order they were added).
387	// The double-@ is intended to make it unlikely that the generated code
388	// could contain things that look like insertion points by accident.
389	//
390	// For example, the C++ code generator places the following line in the
391	// .pb.h files that it generates:
392	//   // @@protoc_insertion_point(namespace_scope)
393	// This line appears within the scope of the file's package namespace, but
394	// outside of any particular class.  Another plugin can then specify the
395	// insertion_point "namespace_scope" to generate additional classes or
396	// other declarations that should be placed in this scope.
397	//
398	// Note that if the line containing the insertion point begins with
399	// whitespace, the same whitespace will be added to every line of the
400	// inserted text.  This is useful for languages like Python, where
401	// indentation matters.  In these languages, the insertion point comment
402	// should be indented the same amount as any inserted code will need to be
403	// in order to work correctly in that context.
404	//
405	// The code generator that generates the initial file and the one which
406	// inserts into it must both run as part of a single invocation of protoc.
407	// Code generators are executed in the order in which they appear on the
408	// command line.
409	//
410	// If |insertion_point| is present, |name| must also be present.
411	InsertionPoint *string `protobuf:"bytes,2,opt,name=insertion_point,json=insertionPoint" json:"insertion_point,omitempty"`
412	// The file contents.
413	Content *string `protobuf:"bytes,15,opt,name=content" json:"content,omitempty"`
414	// Information describing the file content being inserted. If an insertion
415	// point is used, this information will be appropriately offset and inserted
416	// into the code generation metadata for the generated files.
417	GeneratedCodeInfo *descriptorpb.GeneratedCodeInfo `protobuf:"bytes,16,opt,name=generated_code_info,json=generatedCodeInfo" json:"generated_code_info,omitempty"`
418}
419
420func (x *CodeGeneratorResponse_File) Reset() {
421	*x = CodeGeneratorResponse_File{}
422	if protoimpl.UnsafeEnabled {
423		mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[3]
424		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
425		ms.StoreMessageInfo(mi)
426	}
427}
428
429func (x *CodeGeneratorResponse_File) String() string {
430	return protoimpl.X.MessageStringOf(x)
431}
432
433func (*CodeGeneratorResponse_File) ProtoMessage() {}
434
435func (x *CodeGeneratorResponse_File) ProtoReflect() protoreflect.Message {
436	mi := &file_google_protobuf_compiler_plugin_proto_msgTypes[3]
437	if protoimpl.UnsafeEnabled && x != nil {
438		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
439		if ms.LoadMessageInfo() == nil {
440			ms.StoreMessageInfo(mi)
441		}
442		return ms
443	}
444	return mi.MessageOf(x)
445}
446
447// Deprecated: Use CodeGeneratorResponse_File.ProtoReflect.Descriptor instead.
448func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) {
449	return file_google_protobuf_compiler_plugin_proto_rawDescGZIP(), []int{2, 0}
450}
451
452func (x *CodeGeneratorResponse_File) GetName() string {
453	if x != nil && x.Name != nil {
454		return *x.Name
455	}
456	return ""
457}
458
459func (x *CodeGeneratorResponse_File) GetInsertionPoint() string {
460	if x != nil && x.InsertionPoint != nil {
461		return *x.InsertionPoint
462	}
463	return ""
464}
465
466func (x *CodeGeneratorResponse_File) GetContent() string {
467	if x != nil && x.Content != nil {
468		return *x.Content
469	}
470	return ""
471}
472
473func (x *CodeGeneratorResponse_File) GetGeneratedCodeInfo() *descriptorpb.GeneratedCodeInfo {
474	if x != nil {
475		return x.GeneratedCodeInfo
476	}
477	return nil
478}
479
480var File_google_protobuf_compiler_plugin_proto protoreflect.FileDescriptor
481
482var file_google_protobuf_compiler_plugin_proto_rawDesc = []byte{
483	0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
484	0x66, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69,
485	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
486	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
487	0x72, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
488	0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72,
489	0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14,
490	0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d,
491	0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20,
492	0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61,
493	0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68,
494	0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
495	0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x22, 0xf1, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x64,
496	0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
497	0x74, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e,
498	0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c,
499	0x65, 0x54, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70,
500	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
501	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
502	0x74, 0x6f, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
503	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
504	0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72,
505	0x6f, 0x74, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4c,
506	0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
507	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
508	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69,
509	0x6c, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, 0x6d,
510	0x70, 0x69, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x03, 0x0a,
511	0x15, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65,
512	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
513	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x12,
514	0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
515	0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
516	0x74, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x04, 0x66,
517	0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
518	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70,
519	0x69, 0x6c, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
520	0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52,
521	0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0xb1, 0x01, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12,
522	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
523	0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
524	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x73,
525	0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63,
526	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
527	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
528	0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01,
529	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
530	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f,
531	0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
532	0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x07, 0x46, 0x65, 0x61,
533	0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f,
534	0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52,
535	0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x33, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41,
536	0x4c, 0x10, 0x01, 0x42, 0x57, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
537	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69,
538	0x6c, 0x65, 0x72, 0x42, 0x0c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
539	0x73, 0x5a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
540	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79,
541	0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x70, 0x62,
542}
543
544var (
545	file_google_protobuf_compiler_plugin_proto_rawDescOnce sync.Once
546	file_google_protobuf_compiler_plugin_proto_rawDescData = file_google_protobuf_compiler_plugin_proto_rawDesc
547)
548
549func file_google_protobuf_compiler_plugin_proto_rawDescGZIP() []byte {
550	file_google_protobuf_compiler_plugin_proto_rawDescOnce.Do(func() {
551		file_google_protobuf_compiler_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_compiler_plugin_proto_rawDescData)
552	})
553	return file_google_protobuf_compiler_plugin_proto_rawDescData
554}
555
556var file_google_protobuf_compiler_plugin_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
557var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
558var file_google_protobuf_compiler_plugin_proto_goTypes = []interface{}{
559	(CodeGeneratorResponse_Feature)(0),       // 0: google.protobuf.compiler.CodeGeneratorResponse.Feature
560	(*Version)(nil),                          // 1: google.protobuf.compiler.Version
561	(*CodeGeneratorRequest)(nil),             // 2: google.protobuf.compiler.CodeGeneratorRequest
562	(*CodeGeneratorResponse)(nil),            // 3: google.protobuf.compiler.CodeGeneratorResponse
563	(*CodeGeneratorResponse_File)(nil),       // 4: google.protobuf.compiler.CodeGeneratorResponse.File
564	(*descriptorpb.FileDescriptorProto)(nil), // 5: google.protobuf.FileDescriptorProto
565	(*descriptorpb.GeneratedCodeInfo)(nil),   // 6: google.protobuf.GeneratedCodeInfo
566}
567var file_google_protobuf_compiler_plugin_proto_depIdxs = []int32{
568	5, // 0: google.protobuf.compiler.CodeGeneratorRequest.proto_file:type_name -> google.protobuf.FileDescriptorProto
569	1, // 1: google.protobuf.compiler.CodeGeneratorRequest.compiler_version:type_name -> google.protobuf.compiler.Version
570	4, // 2: google.protobuf.compiler.CodeGeneratorResponse.file:type_name -> google.protobuf.compiler.CodeGeneratorResponse.File
571	6, // 3: google.protobuf.compiler.CodeGeneratorResponse.File.generated_code_info:type_name -> google.protobuf.GeneratedCodeInfo
572	4, // [4:4] is the sub-list for method output_type
573	4, // [4:4] is the sub-list for method input_type
574	4, // [4:4] is the sub-list for extension type_name
575	4, // [4:4] is the sub-list for extension extendee
576	0, // [0:4] is the sub-list for field type_name
577}
578
579func init() { file_google_protobuf_compiler_plugin_proto_init() }
580func file_google_protobuf_compiler_plugin_proto_init() {
581	if File_google_protobuf_compiler_plugin_proto != nil {
582		return
583	}
584	if !protoimpl.UnsafeEnabled {
585		file_google_protobuf_compiler_plugin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
586			switch v := v.(*Version); i {
587			case 0:
588				return &v.state
589			case 1:
590				return &v.sizeCache
591			case 2:
592				return &v.unknownFields
593			default:
594				return nil
595			}
596		}
597		file_google_protobuf_compiler_plugin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
598			switch v := v.(*CodeGeneratorRequest); i {
599			case 0:
600				return &v.state
601			case 1:
602				return &v.sizeCache
603			case 2:
604				return &v.unknownFields
605			default:
606				return nil
607			}
608		}
609		file_google_protobuf_compiler_plugin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
610			switch v := v.(*CodeGeneratorResponse); i {
611			case 0:
612				return &v.state
613			case 1:
614				return &v.sizeCache
615			case 2:
616				return &v.unknownFields
617			default:
618				return nil
619			}
620		}
621		file_google_protobuf_compiler_plugin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
622			switch v := v.(*CodeGeneratorResponse_File); i {
623			case 0:
624				return &v.state
625			case 1:
626				return &v.sizeCache
627			case 2:
628				return &v.unknownFields
629			default:
630				return nil
631			}
632		}
633	}
634	type x struct{}
635	out := protoimpl.TypeBuilder{
636		File: protoimpl.DescBuilder{
637			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
638			RawDescriptor: file_google_protobuf_compiler_plugin_proto_rawDesc,
639			NumEnums:      1,
640			NumMessages:   4,
641			NumExtensions: 0,
642			NumServices:   0,
643		},
644		GoTypes:           file_google_protobuf_compiler_plugin_proto_goTypes,
645		DependencyIndexes: file_google_protobuf_compiler_plugin_proto_depIdxs,
646		EnumInfos:         file_google_protobuf_compiler_plugin_proto_enumTypes,
647		MessageInfos:      file_google_protobuf_compiler_plugin_proto_msgTypes,
648	}.Build()
649	File_google_protobuf_compiler_plugin_proto = out.File
650	file_google_protobuf_compiler_plugin_proto_rawDesc = nil
651	file_google_protobuf_compiler_plugin_proto_goTypes = nil
652	file_google_protobuf_compiler_plugin_proto_depIdxs = nil
653}
654