// Copyright 2014 The Bazel Authors. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // This file contains the protocol buffer representation of a build // file or 'blaze query --output=proto' call. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 // protoc v3.21.3 // source: src/main/protobuf/build.proto package build import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // Indicates what to do when a source file is actually a symlink. type FilesetEntry_SymlinkBehavior int32 const ( FilesetEntry_COPY FilesetEntry_SymlinkBehavior = 1 FilesetEntry_DEREFERENCE FilesetEntry_SymlinkBehavior = 2 ) // Enum value maps for FilesetEntry_SymlinkBehavior. var ( FilesetEntry_SymlinkBehavior_name = map[int32]string{ 1: "COPY", 2: "DEREFERENCE", } FilesetEntry_SymlinkBehavior_value = map[string]int32{ "COPY": 1, "DEREFERENCE": 2, } ) func (x FilesetEntry_SymlinkBehavior) Enum() *FilesetEntry_SymlinkBehavior { p := new(FilesetEntry_SymlinkBehavior) *p = x return p } func (x FilesetEntry_SymlinkBehavior) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FilesetEntry_SymlinkBehavior) Descriptor() protoreflect.EnumDescriptor { return file_src_main_protobuf_build_proto_enumTypes[0].Descriptor() } func (FilesetEntry_SymlinkBehavior) Type() protoreflect.EnumType { return &file_src_main_protobuf_build_proto_enumTypes[0] } func (x FilesetEntry_SymlinkBehavior) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FilesetEntry_SymlinkBehavior) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FilesetEntry_SymlinkBehavior(num) return nil } // Deprecated: Use FilesetEntry_SymlinkBehavior.Descriptor instead. func (FilesetEntry_SymlinkBehavior) EnumDescriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{6, 0} } // Indicates the type of attribute. type Attribute_Discriminator int32 const ( Attribute_INTEGER Attribute_Discriminator = 1 // int_value Attribute_STRING Attribute_Discriminator = 2 // string_value Attribute_LABEL Attribute_Discriminator = 3 // string_value Attribute_OUTPUT Attribute_Discriminator = 4 // string_value Attribute_STRING_LIST Attribute_Discriminator = 5 // string_list_value Attribute_LABEL_LIST Attribute_Discriminator = 6 // string_list_value Attribute_OUTPUT_LIST Attribute_Discriminator = 7 // string_list_value Attribute_DISTRIBUTION_SET Attribute_Discriminator = 8 // string_list_value - order is unimportant Attribute_LICENSE Attribute_Discriminator = 9 // license Attribute_STRING_DICT Attribute_Discriminator = 10 // string_dict_value Attribute_FILESET_ENTRY_LIST Attribute_Discriminator = 11 // fileset_list_value Attribute_LABEL_LIST_DICT Attribute_Discriminator = 12 // label_list_dict_value Attribute_STRING_LIST_DICT Attribute_Discriminator = 13 // string_list_dict_value Attribute_BOOLEAN Attribute_Discriminator = 14 // int, bool and string value Attribute_TRISTATE Attribute_Discriminator = 15 // tristate, int and string value Attribute_INTEGER_LIST Attribute_Discriminator = 16 // int_list_value Attribute_UNKNOWN Attribute_Discriminator = 18 // unknown type, use only for build extensions Attribute_LABEL_DICT_UNARY Attribute_Discriminator = 19 // label_dict_unary_value Attribute_SELECTOR_LIST Attribute_Discriminator = 20 // selector_list Attribute_LABEL_KEYED_STRING_DICT Attribute_Discriminator = 21 // label_keyed_string_dict Attribute_DEPRECATED_STRING_DICT_UNARY Attribute_Discriminator = 17 ) // Enum value maps for Attribute_Discriminator. var ( Attribute_Discriminator_name = map[int32]string{ 1: "INTEGER", 2: "STRING", 3: "LABEL", 4: "OUTPUT", 5: "STRING_LIST", 6: "LABEL_LIST", 7: "OUTPUT_LIST", 8: "DISTRIBUTION_SET", 9: "LICENSE", 10: "STRING_DICT", 11: "FILESET_ENTRY_LIST", 12: "LABEL_LIST_DICT", 13: "STRING_LIST_DICT", 14: "BOOLEAN", 15: "TRISTATE", 16: "INTEGER_LIST", 18: "UNKNOWN", 19: "LABEL_DICT_UNARY", 20: "SELECTOR_LIST", 21: "LABEL_KEYED_STRING_DICT", 17: "DEPRECATED_STRING_DICT_UNARY", } Attribute_Discriminator_value = map[string]int32{ "INTEGER": 1, "STRING": 2, "LABEL": 3, "OUTPUT": 4, "STRING_LIST": 5, "LABEL_LIST": 6, "OUTPUT_LIST": 7, "DISTRIBUTION_SET": 8, "LICENSE": 9, "STRING_DICT": 10, "FILESET_ENTRY_LIST": 11, "LABEL_LIST_DICT": 12, "STRING_LIST_DICT": 13, "BOOLEAN": 14, "TRISTATE": 15, "INTEGER_LIST": 16, "UNKNOWN": 18, "LABEL_DICT_UNARY": 19, "SELECTOR_LIST": 20, "LABEL_KEYED_STRING_DICT": 21, "DEPRECATED_STRING_DICT_UNARY": 17, } ) func (x Attribute_Discriminator) Enum() *Attribute_Discriminator { p := new(Attribute_Discriminator) *p = x return p } func (x Attribute_Discriminator) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Attribute_Discriminator) Descriptor() protoreflect.EnumDescriptor { return file_src_main_protobuf_build_proto_enumTypes[1].Descriptor() } func (Attribute_Discriminator) Type() protoreflect.EnumType { return &file_src_main_protobuf_build_proto_enumTypes[1] } func (x Attribute_Discriminator) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Attribute_Discriminator) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Attribute_Discriminator(num) return nil } // Deprecated: Use Attribute_Discriminator.Descriptor instead. func (Attribute_Discriminator) EnumDescriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7, 0} } // Values for the TriState field type. type Attribute_Tristate int32 const ( Attribute_NO Attribute_Tristate = 0 Attribute_YES Attribute_Tristate = 1 Attribute_AUTO Attribute_Tristate = 2 ) // Enum value maps for Attribute_Tristate. var ( Attribute_Tristate_name = map[int32]string{ 0: "NO", 1: "YES", 2: "AUTO", } Attribute_Tristate_value = map[string]int32{ "NO": 0, "YES": 1, "AUTO": 2, } ) func (x Attribute_Tristate) Enum() *Attribute_Tristate { p := new(Attribute_Tristate) *p = x return p } func (x Attribute_Tristate) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Attribute_Tristate) Descriptor() protoreflect.EnumDescriptor { return file_src_main_protobuf_build_proto_enumTypes[2].Descriptor() } func (Attribute_Tristate) Type() protoreflect.EnumType { return &file_src_main_protobuf_build_proto_enumTypes[2] } func (x Attribute_Tristate) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Attribute_Tristate) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Attribute_Tristate(num) return nil } // Deprecated: Use Attribute_Tristate.Descriptor instead. func (Attribute_Tristate) EnumDescriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7, 1} } type Target_Discriminator int32 const ( Target_RULE Target_Discriminator = 1 Target_SOURCE_FILE Target_Discriminator = 2 Target_GENERATED_FILE Target_Discriminator = 3 Target_PACKAGE_GROUP Target_Discriminator = 4 Target_ENVIRONMENT_GROUP Target_Discriminator = 5 ) // Enum value maps for Target_Discriminator. var ( Target_Discriminator_name = map[int32]string{ 1: "RULE", 2: "SOURCE_FILE", 3: "GENERATED_FILE", 4: "PACKAGE_GROUP", 5: "ENVIRONMENT_GROUP", } Target_Discriminator_value = map[string]int32{ "RULE": 1, "SOURCE_FILE": 2, "GENERATED_FILE": 3, "PACKAGE_GROUP": 4, "ENVIRONMENT_GROUP": 5, } ) func (x Target_Discriminator) Enum() *Target_Discriminator { p := new(Target_Discriminator) *p = x return p } func (x Target_Discriminator) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Target_Discriminator) Descriptor() protoreflect.EnumDescriptor { return file_src_main_protobuf_build_proto_enumTypes[3].Descriptor() } func (Target_Discriminator) Type() protoreflect.EnumType { return &file_src_main_protobuf_build_proto_enumTypes[3] } func (x Target_Discriminator) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *Target_Discriminator) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = Target_Discriminator(num) return nil } // Deprecated: Use Target_Discriminator.Descriptor instead. func (Target_Discriminator) EnumDescriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{15, 0} } type AllowedRuleClassInfo_AllowedRuleClasses int32 const ( AllowedRuleClassInfo_ANY AllowedRuleClassInfo_AllowedRuleClasses = 1 // Any rule is allowed to be in this attribute AllowedRuleClassInfo_SPECIFIED AllowedRuleClassInfo_AllowedRuleClasses = 2 // Only the explicitly listed rules are allowed ) // Enum value maps for AllowedRuleClassInfo_AllowedRuleClasses. var ( AllowedRuleClassInfo_AllowedRuleClasses_name = map[int32]string{ 1: "ANY", 2: "SPECIFIED", } AllowedRuleClassInfo_AllowedRuleClasses_value = map[string]int32{ "ANY": 1, "SPECIFIED": 2, } ) func (x AllowedRuleClassInfo_AllowedRuleClasses) Enum() *AllowedRuleClassInfo_AllowedRuleClasses { p := new(AllowedRuleClassInfo_AllowedRuleClasses) *p = x return p } func (x AllowedRuleClassInfo_AllowedRuleClasses) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AllowedRuleClassInfo_AllowedRuleClasses) Descriptor() protoreflect.EnumDescriptor { return file_src_main_protobuf_build_proto_enumTypes[4].Descriptor() } func (AllowedRuleClassInfo_AllowedRuleClasses) Type() protoreflect.EnumType { return &file_src_main_protobuf_build_proto_enumTypes[4] } func (x AllowedRuleClassInfo_AllowedRuleClasses) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *AllowedRuleClassInfo_AllowedRuleClasses) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = AllowedRuleClassInfo_AllowedRuleClasses(num) return nil } // Deprecated: Use AllowedRuleClassInfo_AllowedRuleClasses.Descriptor instead. func (AllowedRuleClassInfo_AllowedRuleClasses) EnumDescriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{17, 0} } type License struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LicenseType []string `protobuf:"bytes,1,rep,name=license_type,json=licenseType" json:"license_type,omitempty"` Exception []string `protobuf:"bytes,2,rep,name=exception" json:"exception,omitempty"` } func (x *License) Reset() { *x = License{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *License) String() string { return protoimpl.X.MessageStringOf(x) } func (*License) ProtoMessage() {} func (x *License) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use License.ProtoReflect.Descriptor instead. func (*License) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{0} } func (x *License) GetLicenseType() []string { if x != nil { return x.LicenseType } return nil } func (x *License) GetException() []string { if x != nil { return x.Exception } return nil } type StringDictEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` } func (x *StringDictEntry) Reset() { *x = StringDictEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StringDictEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*StringDictEntry) ProtoMessage() {} func (x *StringDictEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StringDictEntry.ProtoReflect.Descriptor instead. func (*StringDictEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{1} } func (x *StringDictEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *StringDictEntry) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } type LabelDictUnaryEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` } func (x *LabelDictUnaryEntry) Reset() { *x = LabelDictUnaryEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LabelDictUnaryEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*LabelDictUnaryEntry) ProtoMessage() {} func (x *LabelDictUnaryEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LabelDictUnaryEntry.ProtoReflect.Descriptor instead. func (*LabelDictUnaryEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{2} } func (x *LabelDictUnaryEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *LabelDictUnaryEntry) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } type LabelListDictEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` } func (x *LabelListDictEntry) Reset() { *x = LabelListDictEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LabelListDictEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*LabelListDictEntry) ProtoMessage() {} func (x *LabelListDictEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LabelListDictEntry.ProtoReflect.Descriptor instead. func (*LabelListDictEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{3} } func (x *LabelListDictEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *LabelListDictEntry) GetValue() []string { if x != nil { return x.Value } return nil } type LabelKeyedStringDictEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` } func (x *LabelKeyedStringDictEntry) Reset() { *x = LabelKeyedStringDictEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LabelKeyedStringDictEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*LabelKeyedStringDictEntry) ProtoMessage() {} func (x *LabelKeyedStringDictEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LabelKeyedStringDictEntry.ProtoReflect.Descriptor instead. func (*LabelKeyedStringDictEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{4} } func (x *LabelKeyedStringDictEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *LabelKeyedStringDictEntry) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } type StringListDictEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` } func (x *StringListDictEntry) Reset() { *x = StringListDictEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StringListDictEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*StringListDictEntry) ProtoMessage() {} func (x *StringListDictEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StringListDictEntry.ProtoReflect.Descriptor instead. func (*StringListDictEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{5} } func (x *StringListDictEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *StringListDictEntry) GetValue() []string { if x != nil { return x.Value } return nil } // Represents an entry attribute of a Fileset rule in a build file. type FilesetEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The label pointing to the source target where files are copied from. Source *string `protobuf:"bytes,1,req,name=source" json:"source,omitempty"` // The relative path within the fileset rule where files will be mapped. DestinationDirectory *string `protobuf:"bytes,2,req,name=destination_directory,json=destinationDirectory" json:"destination_directory,omitempty"` // Whether the files= attribute was specified. This is necessary because // no files= attribute and files=[] mean different things. FilesPresent *bool `protobuf:"varint,7,opt,name=files_present,json=filesPresent" json:"files_present,omitempty"` // A list of file labels to include from the source directory. File []string `protobuf:"bytes,3,rep,name=file" json:"file,omitempty"` // If this is a fileset entry representing files within the rule // package, this lists relative paths to files that should be excluded from // the set. This cannot contain values if 'file' also has values. Exclude []string `protobuf:"bytes,4,rep,name=exclude" json:"exclude,omitempty"` // This field is optional because there will be some time when the new // PB is used by tools depending on blaze query, but the new blaze version // is not yet released. // TODO(bazel-team): Make this field required once a version of Blaze is // released that outputs this field. SymlinkBehavior *FilesetEntry_SymlinkBehavior `protobuf:"varint,5,opt,name=symlink_behavior,json=symlinkBehavior,enum=blaze_query.FilesetEntry_SymlinkBehavior,def=1" json:"symlink_behavior,omitempty"` // The prefix to strip from the path of the files in this FilesetEntry. Note // that no value and the empty string as the value mean different things here. StripPrefix *string `protobuf:"bytes,6,opt,name=strip_prefix,json=stripPrefix" json:"strip_prefix,omitempty"` } // Default values for FilesetEntry fields. const ( Default_FilesetEntry_SymlinkBehavior = FilesetEntry_COPY ) func (x *FilesetEntry) Reset() { *x = FilesetEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FilesetEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*FilesetEntry) ProtoMessage() {} func (x *FilesetEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FilesetEntry.ProtoReflect.Descriptor instead. func (*FilesetEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{6} } func (x *FilesetEntry) GetSource() string { if x != nil && x.Source != nil { return *x.Source } return "" } func (x *FilesetEntry) GetDestinationDirectory() string { if x != nil && x.DestinationDirectory != nil { return *x.DestinationDirectory } return "" } func (x *FilesetEntry) GetFilesPresent() bool { if x != nil && x.FilesPresent != nil { return *x.FilesPresent } return false } func (x *FilesetEntry) GetFile() []string { if x != nil { return x.File } return nil } func (x *FilesetEntry) GetExclude() []string { if x != nil { return x.Exclude } return nil } func (x *FilesetEntry) GetSymlinkBehavior() FilesetEntry_SymlinkBehavior { if x != nil && x.SymlinkBehavior != nil { return *x.SymlinkBehavior } return Default_FilesetEntry_SymlinkBehavior } func (x *FilesetEntry) GetStripPrefix() string { if x != nil && x.StripPrefix != nil { return *x.StripPrefix } return "" } // A rule attribute. Each attribute must have a type and one of the various // value fields populated - for the most part. // // Attributes of BOOLEAN and TRISTATE type may set all of the int, bool, and // string values for backwards compatibility with clients that expect them to // be set. // // Attributes of INTEGER, STRING, LABEL, LICENSE, BOOLEAN, and TRISTATE type // may set *none* of the values. This can happen if the Attribute message is // prepared for a client that doesn't support SELECTOR_LIST, but the rule has // a selector list value for the attribute. (Selector lists for attributes of // other types--the collection types--are handled differently when prepared // for such a client. The possible collection values are gathered together // and flattened.) // // By checking the type, the appropriate value can be extracted - see the // comments on each type for the associated value. The order of lists comes // from the blaze parsing. If an attribute is of a list type, the associated // list should never be empty. type Attribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the attribute Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // Whether the attribute was explicitly specified ExplicitlySpecified *bool `protobuf:"varint,13,opt,name=explicitly_specified,json=explicitlySpecified" json:"explicitly_specified,omitempty"` // If this attribute has a string value or a string list value, then this // may be set to indicate that the value may be treated as a label that // isn't a dependency of this attribute's rule. Nodep *bool `protobuf:"varint,20,opt,name=nodep" json:"nodep,omitempty"` // The type of attribute. This message is used for all of the different // attribute types so the discriminator helps for figuring out what is // stored in the message. Type *Attribute_Discriminator `protobuf:"varint,2,req,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` // If this attribute has an integer value this will be populated. // Boolean and TriState also use this field as [0,1] and [-1,0,1] // for [false, true] and [auto, no, yes] respectively. IntValue *int32 `protobuf:"varint,3,opt,name=int_value,json=intValue" json:"int_value,omitempty"` // If the attribute has a string value this will be populated. Label and // path attributes use this field as the value even though the type may // be LABEL or something else other than STRING. StringValue *string `protobuf:"bytes,5,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` // If the attribute has a boolean value this will be populated. BooleanValue *bool `protobuf:"varint,14,opt,name=boolean_value,json=booleanValue" json:"boolean_value,omitempty"` // If the attribute is a Tristate value, this will be populated. TristateValue *Attribute_Tristate `protobuf:"varint,15,opt,name=tristate_value,json=tristateValue,enum=blaze_query.Attribute_Tristate" json:"tristate_value,omitempty"` // The value of the attribute has a list of string values (label and path // note from STRING applies here as well). StringListValue []string `protobuf:"bytes,6,rep,name=string_list_value,json=stringListValue" json:"string_list_value,omitempty"` // If this is a license attribute, the license information is stored here. License *License `protobuf:"bytes,7,opt,name=license" json:"license,omitempty"` // If this is a string dict, each entry will be stored here. StringDictValue []*StringDictEntry `protobuf:"bytes,8,rep,name=string_dict_value,json=stringDictValue" json:"string_dict_value,omitempty"` // If the attribute is part of a Fileset, the fileset entries are stored in // this field. FilesetListValue []*FilesetEntry `protobuf:"bytes,9,rep,name=fileset_list_value,json=filesetListValue" json:"fileset_list_value,omitempty"` // If this is a label list dict, each entry will be stored here. LabelListDictValue []*LabelListDictEntry `protobuf:"bytes,10,rep,name=label_list_dict_value,json=labelListDictValue" json:"label_list_dict_value,omitempty"` // If this is a string list dict, each entry will be stored here. StringListDictValue []*StringListDictEntry `protobuf:"bytes,11,rep,name=string_list_dict_value,json=stringListDictValue" json:"string_list_dict_value,omitempty"` // The value of the attribute has a list of int32 values IntListValue []int32 `protobuf:"varint,17,rep,name=int_list_value,json=intListValue" json:"int_list_value,omitempty"` // If this is a label dict unary, each entry will be stored here. LabelDictUnaryValue []*LabelDictUnaryEntry `protobuf:"bytes,19,rep,name=label_dict_unary_value,json=labelDictUnaryValue" json:"label_dict_unary_value,omitempty"` // If this is a label-keyed string dict, each entry will be stored here. LabelKeyedStringDictValue []*LabelKeyedStringDictEntry `protobuf:"bytes,22,rep,name=label_keyed_string_dict_value,json=labelKeyedStringDictValue" json:"label_keyed_string_dict_value,omitempty"` // If this attribute's value is an expression containing one or more select // expressions, then its type is SELECTOR_LIST and a SelectorList will be // stored here. SelectorList *Attribute_SelectorList `protobuf:"bytes,21,opt,name=selector_list,json=selectorList" json:"selector_list,omitempty"` DEPRECATEDStringDictUnaryValue [][]byte `protobuf:"bytes,18,rep,name=DEPRECATED_string_dict_unary_value,json=DEPRECATEDStringDictUnaryValue" json:"DEPRECATED_string_dict_unary_value,omitempty"` } func (x *Attribute) Reset() { *x = Attribute{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Attribute) String() string { return protoimpl.X.MessageStringOf(x) } func (*Attribute) ProtoMessage() {} func (x *Attribute) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Attribute.ProtoReflect.Descriptor instead. func (*Attribute) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7} } func (x *Attribute) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *Attribute) GetExplicitlySpecified() bool { if x != nil && x.ExplicitlySpecified != nil { return *x.ExplicitlySpecified } return false } func (x *Attribute) GetNodep() bool { if x != nil && x.Nodep != nil { return *x.Nodep } return false } func (x *Attribute) GetType() Attribute_Discriminator { if x != nil && x.Type != nil { return *x.Type } return Attribute_INTEGER } func (x *Attribute) GetIntValue() int32 { if x != nil && x.IntValue != nil { return *x.IntValue } return 0 } func (x *Attribute) GetStringValue() string { if x != nil && x.StringValue != nil { return *x.StringValue } return "" } func (x *Attribute) GetBooleanValue() bool { if x != nil && x.BooleanValue != nil { return *x.BooleanValue } return false } func (x *Attribute) GetTristateValue() Attribute_Tristate { if x != nil && x.TristateValue != nil { return *x.TristateValue } return Attribute_NO } func (x *Attribute) GetStringListValue() []string { if x != nil { return x.StringListValue } return nil } func (x *Attribute) GetLicense() *License { if x != nil { return x.License } return nil } func (x *Attribute) GetStringDictValue() []*StringDictEntry { if x != nil { return x.StringDictValue } return nil } func (x *Attribute) GetFilesetListValue() []*FilesetEntry { if x != nil { return x.FilesetListValue } return nil } func (x *Attribute) GetLabelListDictValue() []*LabelListDictEntry { if x != nil { return x.LabelListDictValue } return nil } func (x *Attribute) GetStringListDictValue() []*StringListDictEntry { if x != nil { return x.StringListDictValue } return nil } func (x *Attribute) GetIntListValue() []int32 { if x != nil { return x.IntListValue } return nil } func (x *Attribute) GetLabelDictUnaryValue() []*LabelDictUnaryEntry { if x != nil { return x.LabelDictUnaryValue } return nil } func (x *Attribute) GetLabelKeyedStringDictValue() []*LabelKeyedStringDictEntry { if x != nil { return x.LabelKeyedStringDictValue } return nil } func (x *Attribute) GetSelectorList() *Attribute_SelectorList { if x != nil { return x.SelectorList } return nil } func (x *Attribute) GetDEPRECATEDStringDictUnaryValue() [][]byte { if x != nil { return x.DEPRECATEDStringDictUnaryValue } return nil } // A rule instance (e.g., cc_library foo, java_binary bar). type Rule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the rule (formatted as an absolute label, e.g. //foo/bar:baz). Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // The rule class (e.g., java_library) RuleClass *string `protobuf:"bytes,2,req,name=rule_class,json=ruleClass" json:"rule_class,omitempty"` // The BUILD file and line number of the location (formatted as // ::) in the rule's package's // BUILD file where the rule instance was instantiated. The line number will // be that of a rule invocation or macro call (that in turn invoked a // rule). See // https://bazel.build/rules/macros#macro-creation Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` // All of the attributes that describe the rule. Attribute []*Attribute `protobuf:"bytes,4,rep,name=attribute" json:"attribute,omitempty"` // All of the inputs to the rule (formatted as absolute labels). These are // predecessors in the dependency graph. RuleInput []string `protobuf:"bytes,5,rep,name=rule_input,json=ruleInput" json:"rule_input,omitempty"` ConfiguredRuleInput []*ConfiguredRuleInput `protobuf:"bytes,15,rep,name=configured_rule_input,json=configuredRuleInput" json:"configured_rule_input,omitempty"` // All of the outputs of the rule (formatted as absolute labels). These are // successors in the dependency graph. RuleOutput []string `protobuf:"bytes,6,rep,name=rule_output,json=ruleOutput" json:"rule_output,omitempty"` // The set of all "features" inherited from the rule's package declaration. DefaultSetting []string `protobuf:"bytes,7,rep,name=default_setting,json=defaultSetting" json:"default_setting,omitempty"` // The rule's class's public by default value. DEPRECATEDPublicByDefault *bool `protobuf:"varint,9,opt,name=DEPRECATED_public_by_default,json=DEPRECATEDPublicByDefault" json:"DEPRECATED_public_by_default,omitempty"` DEPRECATEDIsSkylark *bool `protobuf:"varint,10,opt,name=DEPRECATED_is_skylark,json=DEPRECATEDIsSkylark" json:"DEPRECATED_is_skylark,omitempty"` // Hash encapsulating the behavior of this Starlark rule. Any change to this // rule's definition that could change its behavior will be reflected here. SkylarkEnvironmentHashCode *string `protobuf:"bytes,12,opt,name=skylark_environment_hash_code,json=skylarkEnvironmentHashCode" json:"skylark_environment_hash_code,omitempty"` // The Starlark call stack at the moment the rule was instantiated. // Each entry has the form "file:line:col: function". // The outermost stack frame ("", the BUILD file) appears first; // the frame for the rule function itself is omitted. // The file name may be relative to package's source root directory. // // Requires --proto:instantiation_stack=true. InstantiationStack []string `protobuf:"bytes,13,rep,name=instantiation_stack,json=instantiationStack" json:"instantiation_stack,omitempty"` // The Starlark call stack for the definition of the rule class of this // particular rule instance. If empty, either populating the field was not // enabled on the command line with the --proto:definition_stack flag or the // rule is a native one. DefinitionStack []string `protobuf:"bytes,14,rep,name=definition_stack,json=definitionStack" json:"definition_stack,omitempty"` } func (x *Rule) Reset() { *x = Rule{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Rule) String() string { return protoimpl.X.MessageStringOf(x) } func (*Rule) ProtoMessage() {} func (x *Rule) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Rule.ProtoReflect.Descriptor instead. func (*Rule) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{8} } func (x *Rule) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *Rule) GetRuleClass() string { if x != nil && x.RuleClass != nil { return *x.RuleClass } return "" } func (x *Rule) GetLocation() string { if x != nil && x.Location != nil { return *x.Location } return "" } func (x *Rule) GetAttribute() []*Attribute { if x != nil { return x.Attribute } return nil } func (x *Rule) GetRuleInput() []string { if x != nil { return x.RuleInput } return nil } func (x *Rule) GetConfiguredRuleInput() []*ConfiguredRuleInput { if x != nil { return x.ConfiguredRuleInput } return nil } func (x *Rule) GetRuleOutput() []string { if x != nil { return x.RuleOutput } return nil } func (x *Rule) GetDefaultSetting() []string { if x != nil { return x.DefaultSetting } return nil } func (x *Rule) GetDEPRECATEDPublicByDefault() bool { if x != nil && x.DEPRECATEDPublicByDefault != nil { return *x.DEPRECATEDPublicByDefault } return false } func (x *Rule) GetDEPRECATEDIsSkylark() bool { if x != nil && x.DEPRECATEDIsSkylark != nil { return *x.DEPRECATEDIsSkylark } return false } func (x *Rule) GetSkylarkEnvironmentHashCode() string { if x != nil && x.SkylarkEnvironmentHashCode != nil { return *x.SkylarkEnvironmentHashCode } return "" } func (x *Rule) GetInstantiationStack() []string { if x != nil { return x.InstantiationStack } return nil } func (x *Rule) GetDefinitionStack() []string { if x != nil { return x.DefinitionStack } return nil } type ConfiguredRuleInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Label *string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"` ConfigurationChecksum *string `protobuf:"bytes,2,opt,name=configuration_checksum,json=configurationChecksum" json:"configuration_checksum,omitempty"` ConfigurationId *uint32 `protobuf:"varint,3,opt,name=configuration_id,json=configurationId" json:"configuration_id,omitempty"` } func (x *ConfiguredRuleInput) Reset() { *x = ConfiguredRuleInput{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfiguredRuleInput) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfiguredRuleInput) ProtoMessage() {} func (x *ConfiguredRuleInput) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConfiguredRuleInput.ProtoReflect.Descriptor instead. func (*ConfiguredRuleInput) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{9} } func (x *ConfiguredRuleInput) GetLabel() string { if x != nil && x.Label != nil { return *x.Label } return "" } func (x *ConfiguredRuleInput) GetConfigurationChecksum() string { if x != nil && x.ConfigurationChecksum != nil { return *x.ConfigurationChecksum } return "" } func (x *ConfiguredRuleInput) GetConfigurationId() uint32 { if x != nil && x.ConfigurationId != nil { return *x.ConfigurationId } return 0 } // Summary of all transitive dependencies of 'rule,' where each dependent // rule is included only once in the 'dependency' field. Gives complete // information to analyze the single build target labeled rule.name, // including optional location of target in BUILD file. type RuleSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Rule *Rule `protobuf:"bytes,1,req,name=rule" json:"rule,omitempty"` Dependency []*Rule `protobuf:"bytes,2,rep,name=dependency" json:"dependency,omitempty"` Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` } func (x *RuleSummary) Reset() { *x = RuleSummary{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RuleSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*RuleSummary) ProtoMessage() {} func (x *RuleSummary) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RuleSummary.ProtoReflect.Descriptor instead. func (*RuleSummary) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{10} } func (x *RuleSummary) GetRule() *Rule { if x != nil { return x.Rule } return nil } func (x *RuleSummary) GetDependency() []*Rule { if x != nil { return x.Dependency } return nil } func (x *RuleSummary) GetLocation() string { if x != nil && x.Location != nil { return *x.Location } return "" } // A package group. Aside from the name, it contains the list of packages // present in the group (as specified in the BUILD file). type PackageGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the package group Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // The list of packages as specified in the BUILD file. Currently this is // only a list of packages, but some time in the future, there might be // some type of wildcard mechanism. ContainedPackage []string `protobuf:"bytes,2,rep,name=contained_package,json=containedPackage" json:"contained_package,omitempty"` // The list of sub package groups included in this one. IncludedPackageGroup []string `protobuf:"bytes,3,rep,name=included_package_group,json=includedPackageGroup" json:"included_package_group,omitempty"` } func (x *PackageGroup) Reset() { *x = PackageGroup{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PackageGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*PackageGroup) ProtoMessage() {} func (x *PackageGroup) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PackageGroup.ProtoReflect.Descriptor instead. func (*PackageGroup) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{11} } func (x *PackageGroup) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *PackageGroup) GetContainedPackage() []string { if x != nil { return x.ContainedPackage } return nil } func (x *PackageGroup) GetIncludedPackageGroup() []string { if x != nil { return x.IncludedPackageGroup } return nil } // An environment group. type EnvironmentGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the environment group. Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // The environments that belong to this group (as labels). Environment []string `protobuf:"bytes,2,rep,name=environment" json:"environment,omitempty"` // The member environments that rules implicitly support if not otherwise // specified. Default []string `protobuf:"bytes,3,rep,name=default" json:"default,omitempty"` } func (x *EnvironmentGroup) Reset() { *x = EnvironmentGroup{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EnvironmentGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*EnvironmentGroup) ProtoMessage() {} func (x *EnvironmentGroup) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EnvironmentGroup.ProtoReflect.Descriptor instead. func (*EnvironmentGroup) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{12} } func (x *EnvironmentGroup) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *EnvironmentGroup) GetEnvironment() []string { if x != nil { return x.Environment } return nil } func (x *EnvironmentGroup) GetDefault() []string { if x != nil { return x.Default } return nil } // A file that is an input into the build system. // Next-Id: 10 type SourceFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the source file (a label). Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // The location of the source file. This is a path with a line number and a // column number not a label in the build system. Location *string `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"` // Labels of .bzl (Starlark) files that are transitively loaded in this BUILD // file. This is present only when the SourceFile represents a BUILD file that // loaded .bzl files. // TODO(bazel-team): Rename this field. Subinclude []string `protobuf:"bytes,3,rep,name=subinclude" json:"subinclude,omitempty"` // Labels of package groups that are mentioned in the visibility declaration // for this source file. PackageGroup []string `protobuf:"bytes,4,rep,name=package_group,json=packageGroup" json:"package_group,omitempty"` // Labels mentioned in the visibility declaration (including :__pkg__ and // //visibility: ones) VisibilityLabel []string `protobuf:"bytes,5,rep,name=visibility_label,json=visibilityLabel" json:"visibility_label,omitempty"` // The package-level features enabled for this package. Only present if the // SourceFile represents a BUILD file. Feature []string `protobuf:"bytes,6,rep,name=feature" json:"feature,omitempty"` // License attribute for the file. License *License `protobuf:"bytes,8,opt,name=license" json:"license,omitempty"` // True if the package contains an error. Only present if the SourceFile // represents a BUILD file. PackageContainsErrors *bool `protobuf:"varint,9,opt,name=package_contains_errors,json=packageContainsErrors" json:"package_contains_errors,omitempty"` } func (x *SourceFile) Reset() { *x = SourceFile{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceFile) ProtoMessage() {} func (x *SourceFile) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SourceFile.ProtoReflect.Descriptor instead. func (*SourceFile) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{13} } func (x *SourceFile) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *SourceFile) GetLocation() string { if x != nil && x.Location != nil { return *x.Location } return "" } func (x *SourceFile) GetSubinclude() []string { if x != nil { return x.Subinclude } return nil } func (x *SourceFile) GetPackageGroup() []string { if x != nil { return x.PackageGroup } return nil } func (x *SourceFile) GetVisibilityLabel() []string { if x != nil { return x.VisibilityLabel } return nil } func (x *SourceFile) GetFeature() []string { if x != nil { return x.Feature } return nil } func (x *SourceFile) GetLicense() *License { if x != nil { return x.License } return nil } func (x *SourceFile) GetPackageContainsErrors() bool { if x != nil && x.PackageContainsErrors != nil { return *x.PackageContainsErrors } return false } // A file that is the output of a build rule. type GeneratedFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the generated file (a label). Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // The label of the target that generates the file. GeneratingRule *string `protobuf:"bytes,2,req,name=generating_rule,json=generatingRule" json:"generating_rule,omitempty"` // The path, line number, and column number of the output file (not a label). Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` } func (x *GeneratedFile) Reset() { *x = GeneratedFile{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GeneratedFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*GeneratedFile) ProtoMessage() {} func (x *GeneratedFile) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GeneratedFile.ProtoReflect.Descriptor instead. func (*GeneratedFile) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{14} } func (x *GeneratedFile) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *GeneratedFile) GetGeneratingRule() string { if x != nil && x.GeneratingRule != nil { return *x.GeneratingRule } return "" } func (x *GeneratedFile) GetLocation() string { if x != nil && x.Location != nil { return *x.Location } return "" } // A target from a blaze query execution. Similar to the Attribute message, // the Discriminator is used to determine which field contains information. // For any given type, only one of these can be populated in a single Target. type Target struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of target contained in the message. Type *Target_Discriminator `protobuf:"varint,1,req,name=type,enum=blaze_query.Target_Discriminator" json:"type,omitempty"` // If this target represents a rule, the rule is stored here. Rule *Rule `protobuf:"bytes,2,opt,name=rule" json:"rule,omitempty"` // A file that is not generated by the build system (version controlled // or created by the test harness). SourceFile *SourceFile `protobuf:"bytes,3,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` // A generated file that is the output of a rule. GeneratedFile *GeneratedFile `protobuf:"bytes,4,opt,name=generated_file,json=generatedFile" json:"generated_file,omitempty"` // A package group. PackageGroup *PackageGroup `protobuf:"bytes,5,opt,name=package_group,json=packageGroup" json:"package_group,omitempty"` // An environment group. EnvironmentGroup *EnvironmentGroup `protobuf:"bytes,6,opt,name=environment_group,json=environmentGroup" json:"environment_group,omitempty"` } func (x *Target) Reset() { *x = Target{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Target) String() string { return protoimpl.X.MessageStringOf(x) } func (*Target) ProtoMessage() {} func (x *Target) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Target.ProtoReflect.Descriptor instead. func (*Target) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{15} } func (x *Target) GetType() Target_Discriminator { if x != nil && x.Type != nil { return *x.Type } return Target_RULE } func (x *Target) GetRule() *Rule { if x != nil { return x.Rule } return nil } func (x *Target) GetSourceFile() *SourceFile { if x != nil { return x.SourceFile } return nil } func (x *Target) GetGeneratedFile() *GeneratedFile { if x != nil { return x.GeneratedFile } return nil } func (x *Target) GetPackageGroup() *PackageGroup { if x != nil { return x.PackageGroup } return nil } func (x *Target) GetEnvironmentGroup() *EnvironmentGroup { if x != nil { return x.EnvironmentGroup } return nil } // Container for all of the blaze query results. type QueryResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // All of the targets returned by the blaze query. Target []*Target `protobuf:"bytes,1,rep,name=target" json:"target,omitempty"` } func (x *QueryResult) Reset() { *x = QueryResult{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueryResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueryResult) ProtoMessage() {} func (x *QueryResult) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QueryResult.ProtoReflect.Descriptor instead. func (*QueryResult) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{16} } func (x *QueryResult) GetTarget() []*Target { if x != nil { return x.Target } return nil } // Information about allowed rule classes for a specific attribute of a rule. type AllowedRuleClassInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Policy *AllowedRuleClassInfo_AllowedRuleClasses `protobuf:"varint,1,req,name=policy,enum=blaze_query.AllowedRuleClassInfo_AllowedRuleClasses" json:"policy,omitempty"` // Rule class names of rules allowed in this attribute, e.g "cc_library", // "py_binary". Only present if the allowed_rule_classes field is set to // SPECIFIED. AllowedRuleClass []string `protobuf:"bytes,2,rep,name=allowed_rule_class,json=allowedRuleClass" json:"allowed_rule_class,omitempty"` } func (x *AllowedRuleClassInfo) Reset() { *x = AllowedRuleClassInfo{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AllowedRuleClassInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AllowedRuleClassInfo) ProtoMessage() {} func (x *AllowedRuleClassInfo) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AllowedRuleClassInfo.ProtoReflect.Descriptor instead. func (*AllowedRuleClassInfo) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{17} } func (x *AllowedRuleClassInfo) GetPolicy() AllowedRuleClassInfo_AllowedRuleClasses { if x != nil && x.Policy != nil { return *x.Policy } return AllowedRuleClassInfo_ANY } func (x *AllowedRuleClassInfo) GetAllowedRuleClass() []string { if x != nil { return x.AllowedRuleClass } return nil } // This message represents a single attribute of a single rule. // See https://bazel.build/rules/lib/attr. type AttributeDefinition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // e.g. "name", "srcs" Type *Attribute_Discriminator `protobuf:"varint,2,req,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` Mandatory *bool `protobuf:"varint,3,opt,name=mandatory" json:"mandatory,omitempty"` AllowedRuleClasses *AllowedRuleClassInfo `protobuf:"bytes,4,opt,name=allowed_rule_classes,json=allowedRuleClasses" json:"allowed_rule_classes,omitempty"` // type=label* Documentation *string `protobuf:"bytes,5,opt,name=documentation" json:"documentation,omitempty"` AllowEmpty *bool `protobuf:"varint,6,opt,name=allow_empty,json=allowEmpty" json:"allow_empty,omitempty"` // type=*_list|*_dict AllowSingleFile *bool `protobuf:"varint,7,opt,name=allow_single_file,json=allowSingleFile" json:"allow_single_file,omitempty"` // type=label Default *AttributeValue `protobuf:"bytes,9,opt,name=default" json:"default,omitempty"` // simple (not computed/late-bound) values only Executable *bool `protobuf:"varint,10,opt,name=executable" json:"executable,omitempty"` // type=label Configurable *bool `protobuf:"varint,11,opt,name=configurable" json:"configurable,omitempty"` Nodep *bool `protobuf:"varint,12,opt,name=nodep" json:"nodep,omitempty"` // label-valued edge does not establish a dependency CfgIsHost *bool `protobuf:"varint,13,opt,name=cfg_is_host,json=cfgIsHost" json:"cfg_is_host,omitempty"` // edge entails a transition to "host" configuration } func (x *AttributeDefinition) Reset() { *x = AttributeDefinition{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttributeDefinition) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttributeDefinition) ProtoMessage() {} func (x *AttributeDefinition) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AttributeDefinition.ProtoReflect.Descriptor instead. func (*AttributeDefinition) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{18} } func (x *AttributeDefinition) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *AttributeDefinition) GetType() Attribute_Discriminator { if x != nil && x.Type != nil { return *x.Type } return Attribute_INTEGER } func (x *AttributeDefinition) GetMandatory() bool { if x != nil && x.Mandatory != nil { return *x.Mandatory } return false } func (x *AttributeDefinition) GetAllowedRuleClasses() *AllowedRuleClassInfo { if x != nil { return x.AllowedRuleClasses } return nil } func (x *AttributeDefinition) GetDocumentation() string { if x != nil && x.Documentation != nil { return *x.Documentation } return "" } func (x *AttributeDefinition) GetAllowEmpty() bool { if x != nil && x.AllowEmpty != nil { return *x.AllowEmpty } return false } func (x *AttributeDefinition) GetAllowSingleFile() bool { if x != nil && x.AllowSingleFile != nil { return *x.AllowSingleFile } return false } func (x *AttributeDefinition) GetDefault() *AttributeValue { if x != nil { return x.Default } return nil } func (x *AttributeDefinition) GetExecutable() bool { if x != nil && x.Executable != nil { return *x.Executable } return false } func (x *AttributeDefinition) GetConfigurable() bool { if x != nil && x.Configurable != nil { return *x.Configurable } return false } func (x *AttributeDefinition) GetNodep() bool { if x != nil && x.Nodep != nil { return *x.Nodep } return false } func (x *AttributeDefinition) GetCfgIsHost() bool { if x != nil && x.CfgIsHost != nil { return *x.CfgIsHost } return false } // An AttributeValue represents the value of an attribute. // A single field, determined by the attribute type, is populated. // // It is used only for AttributeDefinition.default. Attribute and // SelectorEntry do their own thing for unfortunate historical reasons. type AttributeValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Int *int32 `protobuf:"varint,1,opt,name=int" json:"int,omitempty"` // type=int|tristate String_ *string `protobuf:"bytes,2,opt,name=string" json:"string,omitempty"` // type=string|label|output Bool *bool `protobuf:"varint,3,opt,name=bool" json:"bool,omitempty"` // type=bool List []*AttributeValue `protobuf:"bytes,4,rep,name=list" json:"list,omitempty"` // type=*_list|distrib Dict []*AttributeValue_DictEntry `protobuf:"bytes,5,rep,name=dict" json:"dict,omitempty"` // type=*_dict } func (x *AttributeValue) Reset() { *x = AttributeValue{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttributeValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttributeValue) ProtoMessage() {} func (x *AttributeValue) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AttributeValue.ProtoReflect.Descriptor instead. func (*AttributeValue) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{19} } func (x *AttributeValue) GetInt() int32 { if x != nil && x.Int != nil { return *x.Int } return 0 } func (x *AttributeValue) GetString_() string { if x != nil && x.String_ != nil { return *x.String_ } return "" } func (x *AttributeValue) GetBool() bool { if x != nil && x.Bool != nil { return *x.Bool } return false } func (x *AttributeValue) GetList() []*AttributeValue { if x != nil { return x.List } return nil } func (x *AttributeValue) GetDict() []*AttributeValue_DictEntry { if x != nil { return x.Dict } return nil } type RuleDefinition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` // Only contains documented attributes Attribute []*AttributeDefinition `protobuf:"bytes,2,rep,name=attribute" json:"attribute,omitempty"` Documentation *string `protobuf:"bytes,3,opt,name=documentation" json:"documentation,omitempty"` // Only for build extensions: label to file that defines the extension Label *string `protobuf:"bytes,4,opt,name=label" json:"label,omitempty"` } func (x *RuleDefinition) Reset() { *x = RuleDefinition{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RuleDefinition) String() string { return protoimpl.X.MessageStringOf(x) } func (*RuleDefinition) ProtoMessage() {} func (x *RuleDefinition) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RuleDefinition.ProtoReflect.Descriptor instead. func (*RuleDefinition) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{20} } func (x *RuleDefinition) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *RuleDefinition) GetAttribute() []*AttributeDefinition { if x != nil { return x.Attribute } return nil } func (x *RuleDefinition) GetDocumentation() string { if x != nil && x.Documentation != nil { return *x.Documentation } return "" } func (x *RuleDefinition) GetLabel() string { if x != nil && x.Label != nil { return *x.Label } return "" } type BuildLanguage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Only contains documented rule definitions Rule []*RuleDefinition `protobuf:"bytes,1,rep,name=rule" json:"rule,omitempty"` } func (x *BuildLanguage) Reset() { *x = BuildLanguage{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildLanguage) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildLanguage) ProtoMessage() {} func (x *BuildLanguage) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BuildLanguage.ProtoReflect.Descriptor instead. func (*BuildLanguage) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{21} } func (x *BuildLanguage) GetRule() []*RuleDefinition { if x != nil { return x.Rule } return nil } type Attribute_SelectorEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The key of the selector entry. At this time, this is the label of a // config_setting rule, or the pseudo-label "//conditions:default". Label *string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"` // True if the entry's value is the default value for the type as a // result of the condition value being specified as None (ie: // {"//condition": None}). IsDefaultValue *bool `protobuf:"varint,16,opt,name=is_default_value,json=isDefaultValue" json:"is_default_value,omitempty"` // Exactly one of the following fields (except for glob_criteria) must be // populated - note that the BOOLEAN and TRISTATE caveat in Attribute's // comment does not apply here. The type field in the SelectorList // containing this entry indicates which of these fields is populated, // in accordance with the comments on Discriminator enum values above. // (To be explicit: BOOLEAN populates the boolean_value field and TRISTATE // populates the tristate_value field.) IntValue *int32 `protobuf:"varint,2,opt,name=int_value,json=intValue" json:"int_value,omitempty"` StringValue *string `protobuf:"bytes,3,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` BooleanValue *bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue" json:"boolean_value,omitempty"` TristateValue *Attribute_Tristate `protobuf:"varint,5,opt,name=tristate_value,json=tristateValue,enum=blaze_query.Attribute_Tristate" json:"tristate_value,omitempty"` StringListValue []string `protobuf:"bytes,6,rep,name=string_list_value,json=stringListValue" json:"string_list_value,omitempty"` License *License `protobuf:"bytes,7,opt,name=license" json:"license,omitempty"` StringDictValue []*StringDictEntry `protobuf:"bytes,8,rep,name=string_dict_value,json=stringDictValue" json:"string_dict_value,omitempty"` FilesetListValue []*FilesetEntry `protobuf:"bytes,9,rep,name=fileset_list_value,json=filesetListValue" json:"fileset_list_value,omitempty"` LabelListDictValue []*LabelListDictEntry `protobuf:"bytes,10,rep,name=label_list_dict_value,json=labelListDictValue" json:"label_list_dict_value,omitempty"` StringListDictValue []*StringListDictEntry `protobuf:"bytes,11,rep,name=string_list_dict_value,json=stringListDictValue" json:"string_list_dict_value,omitempty"` IntListValue []int32 `protobuf:"varint,13,rep,name=int_list_value,json=intListValue" json:"int_list_value,omitempty"` LabelDictUnaryValue []*LabelDictUnaryEntry `protobuf:"bytes,15,rep,name=label_dict_unary_value,json=labelDictUnaryValue" json:"label_dict_unary_value,omitempty"` LabelKeyedStringDictValue []*LabelKeyedStringDictEntry `protobuf:"bytes,17,rep,name=label_keyed_string_dict_value,json=labelKeyedStringDictValue" json:"label_keyed_string_dict_value,omitempty"` DEPRECATEDStringDictUnaryValue [][]byte `protobuf:"bytes,14,rep,name=DEPRECATED_string_dict_unary_value,json=DEPRECATEDStringDictUnaryValue" json:"DEPRECATED_string_dict_unary_value,omitempty"` } func (x *Attribute_SelectorEntry) Reset() { *x = Attribute_SelectorEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Attribute_SelectorEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*Attribute_SelectorEntry) ProtoMessage() {} func (x *Attribute_SelectorEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Attribute_SelectorEntry.ProtoReflect.Descriptor instead. func (*Attribute_SelectorEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7, 0} } func (x *Attribute_SelectorEntry) GetLabel() string { if x != nil && x.Label != nil { return *x.Label } return "" } func (x *Attribute_SelectorEntry) GetIsDefaultValue() bool { if x != nil && x.IsDefaultValue != nil { return *x.IsDefaultValue } return false } func (x *Attribute_SelectorEntry) GetIntValue() int32 { if x != nil && x.IntValue != nil { return *x.IntValue } return 0 } func (x *Attribute_SelectorEntry) GetStringValue() string { if x != nil && x.StringValue != nil { return *x.StringValue } return "" } func (x *Attribute_SelectorEntry) GetBooleanValue() bool { if x != nil && x.BooleanValue != nil { return *x.BooleanValue } return false } func (x *Attribute_SelectorEntry) GetTristateValue() Attribute_Tristate { if x != nil && x.TristateValue != nil { return *x.TristateValue } return Attribute_NO } func (x *Attribute_SelectorEntry) GetStringListValue() []string { if x != nil { return x.StringListValue } return nil } func (x *Attribute_SelectorEntry) GetLicense() *License { if x != nil { return x.License } return nil } func (x *Attribute_SelectorEntry) GetStringDictValue() []*StringDictEntry { if x != nil { return x.StringDictValue } return nil } func (x *Attribute_SelectorEntry) GetFilesetListValue() []*FilesetEntry { if x != nil { return x.FilesetListValue } return nil } func (x *Attribute_SelectorEntry) GetLabelListDictValue() []*LabelListDictEntry { if x != nil { return x.LabelListDictValue } return nil } func (x *Attribute_SelectorEntry) GetStringListDictValue() []*StringListDictEntry { if x != nil { return x.StringListDictValue } return nil } func (x *Attribute_SelectorEntry) GetIntListValue() []int32 { if x != nil { return x.IntListValue } return nil } func (x *Attribute_SelectorEntry) GetLabelDictUnaryValue() []*LabelDictUnaryEntry { if x != nil { return x.LabelDictUnaryValue } return nil } func (x *Attribute_SelectorEntry) GetLabelKeyedStringDictValue() []*LabelKeyedStringDictEntry { if x != nil { return x.LabelKeyedStringDictValue } return nil } func (x *Attribute_SelectorEntry) GetDEPRECATEDStringDictUnaryValue() [][]byte { if x != nil { return x.DEPRECATEDStringDictUnaryValue } return nil } type Attribute_Selector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The list of (label, value) pairs in the map that defines the selector. // At this time, this cannot be empty, i.e. a selector has at least one // entry. Entries []*Attribute_SelectorEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` // Whether or not this has any default values. HasDefaultValue *bool `protobuf:"varint,2,opt,name=has_default_value,json=hasDefaultValue" json:"has_default_value,omitempty"` // The error message when no condition matches. NoMatchError *string `protobuf:"bytes,3,opt,name=no_match_error,json=noMatchError" json:"no_match_error,omitempty"` } func (x *Attribute_Selector) Reset() { *x = Attribute_Selector{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Attribute_Selector) String() string { return protoimpl.X.MessageStringOf(x) } func (*Attribute_Selector) ProtoMessage() {} func (x *Attribute_Selector) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Attribute_Selector.ProtoReflect.Descriptor instead. func (*Attribute_Selector) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7, 1} } func (x *Attribute_Selector) GetEntries() []*Attribute_SelectorEntry { if x != nil { return x.Entries } return nil } func (x *Attribute_Selector) GetHasDefaultValue() bool { if x != nil && x.HasDefaultValue != nil { return *x.HasDefaultValue } return false } func (x *Attribute_Selector) GetNoMatchError() string { if x != nil && x.NoMatchError != nil { return *x.NoMatchError } return "" } type Attribute_SelectorList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type that this selector list evaluates to, and the type that each // selector in the list evaluates to. At this time, this cannot be // SELECTOR_LIST, i.e. selector lists do not nest. Type *Attribute_Discriminator `protobuf:"varint,1,opt,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` // The list of selector elements in this selector list. At this time, this // cannot be empty, i.e. a selector list is never empty. Elements []*Attribute_Selector `protobuf:"bytes,2,rep,name=elements" json:"elements,omitempty"` } func (x *Attribute_SelectorList) Reset() { *x = Attribute_SelectorList{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Attribute_SelectorList) String() string { return protoimpl.X.MessageStringOf(x) } func (*Attribute_SelectorList) ProtoMessage() {} func (x *Attribute_SelectorList) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Attribute_SelectorList.ProtoReflect.Descriptor instead. func (*Attribute_SelectorList) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{7, 2} } func (x *Attribute_SelectorList) GetType() Attribute_Discriminator { if x != nil && x.Type != nil { return *x.Type } return Attribute_INTEGER } func (x *Attribute_SelectorList) GetElements() []*Attribute_Selector { if x != nil { return x.Elements } return nil } type AttributeValue_DictEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` Value *AttributeValue `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` } func (x *AttributeValue_DictEntry) Reset() { *x = AttributeValue_DictEntry{} if protoimpl.UnsafeEnabled { mi := &file_src_main_protobuf_build_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttributeValue_DictEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttributeValue_DictEntry) ProtoMessage() {} func (x *AttributeValue_DictEntry) ProtoReflect() protoreflect.Message { mi := &file_src_main_protobuf_build_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AttributeValue_DictEntry.ProtoReflect.Descriptor instead. func (*AttributeValue_DictEntry) Descriptor() ([]byte, []int) { return file_src_main_protobuf_build_proto_rawDescGZIP(), []int{19, 0} } func (x *AttributeValue_DictEntry) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *AttributeValue_DictEntry) GetValue() *AttributeValue { if x != nil { return x.Value } return nil } var File_src_main_protobuf_build_proto protoreflect.FileDescriptor var file_src_main_protobuf_build_proto_rawDesc = []byte{ 0x0a, 0x1d, 0x73, 0x72, 0x63, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x4a, 0x0a, 0x07, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3d, 0x0a, 0x13, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3c, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x43, 0x0a, 0x19, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3d, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x5a, 0x0a, 0x10, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x04, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x0f, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x2c, 0x0a, 0x0f, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x50, 0x59, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x22, 0x9f, 0x16, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x74, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x68, 0x0a, 0x1d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x22, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x1e, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xcf, 0x07, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x74, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x68, 0x0a, 0x1d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x22, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x1e, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x63, 0x74, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x1a, 0x9c, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x6f, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x85, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8a, 0x03, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x49, 0x4c, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0d, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x0e, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x52, 0x49, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x0f, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x13, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x14, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4b, 0x45, 0x59, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x10, 0x15, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x11, 0x22, 0x25, 0x0a, 0x08, 0x54, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x22, 0xea, 0x04, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x1c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x69, 0x73, 0x5f, 0x73, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x49, 0x73, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x12, 0x41, 0x0a, 0x1d, 0x73, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x73, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x35, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x62, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xb4, 0x02, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd9, 0x03, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x10, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x68, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x05, 0x22, 0x3a, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xc0, 0x01, 0x0a, 0x14, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x12, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x02, 0x22, 0xfa, 0x03, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x63, 0x66, 0x67, 0x5f, 0x69, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x66, 0x67, 0x49, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x8c, 0x02, 0x0a, 0x0e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x69, 0x63, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x69, 0x63, 0x74, 0x1a, 0x50, 0x0a, 0x09, 0x44, 0x69, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x40, 0x0a, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x42, 0x36, 0x0a, 0x34, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x61, 0x70, 0x69, } var ( file_src_main_protobuf_build_proto_rawDescOnce sync.Once file_src_main_protobuf_build_proto_rawDescData = file_src_main_protobuf_build_proto_rawDesc ) func file_src_main_protobuf_build_proto_rawDescGZIP() []byte { file_src_main_protobuf_build_proto_rawDescOnce.Do(func() { file_src_main_protobuf_build_proto_rawDescData = protoimpl.X.CompressGZIP(file_src_main_protobuf_build_proto_rawDescData) }) return file_src_main_protobuf_build_proto_rawDescData } var file_src_main_protobuf_build_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_src_main_protobuf_build_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_src_main_protobuf_build_proto_goTypes = []interface{}{ (FilesetEntry_SymlinkBehavior)(0), // 0: blaze_query.FilesetEntry.SymlinkBehavior (Attribute_Discriminator)(0), // 1: blaze_query.Attribute.Discriminator (Attribute_Tristate)(0), // 2: blaze_query.Attribute.Tristate (Target_Discriminator)(0), // 3: blaze_query.Target.Discriminator (AllowedRuleClassInfo_AllowedRuleClasses)(0), // 4: blaze_query.AllowedRuleClassInfo.AllowedRuleClasses (*License)(nil), // 5: blaze_query.License (*StringDictEntry)(nil), // 6: blaze_query.StringDictEntry (*LabelDictUnaryEntry)(nil), // 7: blaze_query.LabelDictUnaryEntry (*LabelListDictEntry)(nil), // 8: blaze_query.LabelListDictEntry (*LabelKeyedStringDictEntry)(nil), // 9: blaze_query.LabelKeyedStringDictEntry (*StringListDictEntry)(nil), // 10: blaze_query.StringListDictEntry (*FilesetEntry)(nil), // 11: blaze_query.FilesetEntry (*Attribute)(nil), // 12: blaze_query.Attribute (*Rule)(nil), // 13: blaze_query.Rule (*ConfiguredRuleInput)(nil), // 14: blaze_query.ConfiguredRuleInput (*RuleSummary)(nil), // 15: blaze_query.RuleSummary (*PackageGroup)(nil), // 16: blaze_query.PackageGroup (*EnvironmentGroup)(nil), // 17: blaze_query.EnvironmentGroup (*SourceFile)(nil), // 18: blaze_query.SourceFile (*GeneratedFile)(nil), // 19: blaze_query.GeneratedFile (*Target)(nil), // 20: blaze_query.Target (*QueryResult)(nil), // 21: blaze_query.QueryResult (*AllowedRuleClassInfo)(nil), // 22: blaze_query.AllowedRuleClassInfo (*AttributeDefinition)(nil), // 23: blaze_query.AttributeDefinition (*AttributeValue)(nil), // 24: blaze_query.AttributeValue (*RuleDefinition)(nil), // 25: blaze_query.RuleDefinition (*BuildLanguage)(nil), // 26: blaze_query.BuildLanguage (*Attribute_SelectorEntry)(nil), // 27: blaze_query.Attribute.SelectorEntry (*Attribute_Selector)(nil), // 28: blaze_query.Attribute.Selector (*Attribute_SelectorList)(nil), // 29: blaze_query.Attribute.SelectorList (*AttributeValue_DictEntry)(nil), // 30: blaze_query.AttributeValue.DictEntry } var file_src_main_protobuf_build_proto_depIdxs = []int32{ 0, // 0: blaze_query.FilesetEntry.symlink_behavior:type_name -> blaze_query.FilesetEntry.SymlinkBehavior 1, // 1: blaze_query.Attribute.type:type_name -> blaze_query.Attribute.Discriminator 2, // 2: blaze_query.Attribute.tristate_value:type_name -> blaze_query.Attribute.Tristate 5, // 3: blaze_query.Attribute.license:type_name -> blaze_query.License 6, // 4: blaze_query.Attribute.string_dict_value:type_name -> blaze_query.StringDictEntry 11, // 5: blaze_query.Attribute.fileset_list_value:type_name -> blaze_query.FilesetEntry 8, // 6: blaze_query.Attribute.label_list_dict_value:type_name -> blaze_query.LabelListDictEntry 10, // 7: blaze_query.Attribute.string_list_dict_value:type_name -> blaze_query.StringListDictEntry 7, // 8: blaze_query.Attribute.label_dict_unary_value:type_name -> blaze_query.LabelDictUnaryEntry 9, // 9: blaze_query.Attribute.label_keyed_string_dict_value:type_name -> blaze_query.LabelKeyedStringDictEntry 29, // 10: blaze_query.Attribute.selector_list:type_name -> blaze_query.Attribute.SelectorList 12, // 11: blaze_query.Rule.attribute:type_name -> blaze_query.Attribute 14, // 12: blaze_query.Rule.configured_rule_input:type_name -> blaze_query.ConfiguredRuleInput 13, // 13: blaze_query.RuleSummary.rule:type_name -> blaze_query.Rule 13, // 14: blaze_query.RuleSummary.dependency:type_name -> blaze_query.Rule 5, // 15: blaze_query.SourceFile.license:type_name -> blaze_query.License 3, // 16: blaze_query.Target.type:type_name -> blaze_query.Target.Discriminator 13, // 17: blaze_query.Target.rule:type_name -> blaze_query.Rule 18, // 18: blaze_query.Target.source_file:type_name -> blaze_query.SourceFile 19, // 19: blaze_query.Target.generated_file:type_name -> blaze_query.GeneratedFile 16, // 20: blaze_query.Target.package_group:type_name -> blaze_query.PackageGroup 17, // 21: blaze_query.Target.environment_group:type_name -> blaze_query.EnvironmentGroup 20, // 22: blaze_query.QueryResult.target:type_name -> blaze_query.Target 4, // 23: blaze_query.AllowedRuleClassInfo.policy:type_name -> blaze_query.AllowedRuleClassInfo.AllowedRuleClasses 1, // 24: blaze_query.AttributeDefinition.type:type_name -> blaze_query.Attribute.Discriminator 22, // 25: blaze_query.AttributeDefinition.allowed_rule_classes:type_name -> blaze_query.AllowedRuleClassInfo 24, // 26: blaze_query.AttributeDefinition.default:type_name -> blaze_query.AttributeValue 24, // 27: blaze_query.AttributeValue.list:type_name -> blaze_query.AttributeValue 30, // 28: blaze_query.AttributeValue.dict:type_name -> blaze_query.AttributeValue.DictEntry 23, // 29: blaze_query.RuleDefinition.attribute:type_name -> blaze_query.AttributeDefinition 25, // 30: blaze_query.BuildLanguage.rule:type_name -> blaze_query.RuleDefinition 2, // 31: blaze_query.Attribute.SelectorEntry.tristate_value:type_name -> blaze_query.Attribute.Tristate 5, // 32: blaze_query.Attribute.SelectorEntry.license:type_name -> blaze_query.License 6, // 33: blaze_query.Attribute.SelectorEntry.string_dict_value:type_name -> blaze_query.StringDictEntry 11, // 34: blaze_query.Attribute.SelectorEntry.fileset_list_value:type_name -> blaze_query.FilesetEntry 8, // 35: blaze_query.Attribute.SelectorEntry.label_list_dict_value:type_name -> blaze_query.LabelListDictEntry 10, // 36: blaze_query.Attribute.SelectorEntry.string_list_dict_value:type_name -> blaze_query.StringListDictEntry 7, // 37: blaze_query.Attribute.SelectorEntry.label_dict_unary_value:type_name -> blaze_query.LabelDictUnaryEntry 9, // 38: blaze_query.Attribute.SelectorEntry.label_keyed_string_dict_value:type_name -> blaze_query.LabelKeyedStringDictEntry 27, // 39: blaze_query.Attribute.Selector.entries:type_name -> blaze_query.Attribute.SelectorEntry 1, // 40: blaze_query.Attribute.SelectorList.type:type_name -> blaze_query.Attribute.Discriminator 28, // 41: blaze_query.Attribute.SelectorList.elements:type_name -> blaze_query.Attribute.Selector 24, // 42: blaze_query.AttributeValue.DictEntry.value:type_name -> blaze_query.AttributeValue 43, // [43:43] is the sub-list for method output_type 43, // [43:43] is the sub-list for method input_type 43, // [43:43] is the sub-list for extension type_name 43, // [43:43] is the sub-list for extension extendee 0, // [0:43] is the sub-list for field type_name } func init() { file_src_main_protobuf_build_proto_init() } func file_src_main_protobuf_build_proto_init() { if File_src_main_protobuf_build_proto != nil { return } if !protoimpl.UnsafeEnabled { file_src_main_protobuf_build_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*License); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringDictEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelDictUnaryEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelListDictEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LabelKeyedStringDictEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringListDictEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilesetEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attribute); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Rule); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfiguredRuleInput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PackageGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnvironmentGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneratedFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Target); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AllowedRuleClassInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttributeDefinition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttributeValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleDefinition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildLanguage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attribute_SelectorEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attribute_Selector); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attribute_SelectorList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_src_main_protobuf_build_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttributeValue_DictEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_src_main_protobuf_build_proto_rawDesc, NumEnums: 5, NumMessages: 26, NumExtensions: 0, NumServices: 0, }, GoTypes: file_src_main_protobuf_build_proto_goTypes, DependencyIndexes: file_src_main_protobuf_build_proto_depIdxs, EnumInfos: file_src_main_protobuf_build_proto_enumTypes, MessageInfos: file_src_main_protobuf_build_proto_msgTypes, }.Build() File_src_main_protobuf_build_proto = out.File file_src_main_protobuf_build_proto_rawDesc = nil file_src_main_protobuf_build_proto_goTypes = nil file_src_main_protobuf_build_proto_depIdxs = nil }