// Copyright 2018 Google Inc. // // 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. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.13.0 // source: google/datastore/v1beta3/query.proto package datastore import ( reflect "reflect" sync "sync" proto "github.com/golang/protobuf/proto" _ "google.golang.org/genproto/googleapis/api/annotations" _ "google.golang.org/genproto/googleapis/type/latlng" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) 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) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 // Specifies what data the 'entity' field contains. // A `ResultType` is either implied (for example, in `LookupResponse.missing` // from `datastore.proto`, it is always `KEY_ONLY`) or specified by context // (for example, in message `QueryResultBatch`, field `entity_result_type` // specifies a `ResultType` for all the values in field `entity_results`). type EntityResult_ResultType int32 const ( // Unspecified. This value is never used. EntityResult_RESULT_TYPE_UNSPECIFIED EntityResult_ResultType = 0 // The key and properties. EntityResult_FULL EntityResult_ResultType = 1 // A projected subset of properties. The entity may have no key. EntityResult_PROJECTION EntityResult_ResultType = 2 // Only the key. EntityResult_KEY_ONLY EntityResult_ResultType = 3 ) // Enum value maps for EntityResult_ResultType. var ( EntityResult_ResultType_name = map[int32]string{ 0: "RESULT_TYPE_UNSPECIFIED", 1: "FULL", 2: "PROJECTION", 3: "KEY_ONLY", } EntityResult_ResultType_value = map[string]int32{ "RESULT_TYPE_UNSPECIFIED": 0, "FULL": 1, "PROJECTION": 2, "KEY_ONLY": 3, } ) func (x EntityResult_ResultType) Enum() *EntityResult_ResultType { p := new(EntityResult_ResultType) *p = x return p } func (x EntityResult_ResultType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EntityResult_ResultType) Descriptor() protoreflect.EnumDescriptor { return file_google_datastore_v1beta3_query_proto_enumTypes[0].Descriptor() } func (EntityResult_ResultType) Type() protoreflect.EnumType { return &file_google_datastore_v1beta3_query_proto_enumTypes[0] } func (x EntityResult_ResultType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use EntityResult_ResultType.Descriptor instead. func (EntityResult_ResultType) EnumDescriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{0, 0} } // The sort direction. type PropertyOrder_Direction int32 const ( // Unspecified. This value must not be used. PropertyOrder_DIRECTION_UNSPECIFIED PropertyOrder_Direction = 0 // Ascending. PropertyOrder_ASCENDING PropertyOrder_Direction = 1 // Descending. PropertyOrder_DESCENDING PropertyOrder_Direction = 2 ) // Enum value maps for PropertyOrder_Direction. var ( PropertyOrder_Direction_name = map[int32]string{ 0: "DIRECTION_UNSPECIFIED", 1: "ASCENDING", 2: "DESCENDING", } PropertyOrder_Direction_value = map[string]int32{ "DIRECTION_UNSPECIFIED": 0, "ASCENDING": 1, "DESCENDING": 2, } ) func (x PropertyOrder_Direction) Enum() *PropertyOrder_Direction { p := new(PropertyOrder_Direction) *p = x return p } func (x PropertyOrder_Direction) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PropertyOrder_Direction) Descriptor() protoreflect.EnumDescriptor { return file_google_datastore_v1beta3_query_proto_enumTypes[1].Descriptor() } func (PropertyOrder_Direction) Type() protoreflect.EnumType { return &file_google_datastore_v1beta3_query_proto_enumTypes[1] } func (x PropertyOrder_Direction) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PropertyOrder_Direction.Descriptor instead. func (PropertyOrder_Direction) EnumDescriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{5, 0} } // A composite filter operator. type CompositeFilter_Operator int32 const ( // Unspecified. This value must not be used. CompositeFilter_OPERATOR_UNSPECIFIED CompositeFilter_Operator = 0 // The results are required to satisfy each of the combined filters. CompositeFilter_AND CompositeFilter_Operator = 1 ) // Enum value maps for CompositeFilter_Operator. var ( CompositeFilter_Operator_name = map[int32]string{ 0: "OPERATOR_UNSPECIFIED", 1: "AND", } CompositeFilter_Operator_value = map[string]int32{ "OPERATOR_UNSPECIFIED": 0, "AND": 1, } ) func (x CompositeFilter_Operator) Enum() *CompositeFilter_Operator { p := new(CompositeFilter_Operator) *p = x return p } func (x CompositeFilter_Operator) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CompositeFilter_Operator) Descriptor() protoreflect.EnumDescriptor { return file_google_datastore_v1beta3_query_proto_enumTypes[2].Descriptor() } func (CompositeFilter_Operator) Type() protoreflect.EnumType { return &file_google_datastore_v1beta3_query_proto_enumTypes[2] } func (x CompositeFilter_Operator) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CompositeFilter_Operator.Descriptor instead. func (CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{7, 0} } // A property filter operator. type PropertyFilter_Operator int32 const ( // Unspecified. This value must not be used. PropertyFilter_OPERATOR_UNSPECIFIED PropertyFilter_Operator = 0 // Less than. PropertyFilter_LESS_THAN PropertyFilter_Operator = 1 // Less than or equal. PropertyFilter_LESS_THAN_OR_EQUAL PropertyFilter_Operator = 2 // Greater than. PropertyFilter_GREATER_THAN PropertyFilter_Operator = 3 // Greater than or equal. PropertyFilter_GREATER_THAN_OR_EQUAL PropertyFilter_Operator = 4 // Equal. PropertyFilter_EQUAL PropertyFilter_Operator = 5 // Has ancestor. PropertyFilter_HAS_ANCESTOR PropertyFilter_Operator = 11 ) // Enum value maps for PropertyFilter_Operator. var ( PropertyFilter_Operator_name = map[int32]string{ 0: "OPERATOR_UNSPECIFIED", 1: "LESS_THAN", 2: "LESS_THAN_OR_EQUAL", 3: "GREATER_THAN", 4: "GREATER_THAN_OR_EQUAL", 5: "EQUAL", 11: "HAS_ANCESTOR", } PropertyFilter_Operator_value = map[string]int32{ "OPERATOR_UNSPECIFIED": 0, "LESS_THAN": 1, "LESS_THAN_OR_EQUAL": 2, "GREATER_THAN": 3, "GREATER_THAN_OR_EQUAL": 4, "EQUAL": 5, "HAS_ANCESTOR": 11, } ) func (x PropertyFilter_Operator) Enum() *PropertyFilter_Operator { p := new(PropertyFilter_Operator) *p = x return p } func (x PropertyFilter_Operator) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PropertyFilter_Operator) Descriptor() protoreflect.EnumDescriptor { return file_google_datastore_v1beta3_query_proto_enumTypes[3].Descriptor() } func (PropertyFilter_Operator) Type() protoreflect.EnumType { return &file_google_datastore_v1beta3_query_proto_enumTypes[3] } func (x PropertyFilter_Operator) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PropertyFilter_Operator.Descriptor instead. func (PropertyFilter_Operator) EnumDescriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{8, 0} } // The possible values for the `more_results` field. type QueryResultBatch_MoreResultsType int32 const ( // Unspecified. This value is never used. QueryResultBatch_MORE_RESULTS_TYPE_UNSPECIFIED QueryResultBatch_MoreResultsType = 0 // There may be additional batches to fetch from this query. QueryResultBatch_NOT_FINISHED QueryResultBatch_MoreResultsType = 1 // The query is finished, but there may be more results after the limit. QueryResultBatch_MORE_RESULTS_AFTER_LIMIT QueryResultBatch_MoreResultsType = 2 // The query is finished, but there may be more results after the end // cursor. QueryResultBatch_MORE_RESULTS_AFTER_CURSOR QueryResultBatch_MoreResultsType = 4 // The query is finished, and there are no more results. QueryResultBatch_NO_MORE_RESULTS QueryResultBatch_MoreResultsType = 3 ) // Enum value maps for QueryResultBatch_MoreResultsType. var ( QueryResultBatch_MoreResultsType_name = map[int32]string{ 0: "MORE_RESULTS_TYPE_UNSPECIFIED", 1: "NOT_FINISHED", 2: "MORE_RESULTS_AFTER_LIMIT", 4: "MORE_RESULTS_AFTER_CURSOR", 3: "NO_MORE_RESULTS", } QueryResultBatch_MoreResultsType_value = map[string]int32{ "MORE_RESULTS_TYPE_UNSPECIFIED": 0, "NOT_FINISHED": 1, "MORE_RESULTS_AFTER_LIMIT": 2, "MORE_RESULTS_AFTER_CURSOR": 4, "NO_MORE_RESULTS": 3, } ) func (x QueryResultBatch_MoreResultsType) Enum() *QueryResultBatch_MoreResultsType { p := new(QueryResultBatch_MoreResultsType) *p = x return p } func (x QueryResultBatch_MoreResultsType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (QueryResultBatch_MoreResultsType) Descriptor() protoreflect.EnumDescriptor { return file_google_datastore_v1beta3_query_proto_enumTypes[4].Descriptor() } func (QueryResultBatch_MoreResultsType) Type() protoreflect.EnumType { return &file_google_datastore_v1beta3_query_proto_enumTypes[4] } func (x QueryResultBatch_MoreResultsType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use QueryResultBatch_MoreResultsType.Descriptor instead. func (QueryResultBatch_MoreResultsType) EnumDescriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{11, 0} } // The result of fetching an entity from Datastore. type EntityResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resulting entity. Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` // The version of the entity, a strictly positive number that monotonically // increases with changes to the entity. // // This field is set for // [`FULL`][google.datastore.v1beta3.EntityResult.ResultType.FULL] entity // results. // // For [missing][google.datastore.v1beta3.LookupResponse.missing] entities in // `LookupResponse`, this is the version of the snapshot that was used to look // up the entity, and it is always set except for eventually consistent reads. Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` // A cursor that points to the position after the result entity. // Set only when the `EntityResult` is part of a `QueryResultBatch` message. Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` } func (x *EntityResult) Reset() { *x = EntityResult{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EntityResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*EntityResult) ProtoMessage() {} func (x *EntityResult) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 EntityResult.ProtoReflect.Descriptor instead. func (*EntityResult) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{0} } func (x *EntityResult) GetEntity() *Entity { if x != nil { return x.Entity } return nil } func (x *EntityResult) GetVersion() int64 { if x != nil { return x.Version } return 0 } func (x *EntityResult) GetCursor() []byte { if x != nil { return x.Cursor } return nil } // A query for entities. type Query struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The projection to return. Defaults to returning all properties. Projection []*Projection `protobuf:"bytes,2,rep,name=projection,proto3" json:"projection,omitempty"` // The kinds to query (if empty, returns entities of all kinds). // Currently at most 1 kind may be specified. Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind,proto3" json:"kind,omitempty"` // The filter to apply. Filter *Filter `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` // The order to apply to the query results (if empty, order is unspecified). Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order,proto3" json:"order,omitempty"` // The properties to make distinct. The query results will contain the first // result for each distinct combination of values for the given properties // (if empty, all results are returned). DistinctOn []*PropertyReference `protobuf:"bytes,6,rep,name=distinct_on,json=distinctOn,proto3" json:"distinct_on,omitempty"` // A starting point for the query results. Query cursors are // returned in query result batches and // [can only be used to continue the same // query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets). StartCursor []byte `protobuf:"bytes,7,opt,name=start_cursor,json=startCursor,proto3" json:"start_cursor,omitempty"` // An ending point for the query results. Query cursors are // returned in query result batches and // [can only be used to limit the same // query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets). EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"` // The number of results to skip. Applies before limit, but after all other // constraints. Optional. Must be >= 0 if specified. Offset int32 `protobuf:"varint,10,opt,name=offset,proto3" json:"offset,omitempty"` // The maximum number of results to return. Applies after all other // constraints. Optional. // Unspecified is interpreted as no limit. // Must be >= 0 if specified. Limit *wrapperspb.Int32Value `protobuf:"bytes,12,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *Query) Reset() { *x = Query{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Query) String() string { return protoimpl.X.MessageStringOf(x) } func (*Query) ProtoMessage() {} func (x *Query) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 Query.ProtoReflect.Descriptor instead. func (*Query) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{1} } func (x *Query) GetProjection() []*Projection { if x != nil { return x.Projection } return nil } func (x *Query) GetKind() []*KindExpression { if x != nil { return x.Kind } return nil } func (x *Query) GetFilter() *Filter { if x != nil { return x.Filter } return nil } func (x *Query) GetOrder() []*PropertyOrder { if x != nil { return x.Order } return nil } func (x *Query) GetDistinctOn() []*PropertyReference { if x != nil { return x.DistinctOn } return nil } func (x *Query) GetStartCursor() []byte { if x != nil { return x.StartCursor } return nil } func (x *Query) GetEndCursor() []byte { if x != nil { return x.EndCursor } return nil } func (x *Query) GetOffset() int32 { if x != nil { return x.Offset } return 0 } func (x *Query) GetLimit() *wrapperspb.Int32Value { if x != nil { return x.Limit } return nil } // A representation of a kind. type KindExpression struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the kind. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *KindExpression) Reset() { *x = KindExpression{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KindExpression) String() string { return protoimpl.X.MessageStringOf(x) } func (*KindExpression) ProtoMessage() {} func (x *KindExpression) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 KindExpression.ProtoReflect.Descriptor instead. func (*KindExpression) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{2} } func (x *KindExpression) GetName() string { if x != nil { return x.Name } return "" } // A reference to a property relative to the kind expressions. type PropertyReference struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the property. // If name includes "."s, it may be interpreted as a property name path. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } func (x *PropertyReference) Reset() { *x = PropertyReference{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PropertyReference) String() string { return protoimpl.X.MessageStringOf(x) } func (*PropertyReference) ProtoMessage() {} func (x *PropertyReference) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 PropertyReference.ProtoReflect.Descriptor instead. func (*PropertyReference) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{3} } func (x *PropertyReference) GetName() string { if x != nil { return x.Name } return "" } // A representation of a property in a projection. type Projection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The property to project. Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"` } func (x *Projection) Reset() { *x = Projection{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Projection) String() string { return protoimpl.X.MessageStringOf(x) } func (*Projection) ProtoMessage() {} func (x *Projection) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 Projection.ProtoReflect.Descriptor instead. func (*Projection) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{4} } func (x *Projection) GetProperty() *PropertyReference { if x != nil { return x.Property } return nil } // The desired order for a specific property. type PropertyOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The property to order by. Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"` // The direction to order by. Defaults to `ASCENDING`. Direction PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.datastore.v1beta3.PropertyOrder_Direction" json:"direction,omitempty"` } func (x *PropertyOrder) Reset() { *x = PropertyOrder{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PropertyOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*PropertyOrder) ProtoMessage() {} func (x *PropertyOrder) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 PropertyOrder.ProtoReflect.Descriptor instead. func (*PropertyOrder) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{5} } func (x *PropertyOrder) GetProperty() *PropertyReference { if x != nil { return x.Property } return nil } func (x *PropertyOrder) GetDirection() PropertyOrder_Direction { if x != nil { return x.Direction } return PropertyOrder_DIRECTION_UNSPECIFIED } // A holder for any type of filter. type Filter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of filter. // // Types that are assignable to FilterType: // *Filter_CompositeFilter // *Filter_PropertyFilter FilterType isFilter_FilterType `protobuf_oneof:"filter_type"` } func (x *Filter) Reset() { *x = Filter{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Filter) String() string { return protoimpl.X.MessageStringOf(x) } func (*Filter) ProtoMessage() {} func (x *Filter) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 Filter.ProtoReflect.Descriptor instead. func (*Filter) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{6} } func (m *Filter) GetFilterType() isFilter_FilterType { if m != nil { return m.FilterType } return nil } func (x *Filter) GetCompositeFilter() *CompositeFilter { if x, ok := x.GetFilterType().(*Filter_CompositeFilter); ok { return x.CompositeFilter } return nil } func (x *Filter) GetPropertyFilter() *PropertyFilter { if x, ok := x.GetFilterType().(*Filter_PropertyFilter); ok { return x.PropertyFilter } return nil } type isFilter_FilterType interface { isFilter_FilterType() } type Filter_CompositeFilter struct { // A composite filter. CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"` } type Filter_PropertyFilter struct { // A filter on a property. PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter,json=propertyFilter,proto3,oneof"` } func (*Filter_CompositeFilter) isFilter_FilterType() {} func (*Filter_PropertyFilter) isFilter_FilterType() {} // A filter that merges multiple other filters using the given operator. type CompositeFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The operator for combining multiple filters. Op CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.datastore.v1beta3.CompositeFilter_Operator" json:"op,omitempty"` // The list of filters to combine. // Must contain at least one filter. Filters []*Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` } func (x *CompositeFilter) Reset() { *x = CompositeFilter{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CompositeFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*CompositeFilter) ProtoMessage() {} func (x *CompositeFilter) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 CompositeFilter.ProtoReflect.Descriptor instead. func (*CompositeFilter) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{7} } func (x *CompositeFilter) GetOp() CompositeFilter_Operator { if x != nil { return x.Op } return CompositeFilter_OPERATOR_UNSPECIFIED } func (x *CompositeFilter) GetFilters() []*Filter { if x != nil { return x.Filters } return nil } // A filter on a specific property. type PropertyFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The property to filter by. Property *PropertyReference `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"` // The operator to filter by. Op PropertyFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.datastore.v1beta3.PropertyFilter_Operator" json:"op,omitempty"` // The value to compare the property to. Value *Value `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } func (x *PropertyFilter) Reset() { *x = PropertyFilter{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PropertyFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*PropertyFilter) ProtoMessage() {} func (x *PropertyFilter) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 PropertyFilter.ProtoReflect.Descriptor instead. func (*PropertyFilter) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{8} } func (x *PropertyFilter) GetProperty() *PropertyReference { if x != nil { return x.Property } return nil } func (x *PropertyFilter) GetOp() PropertyFilter_Operator { if x != nil { return x.Op } return PropertyFilter_OPERATOR_UNSPECIFIED } func (x *PropertyFilter) GetValue() *Value { if x != nil { return x.Value } return nil } // A [GQL // query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference). type GqlQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A string of the format described // [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference). QueryString string `protobuf:"bytes,1,opt,name=query_string,json=queryString,proto3" json:"query_string,omitempty"` // When false, the query string must not contain any literals and instead must // bind all values. For example, // `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while // `SELECT * FROM Kind WHERE a = @value` is. AllowLiterals bool `protobuf:"varint,2,opt,name=allow_literals,json=allowLiterals,proto3" json:"allow_literals,omitempty"` // For each non-reserved named binding site in the query string, there must be // a named parameter with that name, but not necessarily the inverse. // // Key must match regex `[A-Za-z_$][A-Za-z_$0-9]*`, must not match regex // `__.*__`, and must not be `""`. NamedBindings map[string]*GqlQueryParameter `protobuf:"bytes,5,rep,name=named_bindings,json=namedBindings,proto3" json:"named_bindings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Numbered binding site @1 references the first numbered parameter, // effectively using 1-based indexing, rather than the usual 0. // // For each binding site numbered i in `query_string`, there must be an i-th // numbered parameter. The inverse must also be true. PositionalBindings []*GqlQueryParameter `protobuf:"bytes,4,rep,name=positional_bindings,json=positionalBindings,proto3" json:"positional_bindings,omitempty"` } func (x *GqlQuery) Reset() { *x = GqlQuery{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GqlQuery) String() string { return protoimpl.X.MessageStringOf(x) } func (*GqlQuery) ProtoMessage() {} func (x *GqlQuery) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 GqlQuery.ProtoReflect.Descriptor instead. func (*GqlQuery) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{9} } func (x *GqlQuery) GetQueryString() string { if x != nil { return x.QueryString } return "" } func (x *GqlQuery) GetAllowLiterals() bool { if x != nil { return x.AllowLiterals } return false } func (x *GqlQuery) GetNamedBindings() map[string]*GqlQueryParameter { if x != nil { return x.NamedBindings } return nil } func (x *GqlQuery) GetPositionalBindings() []*GqlQueryParameter { if x != nil { return x.PositionalBindings } return nil } // A binding parameter for a GQL query. type GqlQueryParameter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of parameter. // // Types that are assignable to ParameterType: // *GqlQueryParameter_Value // *GqlQueryParameter_Cursor ParameterType isGqlQueryParameter_ParameterType `protobuf_oneof:"parameter_type"` } func (x *GqlQueryParameter) Reset() { *x = GqlQueryParameter{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GqlQueryParameter) String() string { return protoimpl.X.MessageStringOf(x) } func (*GqlQueryParameter) ProtoMessage() {} func (x *GqlQueryParameter) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 GqlQueryParameter.ProtoReflect.Descriptor instead. func (*GqlQueryParameter) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{10} } func (m *GqlQueryParameter) GetParameterType() isGqlQueryParameter_ParameterType { if m != nil { return m.ParameterType } return nil } func (x *GqlQueryParameter) GetValue() *Value { if x, ok := x.GetParameterType().(*GqlQueryParameter_Value); ok { return x.Value } return nil } func (x *GqlQueryParameter) GetCursor() []byte { if x, ok := x.GetParameterType().(*GqlQueryParameter_Cursor); ok { return x.Cursor } return nil } type isGqlQueryParameter_ParameterType interface { isGqlQueryParameter_ParameterType() } type GqlQueryParameter_Value struct { // A value parameter. Value *Value `protobuf:"bytes,2,opt,name=value,proto3,oneof"` } type GqlQueryParameter_Cursor struct { // A query cursor. Query cursors are returned in query // result batches. Cursor []byte `protobuf:"bytes,3,opt,name=cursor,proto3,oneof"` } func (*GqlQueryParameter_Value) isGqlQueryParameter_ParameterType() {} func (*GqlQueryParameter_Cursor) isGqlQueryParameter_ParameterType() {} // A batch of results produced by a query. type QueryResultBatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The number of results skipped, typically because of an offset. SkippedResults int32 `protobuf:"varint,6,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"` // A cursor that points to the position after the last skipped result. // Will be set when `skipped_results` != 0. SkippedCursor []byte `protobuf:"bytes,3,opt,name=skipped_cursor,json=skippedCursor,proto3" json:"skipped_cursor,omitempty"` // The result type for every entity in `entity_results`. EntityResultType EntityResult_ResultType `protobuf:"varint,1,opt,name=entity_result_type,json=entityResultType,proto3,enum=google.datastore.v1beta3.EntityResult_ResultType" json:"entity_result_type,omitempty"` // The results for this batch. EntityResults []*EntityResult `protobuf:"bytes,2,rep,name=entity_results,json=entityResults,proto3" json:"entity_results,omitempty"` // A cursor that points to the position after the last result in the batch. EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor,json=endCursor,proto3" json:"end_cursor,omitempty"` // The state of the query after the current batch. MoreResults QueryResultBatch_MoreResultsType `protobuf:"varint,5,opt,name=more_results,json=moreResults,proto3,enum=google.datastore.v1beta3.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"` // The version number of the snapshot this batch was returned from. // This applies to the range of results from the query's `start_cursor` (or // the beginning of the query if no cursor was given) to this batch's // `end_cursor` (not the query's `end_cursor`). // // In a single transaction, subsequent query result batches for the same query // can have a greater snapshot version number. Each batch's snapshot version // is valid for all preceding batches. // The value will be zero for eventually consistent queries. SnapshotVersion int64 `protobuf:"varint,7,opt,name=snapshot_version,json=snapshotVersion,proto3" json:"snapshot_version,omitempty"` } func (x *QueryResultBatch) Reset() { *x = QueryResultBatch{} if protoimpl.UnsafeEnabled { mi := &file_google_datastore_v1beta3_query_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueryResultBatch) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueryResultBatch) ProtoMessage() {} func (x *QueryResultBatch) ProtoReflect() protoreflect.Message { mi := &file_google_datastore_v1beta3_query_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 QueryResultBatch.ProtoReflect.Descriptor instead. func (*QueryResultBatch) Descriptor() ([]byte, []int) { return file_google_datastore_v1beta3_query_proto_rawDescGZIP(), []int{11} } func (x *QueryResultBatch) GetSkippedResults() int32 { if x != nil { return x.SkippedResults } return 0 } func (x *QueryResultBatch) GetSkippedCursor() []byte { if x != nil { return x.SkippedCursor } return nil } func (x *QueryResultBatch) GetEntityResultType() EntityResult_ResultType { if x != nil { return x.EntityResultType } return EntityResult_RESULT_TYPE_UNSPECIFIED } func (x *QueryResultBatch) GetEntityResults() []*EntityResult { if x != nil { return x.EntityResults } return nil } func (x *QueryResultBatch) GetEndCursor() []byte { if x != nil { return x.EndCursor } return nil } func (x *QueryResultBatch) GetMoreResults() QueryResultBatch_MoreResultsType { if x != nil { return x.MoreResults } return QueryResultBatch_MORE_RESULTS_TYPE_UNSPECIFIED } func (x *QueryResultBatch) GetSnapshotVersion() int64 { if x != nil { return x.SnapshotVersion } return 0 } var File_google_datastore_v1beta3_query_proto protoreflect.FileDescriptor var file_google_datastore_v1beta3_query_proto_rawDesc = []byte{ 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x51, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x22, 0xdf, 0x03, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x4f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x24, 0x0a, 0x0e, 0x4b, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x27, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x2d, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x22, 0xeb, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x4e, 0x43, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x10, 0x0b, 0x22, 0xff, 0x02, 0x0a, 0x08, 0x47, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x47, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x5c, 0x0a, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x47, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x6d, 0x0a, 0x12, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x47, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x78, 0x0a, 0x11, 0x47, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xd6, 0x04, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x12, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x0c, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x55, 0x52, 0x53, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, 0x03, 0x42, 0xd5, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xea, 0x02, 0x21, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_datastore_v1beta3_query_proto_rawDescOnce sync.Once file_google_datastore_v1beta3_query_proto_rawDescData = file_google_datastore_v1beta3_query_proto_rawDesc ) func file_google_datastore_v1beta3_query_proto_rawDescGZIP() []byte { file_google_datastore_v1beta3_query_proto_rawDescOnce.Do(func() { file_google_datastore_v1beta3_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_datastore_v1beta3_query_proto_rawDescData) }) return file_google_datastore_v1beta3_query_proto_rawDescData } var file_google_datastore_v1beta3_query_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_google_datastore_v1beta3_query_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_google_datastore_v1beta3_query_proto_goTypes = []interface{}{ (EntityResult_ResultType)(0), // 0: google.datastore.v1beta3.EntityResult.ResultType (PropertyOrder_Direction)(0), // 1: google.datastore.v1beta3.PropertyOrder.Direction (CompositeFilter_Operator)(0), // 2: google.datastore.v1beta3.CompositeFilter.Operator (PropertyFilter_Operator)(0), // 3: google.datastore.v1beta3.PropertyFilter.Operator (QueryResultBatch_MoreResultsType)(0), // 4: google.datastore.v1beta3.QueryResultBatch.MoreResultsType (*EntityResult)(nil), // 5: google.datastore.v1beta3.EntityResult (*Query)(nil), // 6: google.datastore.v1beta3.Query (*KindExpression)(nil), // 7: google.datastore.v1beta3.KindExpression (*PropertyReference)(nil), // 8: google.datastore.v1beta3.PropertyReference (*Projection)(nil), // 9: google.datastore.v1beta3.Projection (*PropertyOrder)(nil), // 10: google.datastore.v1beta3.PropertyOrder (*Filter)(nil), // 11: google.datastore.v1beta3.Filter (*CompositeFilter)(nil), // 12: google.datastore.v1beta3.CompositeFilter (*PropertyFilter)(nil), // 13: google.datastore.v1beta3.PropertyFilter (*GqlQuery)(nil), // 14: google.datastore.v1beta3.GqlQuery (*GqlQueryParameter)(nil), // 15: google.datastore.v1beta3.GqlQueryParameter (*QueryResultBatch)(nil), // 16: google.datastore.v1beta3.QueryResultBatch nil, // 17: google.datastore.v1beta3.GqlQuery.NamedBindingsEntry (*Entity)(nil), // 18: google.datastore.v1beta3.Entity (*wrapperspb.Int32Value)(nil), // 19: google.protobuf.Int32Value (*Value)(nil), // 20: google.datastore.v1beta3.Value } var file_google_datastore_v1beta3_query_proto_depIdxs = []int32{ 18, // 0: google.datastore.v1beta3.EntityResult.entity:type_name -> google.datastore.v1beta3.Entity 9, // 1: google.datastore.v1beta3.Query.projection:type_name -> google.datastore.v1beta3.Projection 7, // 2: google.datastore.v1beta3.Query.kind:type_name -> google.datastore.v1beta3.KindExpression 11, // 3: google.datastore.v1beta3.Query.filter:type_name -> google.datastore.v1beta3.Filter 10, // 4: google.datastore.v1beta3.Query.order:type_name -> google.datastore.v1beta3.PropertyOrder 8, // 5: google.datastore.v1beta3.Query.distinct_on:type_name -> google.datastore.v1beta3.PropertyReference 19, // 6: google.datastore.v1beta3.Query.limit:type_name -> google.protobuf.Int32Value 8, // 7: google.datastore.v1beta3.Projection.property:type_name -> google.datastore.v1beta3.PropertyReference 8, // 8: google.datastore.v1beta3.PropertyOrder.property:type_name -> google.datastore.v1beta3.PropertyReference 1, // 9: google.datastore.v1beta3.PropertyOrder.direction:type_name -> google.datastore.v1beta3.PropertyOrder.Direction 12, // 10: google.datastore.v1beta3.Filter.composite_filter:type_name -> google.datastore.v1beta3.CompositeFilter 13, // 11: google.datastore.v1beta3.Filter.property_filter:type_name -> google.datastore.v1beta3.PropertyFilter 2, // 12: google.datastore.v1beta3.CompositeFilter.op:type_name -> google.datastore.v1beta3.CompositeFilter.Operator 11, // 13: google.datastore.v1beta3.CompositeFilter.filters:type_name -> google.datastore.v1beta3.Filter 8, // 14: google.datastore.v1beta3.PropertyFilter.property:type_name -> google.datastore.v1beta3.PropertyReference 3, // 15: google.datastore.v1beta3.PropertyFilter.op:type_name -> google.datastore.v1beta3.PropertyFilter.Operator 20, // 16: google.datastore.v1beta3.PropertyFilter.value:type_name -> google.datastore.v1beta3.Value 17, // 17: google.datastore.v1beta3.GqlQuery.named_bindings:type_name -> google.datastore.v1beta3.GqlQuery.NamedBindingsEntry 15, // 18: google.datastore.v1beta3.GqlQuery.positional_bindings:type_name -> google.datastore.v1beta3.GqlQueryParameter 20, // 19: google.datastore.v1beta3.GqlQueryParameter.value:type_name -> google.datastore.v1beta3.Value 0, // 20: google.datastore.v1beta3.QueryResultBatch.entity_result_type:type_name -> google.datastore.v1beta3.EntityResult.ResultType 5, // 21: google.datastore.v1beta3.QueryResultBatch.entity_results:type_name -> google.datastore.v1beta3.EntityResult 4, // 22: google.datastore.v1beta3.QueryResultBatch.more_results:type_name -> google.datastore.v1beta3.QueryResultBatch.MoreResultsType 15, // 23: google.datastore.v1beta3.GqlQuery.NamedBindingsEntry.value:type_name -> google.datastore.v1beta3.GqlQueryParameter 24, // [24:24] is the sub-list for method output_type 24, // [24:24] is the sub-list for method input_type 24, // [24:24] is the sub-list for extension type_name 24, // [24:24] is the sub-list for extension extendee 0, // [0:24] is the sub-list for field type_name } func init() { file_google_datastore_v1beta3_query_proto_init() } func file_google_datastore_v1beta3_query_proto_init() { if File_google_datastore_v1beta3_query_proto != nil { return } file_google_datastore_v1beta3_entity_proto_init() if !protoimpl.UnsafeEnabled { file_google_datastore_v1beta3_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EntityResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Query); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KindExpression); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyReference); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Projection); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyOrder); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Filter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CompositeFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GqlQuery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GqlQueryParameter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_datastore_v1beta3_query_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryResultBatch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_datastore_v1beta3_query_proto_msgTypes[6].OneofWrappers = []interface{}{ (*Filter_CompositeFilter)(nil), (*Filter_PropertyFilter)(nil), } file_google_datastore_v1beta3_query_proto_msgTypes[10].OneofWrappers = []interface{}{ (*GqlQueryParameter_Value)(nil), (*GqlQueryParameter_Cursor)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_datastore_v1beta3_query_proto_rawDesc, NumEnums: 5, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_datastore_v1beta3_query_proto_goTypes, DependencyIndexes: file_google_datastore_v1beta3_query_proto_depIdxs, EnumInfos: file_google_datastore_v1beta3_query_proto_enumTypes, MessageInfos: file_google_datastore_v1beta3_query_proto_msgTypes, }.Build() File_google_datastore_v1beta3_query_proto = out.File file_google_datastore_v1beta3_query_proto_rawDesc = nil file_google_datastore_v1beta3_query_proto_goTypes = nil file_google_datastore_v1beta3_query_proto_depIdxs = nil }