1// Copyright 2020 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.25.0
18// 	protoc        v3.12.3
19// source: google/ads/googleads/v1/common/matching_function.proto
20
21package common
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
28	wrappers "github.com/golang/protobuf/ptypes/wrappers"
29	enums "google.golang.org/genproto/googleapis/ads/googleads/v1/enums"
30	_ "google.golang.org/genproto/googleapis/api/annotations"
31	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
32	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
33)
34
35const (
36	// Verify that this generated code is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
38	// Verify that runtime/protoimpl is sufficiently up-to-date.
39	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
40)
41
42// This is a compile-time assertion that a sufficiently up-to-date version
43// of the legacy proto package is being used.
44const _ = proto.ProtoPackageIsVersion4
45
46// Matching function associated with a
47// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used
48// to filter the set of feed items selected.
49type MatchingFunction struct {
50	state         protoimpl.MessageState
51	sizeCache     protoimpl.SizeCache
52	unknownFields protoimpl.UnknownFields
53
54	// String representation of the Function.
55	//
56	// Examples:
57	//
58	// 1. IDENTITY(true) or IDENTITY(false). All or no feed items served.
59	// 2. EQUALS(CONTEXT.DEVICE,"Mobile")
60	// 3. IN(FEED_ITEM_ID,{1000001,1000002,1000003})
61	// 4. CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"})
62	// 5. AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile"))
63	//
64	// For more details, visit
65	// https://developers.google.com/adwords/api/docs/guides/feed-matching-functions
66	//
67	// Note that because multiple strings may represent the same underlying
68	// function (whitespace and single versus double quotation marks, for
69	// example), the value returned may not be identical to the string sent in a
70	// mutate request.
71	FunctionString *wrappers.StringValue `protobuf:"bytes,1,opt,name=function_string,json=functionString,proto3" json:"function_string,omitempty"`
72	// Operator for a function.
73	Operator enums.MatchingFunctionOperatorEnum_MatchingFunctionOperator `protobuf:"varint,4,opt,name=operator,proto3,enum=google.ads.googleads.v1.enums.MatchingFunctionOperatorEnum_MatchingFunctionOperator" json:"operator,omitempty"`
74	// The operands on the left hand side of the equation. This is also the
75	// operand to be used for single operand expressions such as NOT.
76	LeftOperands []*Operand `protobuf:"bytes,2,rep,name=left_operands,json=leftOperands,proto3" json:"left_operands,omitempty"`
77	// The operands on the right hand side of the equation.
78	RightOperands []*Operand `protobuf:"bytes,3,rep,name=right_operands,json=rightOperands,proto3" json:"right_operands,omitempty"`
79}
80
81func (x *MatchingFunction) Reset() {
82	*x = MatchingFunction{}
83	if protoimpl.UnsafeEnabled {
84		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[0]
85		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
86		ms.StoreMessageInfo(mi)
87	}
88}
89
90func (x *MatchingFunction) String() string {
91	return protoimpl.X.MessageStringOf(x)
92}
93
94func (*MatchingFunction) ProtoMessage() {}
95
96func (x *MatchingFunction) ProtoReflect() protoreflect.Message {
97	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[0]
98	if protoimpl.UnsafeEnabled && x != nil {
99		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
100		if ms.LoadMessageInfo() == nil {
101			ms.StoreMessageInfo(mi)
102		}
103		return ms
104	}
105	return mi.MessageOf(x)
106}
107
108// Deprecated: Use MatchingFunction.ProtoReflect.Descriptor instead.
109func (*MatchingFunction) Descriptor() ([]byte, []int) {
110	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{0}
111}
112
113func (x *MatchingFunction) GetFunctionString() *wrappers.StringValue {
114	if x != nil {
115		return x.FunctionString
116	}
117	return nil
118}
119
120func (x *MatchingFunction) GetOperator() enums.MatchingFunctionOperatorEnum_MatchingFunctionOperator {
121	if x != nil {
122		return x.Operator
123	}
124	return enums.MatchingFunctionOperatorEnum_UNSPECIFIED
125}
126
127func (x *MatchingFunction) GetLeftOperands() []*Operand {
128	if x != nil {
129		return x.LeftOperands
130	}
131	return nil
132}
133
134func (x *MatchingFunction) GetRightOperands() []*Operand {
135	if x != nil {
136		return x.RightOperands
137	}
138	return nil
139}
140
141// An operand in a matching function.
142type Operand struct {
143	state         protoimpl.MessageState
144	sizeCache     protoimpl.SizeCache
145	unknownFields protoimpl.UnknownFields
146
147	// Different operands that can be used in a matching function. Required.
148	//
149	// Types that are assignable to FunctionArgumentOperand:
150	//	*Operand_ConstantOperand_
151	//	*Operand_FeedAttributeOperand_
152	//	*Operand_FunctionOperand_
153	//	*Operand_RequestContextOperand_
154	FunctionArgumentOperand isOperand_FunctionArgumentOperand `protobuf_oneof:"function_argument_operand"`
155}
156
157func (x *Operand) Reset() {
158	*x = Operand{}
159	if protoimpl.UnsafeEnabled {
160		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[1]
161		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
162		ms.StoreMessageInfo(mi)
163	}
164}
165
166func (x *Operand) String() string {
167	return protoimpl.X.MessageStringOf(x)
168}
169
170func (*Operand) ProtoMessage() {}
171
172func (x *Operand) ProtoReflect() protoreflect.Message {
173	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[1]
174	if protoimpl.UnsafeEnabled && x != nil {
175		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
176		if ms.LoadMessageInfo() == nil {
177			ms.StoreMessageInfo(mi)
178		}
179		return ms
180	}
181	return mi.MessageOf(x)
182}
183
184// Deprecated: Use Operand.ProtoReflect.Descriptor instead.
185func (*Operand) Descriptor() ([]byte, []int) {
186	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{1}
187}
188
189func (m *Operand) GetFunctionArgumentOperand() isOperand_FunctionArgumentOperand {
190	if m != nil {
191		return m.FunctionArgumentOperand
192	}
193	return nil
194}
195
196func (x *Operand) GetConstantOperand() *Operand_ConstantOperand {
197	if x, ok := x.GetFunctionArgumentOperand().(*Operand_ConstantOperand_); ok {
198		return x.ConstantOperand
199	}
200	return nil
201}
202
203func (x *Operand) GetFeedAttributeOperand() *Operand_FeedAttributeOperand {
204	if x, ok := x.GetFunctionArgumentOperand().(*Operand_FeedAttributeOperand_); ok {
205		return x.FeedAttributeOperand
206	}
207	return nil
208}
209
210func (x *Operand) GetFunctionOperand() *Operand_FunctionOperand {
211	if x, ok := x.GetFunctionArgumentOperand().(*Operand_FunctionOperand_); ok {
212		return x.FunctionOperand
213	}
214	return nil
215}
216
217func (x *Operand) GetRequestContextOperand() *Operand_RequestContextOperand {
218	if x, ok := x.GetFunctionArgumentOperand().(*Operand_RequestContextOperand_); ok {
219		return x.RequestContextOperand
220	}
221	return nil
222}
223
224type isOperand_FunctionArgumentOperand interface {
225	isOperand_FunctionArgumentOperand()
226}
227
228type Operand_ConstantOperand_ struct {
229	// A constant operand in a matching function.
230	ConstantOperand *Operand_ConstantOperand `protobuf:"bytes,1,opt,name=constant_operand,json=constantOperand,proto3,oneof"`
231}
232
233type Operand_FeedAttributeOperand_ struct {
234	// This operand specifies a feed attribute in feed.
235	FeedAttributeOperand *Operand_FeedAttributeOperand `protobuf:"bytes,2,opt,name=feed_attribute_operand,json=feedAttributeOperand,proto3,oneof"`
236}
237
238type Operand_FunctionOperand_ struct {
239	// A function operand in a matching function.
240	// Used to represent nested functions.
241	FunctionOperand *Operand_FunctionOperand `protobuf:"bytes,3,opt,name=function_operand,json=functionOperand,proto3,oneof"`
242}
243
244type Operand_RequestContextOperand_ struct {
245	// An operand in a function referring to a value in the request context.
246	RequestContextOperand *Operand_RequestContextOperand `protobuf:"bytes,4,opt,name=request_context_operand,json=requestContextOperand,proto3,oneof"`
247}
248
249func (*Operand_ConstantOperand_) isOperand_FunctionArgumentOperand() {}
250
251func (*Operand_FeedAttributeOperand_) isOperand_FunctionArgumentOperand() {}
252
253func (*Operand_FunctionOperand_) isOperand_FunctionArgumentOperand() {}
254
255func (*Operand_RequestContextOperand_) isOperand_FunctionArgumentOperand() {}
256
257// A constant operand in a matching function.
258type Operand_ConstantOperand struct {
259	state         protoimpl.MessageState
260	sizeCache     protoimpl.SizeCache
261	unknownFields protoimpl.UnknownFields
262
263	// Constant operand values. Required.
264	//
265	// Types that are assignable to ConstantOperandValue:
266	//	*Operand_ConstantOperand_StringValue
267	//	*Operand_ConstantOperand_LongValue
268	//	*Operand_ConstantOperand_BooleanValue
269	//	*Operand_ConstantOperand_DoubleValue
270	ConstantOperandValue isOperand_ConstantOperand_ConstantOperandValue `protobuf_oneof:"constant_operand_value"`
271}
272
273func (x *Operand_ConstantOperand) Reset() {
274	*x = Operand_ConstantOperand{}
275	if protoimpl.UnsafeEnabled {
276		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[2]
277		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
278		ms.StoreMessageInfo(mi)
279	}
280}
281
282func (x *Operand_ConstantOperand) String() string {
283	return protoimpl.X.MessageStringOf(x)
284}
285
286func (*Operand_ConstantOperand) ProtoMessage() {}
287
288func (x *Operand_ConstantOperand) ProtoReflect() protoreflect.Message {
289	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[2]
290	if protoimpl.UnsafeEnabled && x != nil {
291		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
292		if ms.LoadMessageInfo() == nil {
293			ms.StoreMessageInfo(mi)
294		}
295		return ms
296	}
297	return mi.MessageOf(x)
298}
299
300// Deprecated: Use Operand_ConstantOperand.ProtoReflect.Descriptor instead.
301func (*Operand_ConstantOperand) Descriptor() ([]byte, []int) {
302	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{1, 0}
303}
304
305func (m *Operand_ConstantOperand) GetConstantOperandValue() isOperand_ConstantOperand_ConstantOperandValue {
306	if m != nil {
307		return m.ConstantOperandValue
308	}
309	return nil
310}
311
312func (x *Operand_ConstantOperand) GetStringValue() *wrappers.StringValue {
313	if x, ok := x.GetConstantOperandValue().(*Operand_ConstantOperand_StringValue); ok {
314		return x.StringValue
315	}
316	return nil
317}
318
319func (x *Operand_ConstantOperand) GetLongValue() *wrappers.Int64Value {
320	if x, ok := x.GetConstantOperandValue().(*Operand_ConstantOperand_LongValue); ok {
321		return x.LongValue
322	}
323	return nil
324}
325
326func (x *Operand_ConstantOperand) GetBooleanValue() *wrappers.BoolValue {
327	if x, ok := x.GetConstantOperandValue().(*Operand_ConstantOperand_BooleanValue); ok {
328		return x.BooleanValue
329	}
330	return nil
331}
332
333func (x *Operand_ConstantOperand) GetDoubleValue() *wrappers.DoubleValue {
334	if x, ok := x.GetConstantOperandValue().(*Operand_ConstantOperand_DoubleValue); ok {
335		return x.DoubleValue
336	}
337	return nil
338}
339
340type isOperand_ConstantOperand_ConstantOperandValue interface {
341	isOperand_ConstantOperand_ConstantOperandValue()
342}
343
344type Operand_ConstantOperand_StringValue struct {
345	// String value of the operand if it is a string type.
346	StringValue *wrappers.StringValue `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
347}
348
349type Operand_ConstantOperand_LongValue struct {
350	// Int64 value of the operand if it is a int64 type.
351	LongValue *wrappers.Int64Value `protobuf:"bytes,2,opt,name=long_value,json=longValue,proto3,oneof"`
352}
353
354type Operand_ConstantOperand_BooleanValue struct {
355	// Boolean value of the operand if it is a boolean type.
356	BooleanValue *wrappers.BoolValue `protobuf:"bytes,3,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
357}
358
359type Operand_ConstantOperand_DoubleValue struct {
360	// Double value of the operand if it is a double type.
361	DoubleValue *wrappers.DoubleValue `protobuf:"bytes,4,opt,name=double_value,json=doubleValue,proto3,oneof"`
362}
363
364func (*Operand_ConstantOperand_StringValue) isOperand_ConstantOperand_ConstantOperandValue() {}
365
366func (*Operand_ConstantOperand_LongValue) isOperand_ConstantOperand_ConstantOperandValue() {}
367
368func (*Operand_ConstantOperand_BooleanValue) isOperand_ConstantOperand_ConstantOperandValue() {}
369
370func (*Operand_ConstantOperand_DoubleValue) isOperand_ConstantOperand_ConstantOperandValue() {}
371
372// A feed attribute operand in a matching function.
373// Used to represent a feed attribute in feed.
374type Operand_FeedAttributeOperand struct {
375	state         protoimpl.MessageState
376	sizeCache     protoimpl.SizeCache
377	unknownFields protoimpl.UnknownFields
378
379	// The associated feed. Required.
380	FeedId *wrappers.Int64Value `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
381	// Id of the referenced feed attribute. Required.
382	FeedAttributeId *wrappers.Int64Value `protobuf:"bytes,2,opt,name=feed_attribute_id,json=feedAttributeId,proto3" json:"feed_attribute_id,omitempty"`
383}
384
385func (x *Operand_FeedAttributeOperand) Reset() {
386	*x = Operand_FeedAttributeOperand{}
387	if protoimpl.UnsafeEnabled {
388		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[3]
389		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
390		ms.StoreMessageInfo(mi)
391	}
392}
393
394func (x *Operand_FeedAttributeOperand) String() string {
395	return protoimpl.X.MessageStringOf(x)
396}
397
398func (*Operand_FeedAttributeOperand) ProtoMessage() {}
399
400func (x *Operand_FeedAttributeOperand) ProtoReflect() protoreflect.Message {
401	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[3]
402	if protoimpl.UnsafeEnabled && x != nil {
403		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
404		if ms.LoadMessageInfo() == nil {
405			ms.StoreMessageInfo(mi)
406		}
407		return ms
408	}
409	return mi.MessageOf(x)
410}
411
412// Deprecated: Use Operand_FeedAttributeOperand.ProtoReflect.Descriptor instead.
413func (*Operand_FeedAttributeOperand) Descriptor() ([]byte, []int) {
414	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{1, 1}
415}
416
417func (x *Operand_FeedAttributeOperand) GetFeedId() *wrappers.Int64Value {
418	if x != nil {
419		return x.FeedId
420	}
421	return nil
422}
423
424func (x *Operand_FeedAttributeOperand) GetFeedAttributeId() *wrappers.Int64Value {
425	if x != nil {
426		return x.FeedAttributeId
427	}
428	return nil
429}
430
431// A function operand in a matching function.
432// Used to represent nested functions.
433type Operand_FunctionOperand struct {
434	state         protoimpl.MessageState
435	sizeCache     protoimpl.SizeCache
436	unknownFields protoimpl.UnknownFields
437
438	// The matching function held in this operand.
439	MatchingFunction *MatchingFunction `protobuf:"bytes,1,opt,name=matching_function,json=matchingFunction,proto3" json:"matching_function,omitempty"`
440}
441
442func (x *Operand_FunctionOperand) Reset() {
443	*x = Operand_FunctionOperand{}
444	if protoimpl.UnsafeEnabled {
445		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[4]
446		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
447		ms.StoreMessageInfo(mi)
448	}
449}
450
451func (x *Operand_FunctionOperand) String() string {
452	return protoimpl.X.MessageStringOf(x)
453}
454
455func (*Operand_FunctionOperand) ProtoMessage() {}
456
457func (x *Operand_FunctionOperand) ProtoReflect() protoreflect.Message {
458	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[4]
459	if protoimpl.UnsafeEnabled && x != nil {
460		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
461		if ms.LoadMessageInfo() == nil {
462			ms.StoreMessageInfo(mi)
463		}
464		return ms
465	}
466	return mi.MessageOf(x)
467}
468
469// Deprecated: Use Operand_FunctionOperand.ProtoReflect.Descriptor instead.
470func (*Operand_FunctionOperand) Descriptor() ([]byte, []int) {
471	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{1, 2}
472}
473
474func (x *Operand_FunctionOperand) GetMatchingFunction() *MatchingFunction {
475	if x != nil {
476		return x.MatchingFunction
477	}
478	return nil
479}
480
481// An operand in a function referring to a value in the request context.
482type Operand_RequestContextOperand struct {
483	state         protoimpl.MessageState
484	sizeCache     protoimpl.SizeCache
485	unknownFields protoimpl.UnknownFields
486
487	// Type of value to be referred in the request context.
488	ContextType enums.MatchingFunctionContextTypeEnum_MatchingFunctionContextType `protobuf:"varint,1,opt,name=context_type,json=contextType,proto3,enum=google.ads.googleads.v1.enums.MatchingFunctionContextTypeEnum_MatchingFunctionContextType" json:"context_type,omitempty"`
489}
490
491func (x *Operand_RequestContextOperand) Reset() {
492	*x = Operand_RequestContextOperand{}
493	if protoimpl.UnsafeEnabled {
494		mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[5]
495		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
496		ms.StoreMessageInfo(mi)
497	}
498}
499
500func (x *Operand_RequestContextOperand) String() string {
501	return protoimpl.X.MessageStringOf(x)
502}
503
504func (*Operand_RequestContextOperand) ProtoMessage() {}
505
506func (x *Operand_RequestContextOperand) ProtoReflect() protoreflect.Message {
507	mi := &file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[5]
508	if protoimpl.UnsafeEnabled && x != nil {
509		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
510		if ms.LoadMessageInfo() == nil {
511			ms.StoreMessageInfo(mi)
512		}
513		return ms
514	}
515	return mi.MessageOf(x)
516}
517
518// Deprecated: Use Operand_RequestContextOperand.ProtoReflect.Descriptor instead.
519func (*Operand_RequestContextOperand) Descriptor() ([]byte, []int) {
520	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP(), []int{1, 3}
521}
522
523func (x *Operand_RequestContextOperand) GetContextType() enums.MatchingFunctionContextTypeEnum_MatchingFunctionContextType {
524	if x != nil {
525		return x.ContextType
526	}
527	return enums.MatchingFunctionContextTypeEnum_UNSPECIFIED
528}
529
530var File_google_ads_googleads_v1_common_matching_function_proto protoreflect.FileDescriptor
531
532var file_google_ads_googleads_v1_common_matching_function_proto_rawDesc = []byte{
533	0x0a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f,
534	0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
535	0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
536	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
537	0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76,
538	0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x1a, 0x42, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
539	0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76,
540	0x31, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67,
541	0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
542	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3e, 0x67, 0x6f,
543	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
544	0x64, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x6d, 0x61, 0x74, 0x63,
545	0x68, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70,
546	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
547	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
548	0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f,
549	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
550	0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x02, 0x0a, 0x10, 0x4d,
551	0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
552	0x45, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69,
553	0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
554	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
555	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
556	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x70, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
557	0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
558	0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e,
559	0x76, 0x31, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e,
560	0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
561	0x72, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x75,
562	0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08,
563	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6c, 0x65, 0x66, 0x74,
564	0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
565	0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f,
566	0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
567	0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x0c, 0x6c, 0x65, 0x66, 0x74, 0x4f, 0x70,
568	0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x4e, 0x0a, 0x0e, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f,
569	0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27,
570	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
571	0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
572	0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x70,
573	0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x22, 0xb9, 0x09, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x72, 0x61,
574	0x6e, 0x64, 0x12, 0x64, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6f,
575	0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67,
576	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
577	0x61, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70,
578	0x65, 0x72, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4f, 0x70,
579	0x65, 0x72, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e,
580	0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x74, 0x0a, 0x16, 0x66, 0x65, 0x65, 0x64,
581	0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61,
582	0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
583	0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e,
584	0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e,
585	0x64, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4f,
586	0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x14, 0x66, 0x65, 0x65, 0x64, 0x41, 0x74,
587	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x64,
588	0x0a, 0x10, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61,
589	0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
590	0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e,
591	0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e,
592	0x64, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e,
593	0x64, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65,
594	0x72, 0x61, 0x6e, 0x64, 0x12, 0x77, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
595	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18,
596	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
597	0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e,
598	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x2e, 0x52,
599	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4f, 0x70, 0x65,
600	0x72, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43,
601	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x1a, 0xb2, 0x02,
602	0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e,
603	0x64, 0x12, 0x41, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75,
604	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
605	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
606	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
607	0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c,
608	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
609	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34,
610	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x61, 0x6c,
611	0x75, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61,
612	0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
613	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
614	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e,
615	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
616	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
617	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f,
618	0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75,
619	0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73,
620	0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x76, 0x61, 0x6c,
621	0x75, 0x65, 0x1a, 0x95, 0x01, 0x0a, 0x14, 0x46, 0x65, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69,
622	0x62, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x66,
623	0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
624	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
625	0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49,
626	0x64, 0x12, 0x47, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
627	0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
628	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
629	0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x41,
630	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x49, 0x64, 0x1a, 0x70, 0x0a, 0x0f, 0x46, 0x75,
631	0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x5d, 0x0a,
632	0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
633	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
634	0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e,
635	0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69,
636	0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63,
637	0x68, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x96, 0x01, 0x0a,
638	0x15, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4f,
639	0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x7d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
640	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5a, 0x2e, 0x67,
641	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
642	0x61, 0x64, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x74,
643	0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
644	0x74, 0x65, 0x78, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x4d, 0x61, 0x74,
645	0x63, 0x68, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
646	0x74, 0x65, 0x78, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
647	0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
648	0x6e, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61,
649	0x6e, 0x64, 0x42, 0xf0, 0x01, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
650	0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e,
651	0x76, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68,
652	0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
653	0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
654	0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
655	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f,
656	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
657	0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xa2, 0x02, 0x03, 0x47, 0x41, 0x41, 0xaa, 0x02,
658	0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x73, 0x2e, 0x47, 0x6f, 0x6f, 0x67,
659	0x6c, 0x65, 0x41, 0x64, 0x73, 0x2e, 0x56, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xca,
660	0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x41, 0x64, 0x73, 0x5c, 0x47, 0x6f, 0x6f,
661	0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
662	0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x73, 0x3a, 0x3a,
663	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x3a, 0x3a, 0x43,
664	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
665}
666
667var (
668	file_google_ads_googleads_v1_common_matching_function_proto_rawDescOnce sync.Once
669	file_google_ads_googleads_v1_common_matching_function_proto_rawDescData = file_google_ads_googleads_v1_common_matching_function_proto_rawDesc
670)
671
672func file_google_ads_googleads_v1_common_matching_function_proto_rawDescGZIP() []byte {
673	file_google_ads_googleads_v1_common_matching_function_proto_rawDescOnce.Do(func() {
674		file_google_ads_googleads_v1_common_matching_function_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_ads_googleads_v1_common_matching_function_proto_rawDescData)
675	})
676	return file_google_ads_googleads_v1_common_matching_function_proto_rawDescData
677}
678
679var file_google_ads_googleads_v1_common_matching_function_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
680var file_google_ads_googleads_v1_common_matching_function_proto_goTypes = []interface{}{
681	(*MatchingFunction)(nil),                                               // 0: google.ads.googleads.v1.common.MatchingFunction
682	(*Operand)(nil),                                                        // 1: google.ads.googleads.v1.common.Operand
683	(*Operand_ConstantOperand)(nil),                                        // 2: google.ads.googleads.v1.common.Operand.ConstantOperand
684	(*Operand_FeedAttributeOperand)(nil),                                   // 3: google.ads.googleads.v1.common.Operand.FeedAttributeOperand
685	(*Operand_FunctionOperand)(nil),                                        // 4: google.ads.googleads.v1.common.Operand.FunctionOperand
686	(*Operand_RequestContextOperand)(nil),                                  // 5: google.ads.googleads.v1.common.Operand.RequestContextOperand
687	(*wrappers.StringValue)(nil),                                           // 6: google.protobuf.StringValue
688	(enums.MatchingFunctionOperatorEnum_MatchingFunctionOperator)(0),       // 7: google.ads.googleads.v1.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator
689	(*wrappers.Int64Value)(nil),                                            // 8: google.protobuf.Int64Value
690	(*wrappers.BoolValue)(nil),                                             // 9: google.protobuf.BoolValue
691	(*wrappers.DoubleValue)(nil),                                           // 10: google.protobuf.DoubleValue
692	(enums.MatchingFunctionContextTypeEnum_MatchingFunctionContextType)(0), // 11: google.ads.googleads.v1.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType
693}
694var file_google_ads_googleads_v1_common_matching_function_proto_depIdxs = []int32{
695	6,  // 0: google.ads.googleads.v1.common.MatchingFunction.function_string:type_name -> google.protobuf.StringValue
696	7,  // 1: google.ads.googleads.v1.common.MatchingFunction.operator:type_name -> google.ads.googleads.v1.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator
697	1,  // 2: google.ads.googleads.v1.common.MatchingFunction.left_operands:type_name -> google.ads.googleads.v1.common.Operand
698	1,  // 3: google.ads.googleads.v1.common.MatchingFunction.right_operands:type_name -> google.ads.googleads.v1.common.Operand
699	2,  // 4: google.ads.googleads.v1.common.Operand.constant_operand:type_name -> google.ads.googleads.v1.common.Operand.ConstantOperand
700	3,  // 5: google.ads.googleads.v1.common.Operand.feed_attribute_operand:type_name -> google.ads.googleads.v1.common.Operand.FeedAttributeOperand
701	4,  // 6: google.ads.googleads.v1.common.Operand.function_operand:type_name -> google.ads.googleads.v1.common.Operand.FunctionOperand
702	5,  // 7: google.ads.googleads.v1.common.Operand.request_context_operand:type_name -> google.ads.googleads.v1.common.Operand.RequestContextOperand
703	6,  // 8: google.ads.googleads.v1.common.Operand.ConstantOperand.string_value:type_name -> google.protobuf.StringValue
704	8,  // 9: google.ads.googleads.v1.common.Operand.ConstantOperand.long_value:type_name -> google.protobuf.Int64Value
705	9,  // 10: google.ads.googleads.v1.common.Operand.ConstantOperand.boolean_value:type_name -> google.protobuf.BoolValue
706	10, // 11: google.ads.googleads.v1.common.Operand.ConstantOperand.double_value:type_name -> google.protobuf.DoubleValue
707	8,  // 12: google.ads.googleads.v1.common.Operand.FeedAttributeOperand.feed_id:type_name -> google.protobuf.Int64Value
708	8,  // 13: google.ads.googleads.v1.common.Operand.FeedAttributeOperand.feed_attribute_id:type_name -> google.protobuf.Int64Value
709	0,  // 14: google.ads.googleads.v1.common.Operand.FunctionOperand.matching_function:type_name -> google.ads.googleads.v1.common.MatchingFunction
710	11, // 15: google.ads.googleads.v1.common.Operand.RequestContextOperand.context_type:type_name -> google.ads.googleads.v1.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType
711	16, // [16:16] is the sub-list for method output_type
712	16, // [16:16] is the sub-list for method input_type
713	16, // [16:16] is the sub-list for extension type_name
714	16, // [16:16] is the sub-list for extension extendee
715	0,  // [0:16] is the sub-list for field type_name
716}
717
718func init() { file_google_ads_googleads_v1_common_matching_function_proto_init() }
719func file_google_ads_googleads_v1_common_matching_function_proto_init() {
720	if File_google_ads_googleads_v1_common_matching_function_proto != nil {
721		return
722	}
723	if !protoimpl.UnsafeEnabled {
724		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
725			switch v := v.(*MatchingFunction); i {
726			case 0:
727				return &v.state
728			case 1:
729				return &v.sizeCache
730			case 2:
731				return &v.unknownFields
732			default:
733				return nil
734			}
735		}
736		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
737			switch v := v.(*Operand); i {
738			case 0:
739				return &v.state
740			case 1:
741				return &v.sizeCache
742			case 2:
743				return &v.unknownFields
744			default:
745				return nil
746			}
747		}
748		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
749			switch v := v.(*Operand_ConstantOperand); i {
750			case 0:
751				return &v.state
752			case 1:
753				return &v.sizeCache
754			case 2:
755				return &v.unknownFields
756			default:
757				return nil
758			}
759		}
760		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
761			switch v := v.(*Operand_FeedAttributeOperand); i {
762			case 0:
763				return &v.state
764			case 1:
765				return &v.sizeCache
766			case 2:
767				return &v.unknownFields
768			default:
769				return nil
770			}
771		}
772		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
773			switch v := v.(*Operand_FunctionOperand); i {
774			case 0:
775				return &v.state
776			case 1:
777				return &v.sizeCache
778			case 2:
779				return &v.unknownFields
780			default:
781				return nil
782			}
783		}
784		file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
785			switch v := v.(*Operand_RequestContextOperand); i {
786			case 0:
787				return &v.state
788			case 1:
789				return &v.sizeCache
790			case 2:
791				return &v.unknownFields
792			default:
793				return nil
794			}
795		}
796	}
797	file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[1].OneofWrappers = []interface{}{
798		(*Operand_ConstantOperand_)(nil),
799		(*Operand_FeedAttributeOperand_)(nil),
800		(*Operand_FunctionOperand_)(nil),
801		(*Operand_RequestContextOperand_)(nil),
802	}
803	file_google_ads_googleads_v1_common_matching_function_proto_msgTypes[2].OneofWrappers = []interface{}{
804		(*Operand_ConstantOperand_StringValue)(nil),
805		(*Operand_ConstantOperand_LongValue)(nil),
806		(*Operand_ConstantOperand_BooleanValue)(nil),
807		(*Operand_ConstantOperand_DoubleValue)(nil),
808	}
809	type x struct{}
810	out := protoimpl.TypeBuilder{
811		File: protoimpl.DescBuilder{
812			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
813			RawDescriptor: file_google_ads_googleads_v1_common_matching_function_proto_rawDesc,
814			NumEnums:      0,
815			NumMessages:   6,
816			NumExtensions: 0,
817			NumServices:   0,
818		},
819		GoTypes:           file_google_ads_googleads_v1_common_matching_function_proto_goTypes,
820		DependencyIndexes: file_google_ads_googleads_v1_common_matching_function_proto_depIdxs,
821		MessageInfos:      file_google_ads_googleads_v1_common_matching_function_proto_msgTypes,
822	}.Build()
823	File_google_ads_googleads_v1_common_matching_function_proto = out.File
824	file_google_ads_googleads_v1_common_matching_function_proto_rawDesc = nil
825	file_google_ads_googleads_v1_common_matching_function_proto_goTypes = nil
826	file_google_ads_googleads_v1_common_matching_function_proto_depIdxs = nil
827}
828