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.13.0
19// source: google/cloud/aiplatform/v1beta1/explanation.proto
20
21package aiplatform
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
30	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
31	structpb "google.golang.org/protobuf/types/known/structpb"
32)
33
34const (
35	// Verify that this generated code is sufficiently up-to-date.
36	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
37	// Verify that runtime/protoimpl is sufficiently up-to-date.
38	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
39)
40
41// This is a compile-time assertion that a sufficiently up-to-date version
42// of the legacy proto package is being used.
43const _ = proto.ProtoPackageIsVersion4
44
45// Explanation of a prediction (provided in [PredictResponse.predictions][google.cloud.aiplatform.v1beta1.PredictResponse.predictions])
46// produced by the Model on a given [instance][google.cloud.aiplatform.v1beta1.ExplainRequest.instances].
47type Explanation struct {
48	state         protoimpl.MessageState
49	sizeCache     protoimpl.SizeCache
50	unknownFields protoimpl.UnknownFields
51
52	// Output only. Feature attributions grouped by predicted outputs.
53	//
54	// For Models that predict only one output, such as regression Models that
55	// predict only one score, there is only one attibution that explains the
56	// predicted output. For Models that predict multiple outputs, such as
57	// multiclass Models that predict multiple classes, each element explains one
58	// specific item. [Attribution.output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index] can be used to identify which
59	// output this attribution is explaining.
60	//
61	// If users set [ExplanationParameters.top_k][google.cloud.aiplatform.v1beta1.ExplanationParameters.top_k], the attributions are sorted
62	// by [instance_output_value][Attributions.instance_output_value] in
63	// descending order. If [ExplanationParameters.output_indices][google.cloud.aiplatform.v1beta1.ExplanationParameters.output_indices] is specified,
64	// the attributions are stored by [Attribution.output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index] in the same
65	// order as they appear in the output_indices.
66	Attributions []*Attribution `protobuf:"bytes,1,rep,name=attributions,proto3" json:"attributions,omitempty"`
67}
68
69func (x *Explanation) Reset() {
70	*x = Explanation{}
71	if protoimpl.UnsafeEnabled {
72		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[0]
73		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
74		ms.StoreMessageInfo(mi)
75	}
76}
77
78func (x *Explanation) String() string {
79	return protoimpl.X.MessageStringOf(x)
80}
81
82func (*Explanation) ProtoMessage() {}
83
84func (x *Explanation) ProtoReflect() protoreflect.Message {
85	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[0]
86	if protoimpl.UnsafeEnabled && x != nil {
87		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
88		if ms.LoadMessageInfo() == nil {
89			ms.StoreMessageInfo(mi)
90		}
91		return ms
92	}
93	return mi.MessageOf(x)
94}
95
96// Deprecated: Use Explanation.ProtoReflect.Descriptor instead.
97func (*Explanation) Descriptor() ([]byte, []int) {
98	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{0}
99}
100
101func (x *Explanation) GetAttributions() []*Attribution {
102	if x != nil {
103		return x.Attributions
104	}
105	return nil
106}
107
108// Aggregated explanation metrics for a Model over a set of instances.
109type ModelExplanation struct {
110	state         protoimpl.MessageState
111	sizeCache     protoimpl.SizeCache
112	unknownFields protoimpl.UnknownFields
113
114	// Output only. Aggregated attributions explaning the Model's prediction outputs over the
115	// set of instances. The attributions are grouped by outputs.
116	//
117	// For Models that predict only one output, such as regression Models that
118	// predict only one score, there is only one attibution that explains the
119	// predicted output. For Models that predict multiple outputs, such as
120	// multiclass Models that predict multiple classes, each element explains one
121	// specific item. [Attribution.output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index] can be used to identify which
122	// output this attribution is explaining.
123	//
124	// The [baselineOutputValue][google.cloud.aiplatform.v1beta1.Attribution.baseline_output_value],
125	// [instanceOutputValue][google.cloud.aiplatform.v1beta1.Attribution.instance_output_value] and
126	// [featureAttributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] fields are
127	// averaged over the test data.
128	//
129	// NOTE: Currently AutoML tabular classification Models produce only one
130	// attribution, which averages attributions over all the classes it predicts.
131	// [Attribution.approximation_error][google.cloud.aiplatform.v1beta1.Attribution.approximation_error] is not populated.
132	MeanAttributions []*Attribution `protobuf:"bytes,1,rep,name=mean_attributions,json=meanAttributions,proto3" json:"mean_attributions,omitempty"`
133}
134
135func (x *ModelExplanation) Reset() {
136	*x = ModelExplanation{}
137	if protoimpl.UnsafeEnabled {
138		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[1]
139		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
140		ms.StoreMessageInfo(mi)
141	}
142}
143
144func (x *ModelExplanation) String() string {
145	return protoimpl.X.MessageStringOf(x)
146}
147
148func (*ModelExplanation) ProtoMessage() {}
149
150func (x *ModelExplanation) ProtoReflect() protoreflect.Message {
151	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[1]
152	if protoimpl.UnsafeEnabled && x != nil {
153		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
154		if ms.LoadMessageInfo() == nil {
155			ms.StoreMessageInfo(mi)
156		}
157		return ms
158	}
159	return mi.MessageOf(x)
160}
161
162// Deprecated: Use ModelExplanation.ProtoReflect.Descriptor instead.
163func (*ModelExplanation) Descriptor() ([]byte, []int) {
164	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{1}
165}
166
167func (x *ModelExplanation) GetMeanAttributions() []*Attribution {
168	if x != nil {
169		return x.MeanAttributions
170	}
171	return nil
172}
173
174// Attribution that explains a particular prediction output.
175type Attribution struct {
176	state         protoimpl.MessageState
177	sizeCache     protoimpl.SizeCache
178	unknownFields protoimpl.UnknownFields
179
180	// Output only. Model predicted output if the input instance is constructed from the
181	// baselines of all the features defined in [ExplanationMetadata.inputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.inputs].
182	// The field name of the output is determined by the key in
183	// [ExplanationMetadata.outputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.outputs].
184	//
185	// If the Model's predicted output has multiple dimensions (rank > 1), this is
186	// the value in the output located by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index].
187	//
188	// If there are multiple baselines, their output values are averaged.
189	BaselineOutputValue float64 `protobuf:"fixed64,1,opt,name=baseline_output_value,json=baselineOutputValue,proto3" json:"baseline_output_value,omitempty"`
190	// Output only. Model predicted output on the corresponding [explanation
191	// instance][ExplainRequest.instances]. The field name of the output is
192	// determined by the key in [ExplanationMetadata.outputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.outputs].
193	//
194	// If the Model predicted output has multiple dimensions, this is the value in
195	// the output located by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index].
196	InstanceOutputValue float64 `protobuf:"fixed64,2,opt,name=instance_output_value,json=instanceOutputValue,proto3" json:"instance_output_value,omitempty"`
197	// Output only. Attributions of each explained feature. Features are extracted from
198	// the [prediction instances][google.cloud.aiplatform.v1beta1.ExplainRequest.instances] according to
199	// [explanation metadata for inputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.inputs].
200	//
201	// The value is a struct, whose keys are the name of the feature. The values
202	// are how much the feature in the [instance][google.cloud.aiplatform.v1beta1.ExplainRequest.instances]
203	// contributed to the predicted result.
204	//
205	// The format of the value is determined by the feature's input format:
206	//
207	//   * If the feature is a scalar value, the attribution value is a
208	//     [floating number][google.protobuf.Value.number_value].
209	//
210	//   * If the feature is an array of scalar values, the attribution value is
211	//     an [array][google.protobuf.Value.list_value].
212	//
213	//   * If the feature is a struct, the attribution value is a
214	//     [struct][google.protobuf.Value.struct_value]. The keys in the
215	//     attribution value struct are the same as the keys in the feature
216	//     struct. The formats of the values in the attribution struct are
217	//     determined by the formats of the values in the feature struct.
218	//
219	// The [ExplanationMetadata.feature_attributions_schema_uri][google.cloud.aiplatform.v1beta1.ExplanationMetadata.feature_attributions_schema_uri] field,
220	// pointed to by the [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] field of the
221	// [Endpoint.deployed_models][google.cloud.aiplatform.v1beta1.Endpoint.deployed_models] object, points to the schema file that
222	// describes the features and their attribution values (if it is populated).
223	FeatureAttributions *structpb.Value `protobuf:"bytes,3,opt,name=feature_attributions,json=featureAttributions,proto3" json:"feature_attributions,omitempty"`
224	// Output only. The index that locates the explained prediction output.
225	//
226	// If the prediction output is a scalar value, output_index is not populated.
227	// If the prediction output has multiple dimensions, the length of the
228	// output_index list is the same as the number of dimensions of the output.
229	// The i-th element in output_index is the element index of the i-th dimension
230	// of the output vector. Indices start from 0.
231	OutputIndex []int32 `protobuf:"varint,4,rep,packed,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"`
232	// Output only. The display name of the output identified by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index], e.g. the
233	// predicted class name by a multi-classification Model.
234	//
235	// This field is only populated iff the Model predicts display names as a
236	// separate field along with the explained output. The predicted display name
237	// must has the same shape of the explained output, and can be located using
238	// output_index.
239	OutputDisplayName string `protobuf:"bytes,5,opt,name=output_display_name,json=outputDisplayName,proto3" json:"output_display_name,omitempty"`
240	// Output only. Error of [feature_attributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] caused by approximation used in the
241	// explanation method. Lower value means more precise attributions.
242	//
243	// * For [Sampled Shapley
244	// attribution][ExplanationParameters.sampled_shapley_attribution], increasing
245	// [path_count][google.cloud.aiplatform.v1beta1.SampledShapleyAttribution.path_count] may reduce the error.
246	// * For [Integrated Gradients
247	// attribution][ExplanationParameters.integrated_gradients_attribution],
248	// increasing [step_count][google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.step_count] may
249	// reduce the error.
250	// * For [XRAI
251	// attribution][ExplanationParameters.xrai_attribution], increasing
252	// [step_count][google.cloud.aiplatform.v1beta1.XraiAttribution.step_count] may reduce the error.
253	//
254	// Refer to  AI Explanations Whitepaper for more details:
255	//
256	// https:
257	// //storage.googleapis.com/cloud-ai-whitep
258	// // apers/AI%20Explainability%20Whitepaper.pdf
259	ApproximationError float64 `protobuf:"fixed64,6,opt,name=approximation_error,json=approximationError,proto3" json:"approximation_error,omitempty"`
260	// Output only. Name of the explain output. Specified as the key in
261	// [ExplanationMetadata.outputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.outputs].
262	OutputName string `protobuf:"bytes,7,opt,name=output_name,json=outputName,proto3" json:"output_name,omitempty"`
263}
264
265func (x *Attribution) Reset() {
266	*x = Attribution{}
267	if protoimpl.UnsafeEnabled {
268		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[2]
269		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
270		ms.StoreMessageInfo(mi)
271	}
272}
273
274func (x *Attribution) String() string {
275	return protoimpl.X.MessageStringOf(x)
276}
277
278func (*Attribution) ProtoMessage() {}
279
280func (x *Attribution) ProtoReflect() protoreflect.Message {
281	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[2]
282	if protoimpl.UnsafeEnabled && x != nil {
283		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
284		if ms.LoadMessageInfo() == nil {
285			ms.StoreMessageInfo(mi)
286		}
287		return ms
288	}
289	return mi.MessageOf(x)
290}
291
292// Deprecated: Use Attribution.ProtoReflect.Descriptor instead.
293func (*Attribution) Descriptor() ([]byte, []int) {
294	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{2}
295}
296
297func (x *Attribution) GetBaselineOutputValue() float64 {
298	if x != nil {
299		return x.BaselineOutputValue
300	}
301	return 0
302}
303
304func (x *Attribution) GetInstanceOutputValue() float64 {
305	if x != nil {
306		return x.InstanceOutputValue
307	}
308	return 0
309}
310
311func (x *Attribution) GetFeatureAttributions() *structpb.Value {
312	if x != nil {
313		return x.FeatureAttributions
314	}
315	return nil
316}
317
318func (x *Attribution) GetOutputIndex() []int32 {
319	if x != nil {
320		return x.OutputIndex
321	}
322	return nil
323}
324
325func (x *Attribution) GetOutputDisplayName() string {
326	if x != nil {
327		return x.OutputDisplayName
328	}
329	return ""
330}
331
332func (x *Attribution) GetApproximationError() float64 {
333	if x != nil {
334		return x.ApproximationError
335	}
336	return 0
337}
338
339func (x *Attribution) GetOutputName() string {
340	if x != nil {
341		return x.OutputName
342	}
343	return ""
344}
345
346// Specification of Model explanation.
347type ExplanationSpec struct {
348	state         protoimpl.MessageState
349	sizeCache     protoimpl.SizeCache
350	unknownFields protoimpl.UnknownFields
351
352	// Required. Parameters that configure explaining of the Model's predictions.
353	Parameters *ExplanationParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"`
354	// Required. Metadata describing the Model's input and output for explanation.
355	Metadata *ExplanationMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
356}
357
358func (x *ExplanationSpec) Reset() {
359	*x = ExplanationSpec{}
360	if protoimpl.UnsafeEnabled {
361		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[3]
362		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
363		ms.StoreMessageInfo(mi)
364	}
365}
366
367func (x *ExplanationSpec) String() string {
368	return protoimpl.X.MessageStringOf(x)
369}
370
371func (*ExplanationSpec) ProtoMessage() {}
372
373func (x *ExplanationSpec) ProtoReflect() protoreflect.Message {
374	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[3]
375	if protoimpl.UnsafeEnabled && x != nil {
376		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
377		if ms.LoadMessageInfo() == nil {
378			ms.StoreMessageInfo(mi)
379		}
380		return ms
381	}
382	return mi.MessageOf(x)
383}
384
385// Deprecated: Use ExplanationSpec.ProtoReflect.Descriptor instead.
386func (*ExplanationSpec) Descriptor() ([]byte, []int) {
387	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{3}
388}
389
390func (x *ExplanationSpec) GetParameters() *ExplanationParameters {
391	if x != nil {
392		return x.Parameters
393	}
394	return nil
395}
396
397func (x *ExplanationSpec) GetMetadata() *ExplanationMetadata {
398	if x != nil {
399		return x.Metadata
400	}
401	return nil
402}
403
404// Parameters to configure explaining for Model's predictions.
405type ExplanationParameters struct {
406	state         protoimpl.MessageState
407	sizeCache     protoimpl.SizeCache
408	unknownFields protoimpl.UnknownFields
409
410	// Types that are assignable to Method:
411	//	*ExplanationParameters_SampledShapleyAttribution
412	//	*ExplanationParameters_IntegratedGradientsAttribution
413	//	*ExplanationParameters_XraiAttribution
414	Method isExplanationParameters_Method `protobuf_oneof:"method"`
415	// If populated, returns attributions for top K indices of outputs
416	// (defaults to 1). Only applies to Models that predicts more than one outputs
417	// (e,g, multi-class Models). When set to -1, returns explanations for all
418	// outputs.
419	TopK int32 `protobuf:"varint,4,opt,name=top_k,json=topK,proto3" json:"top_k,omitempty"`
420	// If populated, only returns attributions that have
421	// [output_index][Attributions.output_index] contained in output_indices. It
422	// must be an ndarray of integers, with the same shape of the output it's
423	// explaining.
424	//
425	// If not populated, returns attributions for [top_k][google.cloud.aiplatform.v1beta1.ExplanationParameters.top_k] indices of outputs.
426	// If neither top_k nor output_indeices is populated, returns the argmax
427	// index of the outputs.
428	//
429	// Only applicable to Models that predict multiple outputs (e,g, multi-class
430	// Models that predict multiple classes).
431	OutputIndices *structpb.ListValue `protobuf:"bytes,5,opt,name=output_indices,json=outputIndices,proto3" json:"output_indices,omitempty"`
432}
433
434func (x *ExplanationParameters) Reset() {
435	*x = ExplanationParameters{}
436	if protoimpl.UnsafeEnabled {
437		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[4]
438		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
439		ms.StoreMessageInfo(mi)
440	}
441}
442
443func (x *ExplanationParameters) String() string {
444	return protoimpl.X.MessageStringOf(x)
445}
446
447func (*ExplanationParameters) ProtoMessage() {}
448
449func (x *ExplanationParameters) ProtoReflect() protoreflect.Message {
450	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[4]
451	if protoimpl.UnsafeEnabled && x != nil {
452		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
453		if ms.LoadMessageInfo() == nil {
454			ms.StoreMessageInfo(mi)
455		}
456		return ms
457	}
458	return mi.MessageOf(x)
459}
460
461// Deprecated: Use ExplanationParameters.ProtoReflect.Descriptor instead.
462func (*ExplanationParameters) Descriptor() ([]byte, []int) {
463	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{4}
464}
465
466func (m *ExplanationParameters) GetMethod() isExplanationParameters_Method {
467	if m != nil {
468		return m.Method
469	}
470	return nil
471}
472
473func (x *ExplanationParameters) GetSampledShapleyAttribution() *SampledShapleyAttribution {
474	if x, ok := x.GetMethod().(*ExplanationParameters_SampledShapleyAttribution); ok {
475		return x.SampledShapleyAttribution
476	}
477	return nil
478}
479
480func (x *ExplanationParameters) GetIntegratedGradientsAttribution() *IntegratedGradientsAttribution {
481	if x, ok := x.GetMethod().(*ExplanationParameters_IntegratedGradientsAttribution); ok {
482		return x.IntegratedGradientsAttribution
483	}
484	return nil
485}
486
487func (x *ExplanationParameters) GetXraiAttribution() *XraiAttribution {
488	if x, ok := x.GetMethod().(*ExplanationParameters_XraiAttribution); ok {
489		return x.XraiAttribution
490	}
491	return nil
492}
493
494func (x *ExplanationParameters) GetTopK() int32 {
495	if x != nil {
496		return x.TopK
497	}
498	return 0
499}
500
501func (x *ExplanationParameters) GetOutputIndices() *structpb.ListValue {
502	if x != nil {
503		return x.OutputIndices
504	}
505	return nil
506}
507
508type isExplanationParameters_Method interface {
509	isExplanationParameters_Method()
510}
511
512type ExplanationParameters_SampledShapleyAttribution struct {
513	// An attribution method that approximates Shapley values for features that
514	// contribute to the label being predicted. A sampling strategy is used to
515	// approximate the value rather than considering all subsets of features.
516	// Refer to this paper for model details: https://arxiv.org/abs/1306.4265.
517	SampledShapleyAttribution *SampledShapleyAttribution `protobuf:"bytes,1,opt,name=sampled_shapley_attribution,json=sampledShapleyAttribution,proto3,oneof"`
518}
519
520type ExplanationParameters_IntegratedGradientsAttribution struct {
521	// An attribution method that computes Aumann-Shapley values taking
522	// advantage of the model's fully differentiable structure. Refer to this
523	// paper for more details: https://arxiv.org/abs/1703.01365
524	IntegratedGradientsAttribution *IntegratedGradientsAttribution `protobuf:"bytes,2,opt,name=integrated_gradients_attribution,json=integratedGradientsAttribution,proto3,oneof"`
525}
526
527type ExplanationParameters_XraiAttribution struct {
528	// An attribution method that redistributes Integrated Gradients
529	// attribution to segmented regions, taking advantage of the model's fully
530	// differentiable structure. Refer to this paper for
531	// more details: https://arxiv.org/abs/1906.02825
532	//
533	// XRAI currently performs better on natural images, like a picture of a
534	// house or an animal. If the images are taken in artificial environments,
535	// like a lab or manufacturing line, or from diagnostic equipment, like
536	// x-rays or quality-control cameras, use Integrated Gradients instead.
537	XraiAttribution *XraiAttribution `protobuf:"bytes,3,opt,name=xrai_attribution,json=xraiAttribution,proto3,oneof"`
538}
539
540func (*ExplanationParameters_SampledShapleyAttribution) isExplanationParameters_Method() {}
541
542func (*ExplanationParameters_IntegratedGradientsAttribution) isExplanationParameters_Method() {}
543
544func (*ExplanationParameters_XraiAttribution) isExplanationParameters_Method() {}
545
546// An attribution method that approximates Shapley values for features that
547// contribute to the label being predicted. A sampling strategy is used to
548// approximate the value rather than considering all subsets of features.
549type SampledShapleyAttribution struct {
550	state         protoimpl.MessageState
551	sizeCache     protoimpl.SizeCache
552	unknownFields protoimpl.UnknownFields
553
554	// Required. The number of feature permutations to consider when approximating the
555	// Shapley values.
556	//
557	// Valid range of its value is [1, 50], inclusively.
558	PathCount int32 `protobuf:"varint,1,opt,name=path_count,json=pathCount,proto3" json:"path_count,omitempty"`
559}
560
561func (x *SampledShapleyAttribution) Reset() {
562	*x = SampledShapleyAttribution{}
563	if protoimpl.UnsafeEnabled {
564		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[5]
565		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
566		ms.StoreMessageInfo(mi)
567	}
568}
569
570func (x *SampledShapleyAttribution) String() string {
571	return protoimpl.X.MessageStringOf(x)
572}
573
574func (*SampledShapleyAttribution) ProtoMessage() {}
575
576func (x *SampledShapleyAttribution) ProtoReflect() protoreflect.Message {
577	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[5]
578	if protoimpl.UnsafeEnabled && x != nil {
579		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
580		if ms.LoadMessageInfo() == nil {
581			ms.StoreMessageInfo(mi)
582		}
583		return ms
584	}
585	return mi.MessageOf(x)
586}
587
588// Deprecated: Use SampledShapleyAttribution.ProtoReflect.Descriptor instead.
589func (*SampledShapleyAttribution) Descriptor() ([]byte, []int) {
590	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{5}
591}
592
593func (x *SampledShapleyAttribution) GetPathCount() int32 {
594	if x != nil {
595		return x.PathCount
596	}
597	return 0
598}
599
600// An attribution method that computes the Aumann-Shapley value taking advantage
601// of the model's fully differentiable structure. Refer to this paper for
602// more details: https://arxiv.org/abs/1703.01365
603type IntegratedGradientsAttribution struct {
604	state         protoimpl.MessageState
605	sizeCache     protoimpl.SizeCache
606	unknownFields protoimpl.UnknownFields
607
608	// Required. The number of steps for approximating the path integral.
609	// A good value to start is 50 and gradually increase until the
610	// sum to diff property is within the desired error range.
611	//
612	// Valid range of its value is [1, 100], inclusively.
613	StepCount int32 `protobuf:"varint,1,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
614	// Config for SmoothGrad approximation of gradients.
615	//
616	// When enabled, the gradients are approximated by averaging the gradients
617	// from noisy samples in the vicinity of the inputs. Adding
618	// noise can help improve the computed gradients. Refer to this paper for more
619	// details: https://arxiv.org/pdf/1706.03825.pdf
620	SmoothGradConfig *SmoothGradConfig `protobuf:"bytes,2,opt,name=smooth_grad_config,json=smoothGradConfig,proto3" json:"smooth_grad_config,omitempty"`
621}
622
623func (x *IntegratedGradientsAttribution) Reset() {
624	*x = IntegratedGradientsAttribution{}
625	if protoimpl.UnsafeEnabled {
626		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[6]
627		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
628		ms.StoreMessageInfo(mi)
629	}
630}
631
632func (x *IntegratedGradientsAttribution) String() string {
633	return protoimpl.X.MessageStringOf(x)
634}
635
636func (*IntegratedGradientsAttribution) ProtoMessage() {}
637
638func (x *IntegratedGradientsAttribution) ProtoReflect() protoreflect.Message {
639	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[6]
640	if protoimpl.UnsafeEnabled && x != nil {
641		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
642		if ms.LoadMessageInfo() == nil {
643			ms.StoreMessageInfo(mi)
644		}
645		return ms
646	}
647	return mi.MessageOf(x)
648}
649
650// Deprecated: Use IntegratedGradientsAttribution.ProtoReflect.Descriptor instead.
651func (*IntegratedGradientsAttribution) Descriptor() ([]byte, []int) {
652	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{6}
653}
654
655func (x *IntegratedGradientsAttribution) GetStepCount() int32 {
656	if x != nil {
657		return x.StepCount
658	}
659	return 0
660}
661
662func (x *IntegratedGradientsAttribution) GetSmoothGradConfig() *SmoothGradConfig {
663	if x != nil {
664		return x.SmoothGradConfig
665	}
666	return nil
667}
668
669// An explanation method that redistributes Integrated Gradients
670// attributions to segmented regions, taking advantage of the model's fully
671// differentiable structure. Refer to this paper for more details:
672// https://arxiv.org/abs/1906.02825
673//
674// Only supports image Models ([modality][InputMetadata.modality] is IMAGE).
675type XraiAttribution struct {
676	state         protoimpl.MessageState
677	sizeCache     protoimpl.SizeCache
678	unknownFields protoimpl.UnknownFields
679
680	// Required. The number of steps for approximating the path integral.
681	// A good value to start is 50 and gradually increase until the
682	// sum to diff property is met within the desired error range.
683	//
684	// Valid range of its value is [1, 100], inclusively.
685	StepCount int32 `protobuf:"varint,1,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
686	// Config for SmoothGrad approximation of gradients.
687	//
688	// When enabled, the gradients are approximated by averaging the gradients
689	// from noisy samples in the vicinity of the inputs. Adding
690	// noise can help improve the computed gradients. Refer to this paper for more
691	// details: https://arxiv.org/pdf/1706.03825.pdf
692	SmoothGradConfig *SmoothGradConfig `protobuf:"bytes,2,opt,name=smooth_grad_config,json=smoothGradConfig,proto3" json:"smooth_grad_config,omitempty"`
693}
694
695func (x *XraiAttribution) Reset() {
696	*x = XraiAttribution{}
697	if protoimpl.UnsafeEnabled {
698		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[7]
699		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
700		ms.StoreMessageInfo(mi)
701	}
702}
703
704func (x *XraiAttribution) String() string {
705	return protoimpl.X.MessageStringOf(x)
706}
707
708func (*XraiAttribution) ProtoMessage() {}
709
710func (x *XraiAttribution) ProtoReflect() protoreflect.Message {
711	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[7]
712	if protoimpl.UnsafeEnabled && x != nil {
713		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
714		if ms.LoadMessageInfo() == nil {
715			ms.StoreMessageInfo(mi)
716		}
717		return ms
718	}
719	return mi.MessageOf(x)
720}
721
722// Deprecated: Use XraiAttribution.ProtoReflect.Descriptor instead.
723func (*XraiAttribution) Descriptor() ([]byte, []int) {
724	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{7}
725}
726
727func (x *XraiAttribution) GetStepCount() int32 {
728	if x != nil {
729		return x.StepCount
730	}
731	return 0
732}
733
734func (x *XraiAttribution) GetSmoothGradConfig() *SmoothGradConfig {
735	if x != nil {
736		return x.SmoothGradConfig
737	}
738	return nil
739}
740
741// Config for SmoothGrad approximation of gradients.
742//
743// When enabled, the gradients are approximated by averaging the gradients from
744// noisy samples in the vicinity of the inputs. Adding noise can help improve
745// the computed gradients. Refer to this paper for more details:
746// https://arxiv.org/pdf/1706.03825.pdf
747type SmoothGradConfig struct {
748	state         protoimpl.MessageState
749	sizeCache     protoimpl.SizeCache
750	unknownFields protoimpl.UnknownFields
751
752	// Represents the standard deviation of the gaussian kernel
753	// that will be used to add noise to the interpolated inputs
754	// prior to computing gradients.
755	//
756	// Types that are assignable to GradientNoiseSigma:
757	//	*SmoothGradConfig_NoiseSigma
758	//	*SmoothGradConfig_FeatureNoiseSigma
759	GradientNoiseSigma isSmoothGradConfig_GradientNoiseSigma `protobuf_oneof:"GradientNoiseSigma"`
760	// The number of gradient samples to use for
761	// approximation. The higher this number, the more accurate the gradient
762	// is, but the runtime complexity increases by this factor as well.
763	// Valid range of its value is [1, 50]. Defaults to 3.
764	NoisySampleCount int32 `protobuf:"varint,3,opt,name=noisy_sample_count,json=noisySampleCount,proto3" json:"noisy_sample_count,omitempty"`
765}
766
767func (x *SmoothGradConfig) Reset() {
768	*x = SmoothGradConfig{}
769	if protoimpl.UnsafeEnabled {
770		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[8]
771		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
772		ms.StoreMessageInfo(mi)
773	}
774}
775
776func (x *SmoothGradConfig) String() string {
777	return protoimpl.X.MessageStringOf(x)
778}
779
780func (*SmoothGradConfig) ProtoMessage() {}
781
782func (x *SmoothGradConfig) ProtoReflect() protoreflect.Message {
783	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[8]
784	if protoimpl.UnsafeEnabled && x != nil {
785		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
786		if ms.LoadMessageInfo() == nil {
787			ms.StoreMessageInfo(mi)
788		}
789		return ms
790	}
791	return mi.MessageOf(x)
792}
793
794// Deprecated: Use SmoothGradConfig.ProtoReflect.Descriptor instead.
795func (*SmoothGradConfig) Descriptor() ([]byte, []int) {
796	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{8}
797}
798
799func (m *SmoothGradConfig) GetGradientNoiseSigma() isSmoothGradConfig_GradientNoiseSigma {
800	if m != nil {
801		return m.GradientNoiseSigma
802	}
803	return nil
804}
805
806func (x *SmoothGradConfig) GetNoiseSigma() float32 {
807	if x, ok := x.GetGradientNoiseSigma().(*SmoothGradConfig_NoiseSigma); ok {
808		return x.NoiseSigma
809	}
810	return 0
811}
812
813func (x *SmoothGradConfig) GetFeatureNoiseSigma() *FeatureNoiseSigma {
814	if x, ok := x.GetGradientNoiseSigma().(*SmoothGradConfig_FeatureNoiseSigma); ok {
815		return x.FeatureNoiseSigma
816	}
817	return nil
818}
819
820func (x *SmoothGradConfig) GetNoisySampleCount() int32 {
821	if x != nil {
822		return x.NoisySampleCount
823	}
824	return 0
825}
826
827type isSmoothGradConfig_GradientNoiseSigma interface {
828	isSmoothGradConfig_GradientNoiseSigma()
829}
830
831type SmoothGradConfig_NoiseSigma struct {
832	// This is a single float value and will be used to add noise to all the
833	// features. Use this field when all features are normalized to have the
834	// same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where
835	// features are normalized to have 0-mean and 1-variance. Refer to
836	// this doc for more details about normalization:
837	//
838	// https:
839	// //developers.google.com/machine-learning
840	// // /data-prep/transform/normalization.
841	//
842	// For best results the recommended value is about 10% - 20% of the standard
843	// deviation of the input feature. Refer to section 3.2 of the SmoothGrad
844	// paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1.
845	//
846	// If the distribution is different per feature, set
847	// [feature_noise_sigma][google.cloud.aiplatform.v1beta1.SmoothGradConfig.feature_noise_sigma] instead
848	// for each feature.
849	NoiseSigma float32 `protobuf:"fixed32,1,opt,name=noise_sigma,json=noiseSigma,proto3,oneof"`
850}
851
852type SmoothGradConfig_FeatureNoiseSigma struct {
853	// This is similar to [noise_sigma][google.cloud.aiplatform.v1beta1.SmoothGradConfig.noise_sigma], but
854	// provides additional flexibility. A separate noise sigma can be provided
855	// for each feature, which is useful if their distributions are different.
856	// No noise is added to features that are not set. If this field is unset,
857	// [noise_sigma][google.cloud.aiplatform.v1beta1.SmoothGradConfig.noise_sigma] will be used for all
858	// features.
859	FeatureNoiseSigma *FeatureNoiseSigma `protobuf:"bytes,2,opt,name=feature_noise_sigma,json=featureNoiseSigma,proto3,oneof"`
860}
861
862func (*SmoothGradConfig_NoiseSigma) isSmoothGradConfig_GradientNoiseSigma() {}
863
864func (*SmoothGradConfig_FeatureNoiseSigma) isSmoothGradConfig_GradientNoiseSigma() {}
865
866// Noise sigma by features. Noise sigma represents the standard deviation of the
867// gaussian kernel that will be used to add noise to interpolated inputs prior
868// to computing gradients.
869type FeatureNoiseSigma struct {
870	state         protoimpl.MessageState
871	sizeCache     protoimpl.SizeCache
872	unknownFields protoimpl.UnknownFields
873
874	// Noise sigma per feature. No noise is added to features that are not set.
875	NoiseSigma []*FeatureNoiseSigma_NoiseSigmaForFeature `protobuf:"bytes,1,rep,name=noise_sigma,json=noiseSigma,proto3" json:"noise_sigma,omitempty"`
876}
877
878func (x *FeatureNoiseSigma) Reset() {
879	*x = FeatureNoiseSigma{}
880	if protoimpl.UnsafeEnabled {
881		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[9]
882		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
883		ms.StoreMessageInfo(mi)
884	}
885}
886
887func (x *FeatureNoiseSigma) String() string {
888	return protoimpl.X.MessageStringOf(x)
889}
890
891func (*FeatureNoiseSigma) ProtoMessage() {}
892
893func (x *FeatureNoiseSigma) ProtoReflect() protoreflect.Message {
894	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[9]
895	if protoimpl.UnsafeEnabled && x != nil {
896		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
897		if ms.LoadMessageInfo() == nil {
898			ms.StoreMessageInfo(mi)
899		}
900		return ms
901	}
902	return mi.MessageOf(x)
903}
904
905// Deprecated: Use FeatureNoiseSigma.ProtoReflect.Descriptor instead.
906func (*FeatureNoiseSigma) Descriptor() ([]byte, []int) {
907	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{9}
908}
909
910func (x *FeatureNoiseSigma) GetNoiseSigma() []*FeatureNoiseSigma_NoiseSigmaForFeature {
911	if x != nil {
912		return x.NoiseSigma
913	}
914	return nil
915}
916
917// Noise sigma for a single feature.
918type FeatureNoiseSigma_NoiseSigmaForFeature struct {
919	state         protoimpl.MessageState
920	sizeCache     protoimpl.SizeCache
921	unknownFields protoimpl.UnknownFields
922
923	// The name of the input feature for which noise sigma is provided. The
924	// features are defined in
925	// [explanation metadata inputs][google.cloud.aiplatform.v1beta1.ExplanationMetadata.inputs].
926	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
927	// This represents the standard deviation of the Gaussian kernel that will
928	// be used to add noise to the feature prior to computing gradients. Similar
929	// to [noise_sigma][google.cloud.aiplatform.v1beta1.SmoothGradConfig.noise_sigma] but represents the
930	// noise added to the current feature. Defaults to 0.1.
931	Sigma float32 `protobuf:"fixed32,2,opt,name=sigma,proto3" json:"sigma,omitempty"`
932}
933
934func (x *FeatureNoiseSigma_NoiseSigmaForFeature) Reset() {
935	*x = FeatureNoiseSigma_NoiseSigmaForFeature{}
936	if protoimpl.UnsafeEnabled {
937		mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[10]
938		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
939		ms.StoreMessageInfo(mi)
940	}
941}
942
943func (x *FeatureNoiseSigma_NoiseSigmaForFeature) String() string {
944	return protoimpl.X.MessageStringOf(x)
945}
946
947func (*FeatureNoiseSigma_NoiseSigmaForFeature) ProtoMessage() {}
948
949func (x *FeatureNoiseSigma_NoiseSigmaForFeature) ProtoReflect() protoreflect.Message {
950	mi := &file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[10]
951	if protoimpl.UnsafeEnabled && x != nil {
952		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
953		if ms.LoadMessageInfo() == nil {
954			ms.StoreMessageInfo(mi)
955		}
956		return ms
957	}
958	return mi.MessageOf(x)
959}
960
961// Deprecated: Use FeatureNoiseSigma_NoiseSigmaForFeature.ProtoReflect.Descriptor instead.
962func (*FeatureNoiseSigma_NoiseSigmaForFeature) Descriptor() ([]byte, []int) {
963	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP(), []int{9, 0}
964}
965
966func (x *FeatureNoiseSigma_NoiseSigmaForFeature) GetName() string {
967	if x != nil {
968		return x.Name
969	}
970	return ""
971}
972
973func (x *FeatureNoiseSigma_NoiseSigmaForFeature) GetSigma() float32 {
974	if x != nil {
975		return x.Sigma
976	}
977	return 0
978}
979
980var File_google_cloud_aiplatform_v1beta1_explanation_proto protoreflect.FileDescriptor
981
982var file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDesc = []byte{
983	0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
984	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
985	0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
986	0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
987	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62,
988	0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
989	0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
990	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
991	0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76,
992	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69,
993	0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74,
994	0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
995	0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
996	0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
997	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a,
998	0x0b, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0c,
999	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
1000	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1001	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62,
1002	0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
1003	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
1004	0x6f, 0x6e, 0x73, 0x22, 0x72, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x6c,
1005	0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x11, 0x6d, 0x65, 0x61, 0x6e, 0x5f,
1006	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
1007	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1008	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62,
1009	0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
1010	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d, 0x65, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69,
1011	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x88, 0x03, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x72,
1012	0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x15, 0x62, 0x61, 0x73, 0x65, 0x6c,
1013	0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
1014	0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x62, 0x61, 0x73,
1015	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
1016	0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74,
1017	0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42,
1018	0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x75,
1019	0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x14, 0x66, 0x65, 0x61,
1020	0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
1021	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1022	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
1023	0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74,
1024	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x75, 0x74,
1025	0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x42,
1026	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65,
1027	0x78, 0x12, 0x33, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70,
1028	0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
1029	0xe0, 0x41, 0x03, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c,
1030	0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78,
1031	0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20,
1032	0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78,
1033	0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0b,
1034	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
1035	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4e, 0x61,
1036	0x6d, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69,
1037	0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
1038	0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f,
1039	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
1040	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70,
1041	0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
1042	0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
1043	0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
1044	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
1045	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
1046	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74,
1047	0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02,
1048	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe4, 0x03, 0x0a, 0x15, 0x45,
1049	0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
1050	0x74, 0x65, 0x72, 0x73, 0x12, 0x7c, 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f,
1051	0x73, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
1052	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1053	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
1054	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x6d, 0x70,
1055	0x6c, 0x65, 0x64, 0x53, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
1056	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64,
1057	0x53, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
1058	0x6f, 0x6e, 0x12, 0x8b, 0x01, 0x0a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65,
1059	0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72,
1060	0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e,
1061	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
1062	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
1063	0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65,
1064	0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
1065	0x52, 0x1e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64,
1066	0x69, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
1067	0x12, 0x5d, 0x0a, 0x10, 0x78, 0x72, 0x61, 0x69, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
1068	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
1069	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
1070	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x58, 0x72, 0x61,
1071	0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f,
1072	0x78, 0x72, 0x61, 0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12,
1073	0x13, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
1074	0x74, 0x6f, 0x70, 0x4b, 0x12, 0x41, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69,
1075	0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
1076	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c,
1077	0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
1078	0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f,
1079	0x64, 0x22, 0x3f, 0x0a, 0x19, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x53, 0x68, 0x61, 0x70,
1080	0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
1081	0x0a, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
1082	0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x75,
1083	0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65,
1084	0x64, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
1085	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f,
1086	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
1087	0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x12, 0x73, 0x6d, 0x6f,
1088	0x6f, 0x74, 0x68, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
1089	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
1090	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
1091	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72,
1092	0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68,
1093	0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x96, 0x01, 0x0a, 0x0f, 0x58,
1094	0x72, 0x61, 0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
1095	0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
1096	0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75,
1097	0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x12, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x67, 0x72, 0x61,
1098	0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31,
1099	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
1100	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1101	0x2e, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1102	0x67, 0x52, 0x10, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e,
1103	0x66, 0x69, 0x67, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72,
1104	0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6e, 0x6f, 0x69, 0x73,
1105	0x65, 0x5f, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52,
1106	0x0a, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x12, 0x64, 0x0a, 0x13, 0x66,
1107	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x67,
1108	0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1109	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
1110	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
1111	0x72, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x11,
1112	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d,
1113	0x61, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x6f, 0x69, 0x73, 0x79, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
1114	0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e,
1115	0x6f, 0x69, 0x73, 0x79, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42,
1116	0x14, 0x0a, 0x12, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65,
1117	0x53, 0x69, 0x67, 0x6d, 0x61, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
1118	0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x12, 0x68, 0x0a, 0x0b, 0x6e,
1119	0x6f, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
1120	0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
1121	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1122	0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53,
1123	0x69, 0x67, 0x6d, 0x61, 0x2e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x46,
1124	0x6f, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x6e, 0x6f, 0x69, 0x73, 0x65,
1125	0x53, 0x69, 0x67, 0x6d, 0x61, 0x1a, 0x40, 0x0a, 0x14, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69,
1126	0x67, 0x6d, 0x61, 0x46, 0x6f, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a,
1127	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
1128	0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
1129	0x52, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x42, 0x84, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e,
1130	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
1131	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42,
1132	0x10, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74,
1133	0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
1134	0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
1135	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
1136	0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65,
1137	0x74, 0x61, 0x31, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x62, 0x06,
1138	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1139}
1140
1141var (
1142	file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescOnce sync.Once
1143	file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDesc
1144)
1145
1146func file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescGZIP() []byte {
1147	file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescOnce.Do(func() {
1148		file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescData)
1149	})
1150	return file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDescData
1151}
1152
1153var file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
1154var file_google_cloud_aiplatform_v1beta1_explanation_proto_goTypes = []interface{}{
1155	(*Explanation)(nil),                            // 0: google.cloud.aiplatform.v1beta1.Explanation
1156	(*ModelExplanation)(nil),                       // 1: google.cloud.aiplatform.v1beta1.ModelExplanation
1157	(*Attribution)(nil),                            // 2: google.cloud.aiplatform.v1beta1.Attribution
1158	(*ExplanationSpec)(nil),                        // 3: google.cloud.aiplatform.v1beta1.ExplanationSpec
1159	(*ExplanationParameters)(nil),                  // 4: google.cloud.aiplatform.v1beta1.ExplanationParameters
1160	(*SampledShapleyAttribution)(nil),              // 5: google.cloud.aiplatform.v1beta1.SampledShapleyAttribution
1161	(*IntegratedGradientsAttribution)(nil),         // 6: google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution
1162	(*XraiAttribution)(nil),                        // 7: google.cloud.aiplatform.v1beta1.XraiAttribution
1163	(*SmoothGradConfig)(nil),                       // 8: google.cloud.aiplatform.v1beta1.SmoothGradConfig
1164	(*FeatureNoiseSigma)(nil),                      // 9: google.cloud.aiplatform.v1beta1.FeatureNoiseSigma
1165	(*FeatureNoiseSigma_NoiseSigmaForFeature)(nil), // 10: google.cloud.aiplatform.v1beta1.FeatureNoiseSigma.NoiseSigmaForFeature
1166	(*structpb.Value)(nil),                         // 11: google.protobuf.Value
1167	(*ExplanationMetadata)(nil),                    // 12: google.cloud.aiplatform.v1beta1.ExplanationMetadata
1168	(*structpb.ListValue)(nil),                     // 13: google.protobuf.ListValue
1169}
1170var file_google_cloud_aiplatform_v1beta1_explanation_proto_depIdxs = []int32{
1171	2,  // 0: google.cloud.aiplatform.v1beta1.Explanation.attributions:type_name -> google.cloud.aiplatform.v1beta1.Attribution
1172	2,  // 1: google.cloud.aiplatform.v1beta1.ModelExplanation.mean_attributions:type_name -> google.cloud.aiplatform.v1beta1.Attribution
1173	11, // 2: google.cloud.aiplatform.v1beta1.Attribution.feature_attributions:type_name -> google.protobuf.Value
1174	4,  // 3: google.cloud.aiplatform.v1beta1.ExplanationSpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.ExplanationParameters
1175	12, // 4: google.cloud.aiplatform.v1beta1.ExplanationSpec.metadata:type_name -> google.cloud.aiplatform.v1beta1.ExplanationMetadata
1176	5,  // 5: google.cloud.aiplatform.v1beta1.ExplanationParameters.sampled_shapley_attribution:type_name -> google.cloud.aiplatform.v1beta1.SampledShapleyAttribution
1177	6,  // 6: google.cloud.aiplatform.v1beta1.ExplanationParameters.integrated_gradients_attribution:type_name -> google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution
1178	7,  // 7: google.cloud.aiplatform.v1beta1.ExplanationParameters.xrai_attribution:type_name -> google.cloud.aiplatform.v1beta1.XraiAttribution
1179	13, // 8: google.cloud.aiplatform.v1beta1.ExplanationParameters.output_indices:type_name -> google.protobuf.ListValue
1180	8,  // 9: google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.smooth_grad_config:type_name -> google.cloud.aiplatform.v1beta1.SmoothGradConfig
1181	8,  // 10: google.cloud.aiplatform.v1beta1.XraiAttribution.smooth_grad_config:type_name -> google.cloud.aiplatform.v1beta1.SmoothGradConfig
1182	9,  // 11: google.cloud.aiplatform.v1beta1.SmoothGradConfig.feature_noise_sigma:type_name -> google.cloud.aiplatform.v1beta1.FeatureNoiseSigma
1183	10, // 12: google.cloud.aiplatform.v1beta1.FeatureNoiseSigma.noise_sigma:type_name -> google.cloud.aiplatform.v1beta1.FeatureNoiseSigma.NoiseSigmaForFeature
1184	13, // [13:13] is the sub-list for method output_type
1185	13, // [13:13] is the sub-list for method input_type
1186	13, // [13:13] is the sub-list for extension type_name
1187	13, // [13:13] is the sub-list for extension extendee
1188	0,  // [0:13] is the sub-list for field type_name
1189}
1190
1191func init() { file_google_cloud_aiplatform_v1beta1_explanation_proto_init() }
1192func file_google_cloud_aiplatform_v1beta1_explanation_proto_init() {
1193	if File_google_cloud_aiplatform_v1beta1_explanation_proto != nil {
1194		return
1195	}
1196	file_google_cloud_aiplatform_v1beta1_explanation_metadata_proto_init()
1197	if !protoimpl.UnsafeEnabled {
1198		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1199			switch v := v.(*Explanation); i {
1200			case 0:
1201				return &v.state
1202			case 1:
1203				return &v.sizeCache
1204			case 2:
1205				return &v.unknownFields
1206			default:
1207				return nil
1208			}
1209		}
1210		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1211			switch v := v.(*ModelExplanation); i {
1212			case 0:
1213				return &v.state
1214			case 1:
1215				return &v.sizeCache
1216			case 2:
1217				return &v.unknownFields
1218			default:
1219				return nil
1220			}
1221		}
1222		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1223			switch v := v.(*Attribution); i {
1224			case 0:
1225				return &v.state
1226			case 1:
1227				return &v.sizeCache
1228			case 2:
1229				return &v.unknownFields
1230			default:
1231				return nil
1232			}
1233		}
1234		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1235			switch v := v.(*ExplanationSpec); i {
1236			case 0:
1237				return &v.state
1238			case 1:
1239				return &v.sizeCache
1240			case 2:
1241				return &v.unknownFields
1242			default:
1243				return nil
1244			}
1245		}
1246		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1247			switch v := v.(*ExplanationParameters); i {
1248			case 0:
1249				return &v.state
1250			case 1:
1251				return &v.sizeCache
1252			case 2:
1253				return &v.unknownFields
1254			default:
1255				return nil
1256			}
1257		}
1258		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1259			switch v := v.(*SampledShapleyAttribution); i {
1260			case 0:
1261				return &v.state
1262			case 1:
1263				return &v.sizeCache
1264			case 2:
1265				return &v.unknownFields
1266			default:
1267				return nil
1268			}
1269		}
1270		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1271			switch v := v.(*IntegratedGradientsAttribution); i {
1272			case 0:
1273				return &v.state
1274			case 1:
1275				return &v.sizeCache
1276			case 2:
1277				return &v.unknownFields
1278			default:
1279				return nil
1280			}
1281		}
1282		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1283			switch v := v.(*XraiAttribution); i {
1284			case 0:
1285				return &v.state
1286			case 1:
1287				return &v.sizeCache
1288			case 2:
1289				return &v.unknownFields
1290			default:
1291				return nil
1292			}
1293		}
1294		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1295			switch v := v.(*SmoothGradConfig); i {
1296			case 0:
1297				return &v.state
1298			case 1:
1299				return &v.sizeCache
1300			case 2:
1301				return &v.unknownFields
1302			default:
1303				return nil
1304			}
1305		}
1306		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1307			switch v := v.(*FeatureNoiseSigma); i {
1308			case 0:
1309				return &v.state
1310			case 1:
1311				return &v.sizeCache
1312			case 2:
1313				return &v.unknownFields
1314			default:
1315				return nil
1316			}
1317		}
1318		file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1319			switch v := v.(*FeatureNoiseSigma_NoiseSigmaForFeature); i {
1320			case 0:
1321				return &v.state
1322			case 1:
1323				return &v.sizeCache
1324			case 2:
1325				return &v.unknownFields
1326			default:
1327				return nil
1328			}
1329		}
1330	}
1331	file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[4].OneofWrappers = []interface{}{
1332		(*ExplanationParameters_SampledShapleyAttribution)(nil),
1333		(*ExplanationParameters_IntegratedGradientsAttribution)(nil),
1334		(*ExplanationParameters_XraiAttribution)(nil),
1335	}
1336	file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes[8].OneofWrappers = []interface{}{
1337		(*SmoothGradConfig_NoiseSigma)(nil),
1338		(*SmoothGradConfig_FeatureNoiseSigma)(nil),
1339	}
1340	type x struct{}
1341	out := protoimpl.TypeBuilder{
1342		File: protoimpl.DescBuilder{
1343			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1344			RawDescriptor: file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDesc,
1345			NumEnums:      0,
1346			NumMessages:   11,
1347			NumExtensions: 0,
1348			NumServices:   0,
1349		},
1350		GoTypes:           file_google_cloud_aiplatform_v1beta1_explanation_proto_goTypes,
1351		DependencyIndexes: file_google_cloud_aiplatform_v1beta1_explanation_proto_depIdxs,
1352		MessageInfos:      file_google_cloud_aiplatform_v1beta1_explanation_proto_msgTypes,
1353	}.Build()
1354	File_google_cloud_aiplatform_v1beta1_explanation_proto = out.File
1355	file_google_cloud_aiplatform_v1beta1_explanation_proto_rawDesc = nil
1356	file_google_cloud_aiplatform_v1beta1_explanation_proto_goTypes = nil
1357	file_google_cloud_aiplatform_v1beta1_explanation_proto_depIdxs = nil
1358}
1359