cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/explanation.pb.go (about)

     1  // Copyright 2025 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.35.2
    18  // 	protoc        v4.25.7
    19  // source: google/cloud/aiplatform/v1/explanation.proto
    20  
    21  package aiplatformpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	structpb "google.golang.org/protobuf/types/known/structpb"
    28  	reflect "reflect"
    29  	sync "sync"
    30  )
    31  
    32  const (
    33  	// Verify that this generated code is sufficiently up-to-date.
    34  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    35  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    37  )
    38  
    39  // The format of the input example instances.
    40  type Examples_ExampleGcsSource_DataFormat int32
    41  
    42  const (
    43  	// Format unspecified, used when unset.
    44  	Examples_ExampleGcsSource_DATA_FORMAT_UNSPECIFIED Examples_ExampleGcsSource_DataFormat = 0
    45  	// Examples are stored in JSONL files.
    46  	Examples_ExampleGcsSource_JSONL Examples_ExampleGcsSource_DataFormat = 1
    47  )
    48  
    49  // Enum value maps for Examples_ExampleGcsSource_DataFormat.
    50  var (
    51  	Examples_ExampleGcsSource_DataFormat_name = map[int32]string{
    52  		0: "DATA_FORMAT_UNSPECIFIED",
    53  		1: "JSONL",
    54  	}
    55  	Examples_ExampleGcsSource_DataFormat_value = map[string]int32{
    56  		"DATA_FORMAT_UNSPECIFIED": 0,
    57  		"JSONL":                   1,
    58  	}
    59  )
    60  
    61  func (x Examples_ExampleGcsSource_DataFormat) Enum() *Examples_ExampleGcsSource_DataFormat {
    62  	p := new(Examples_ExampleGcsSource_DataFormat)
    63  	*p = x
    64  	return p
    65  }
    66  
    67  func (x Examples_ExampleGcsSource_DataFormat) String() string {
    68  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    69  }
    70  
    71  func (Examples_ExampleGcsSource_DataFormat) Descriptor() protoreflect.EnumDescriptor {
    72  	return file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[0].Descriptor()
    73  }
    74  
    75  func (Examples_ExampleGcsSource_DataFormat) Type() protoreflect.EnumType {
    76  	return &file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[0]
    77  }
    78  
    79  func (x Examples_ExampleGcsSource_DataFormat) Number() protoreflect.EnumNumber {
    80  	return protoreflect.EnumNumber(x)
    81  }
    82  
    83  // Deprecated: Use Examples_ExampleGcsSource_DataFormat.Descriptor instead.
    84  func (Examples_ExampleGcsSource_DataFormat) EnumDescriptor() ([]byte, []int) {
    85  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{12, 0, 0}
    86  }
    87  
    88  // Preset option controlling parameters for query speed-precision trade-off
    89  type Presets_Query int32
    90  
    91  const (
    92  	// More precise neighbors as a trade-off against slower response.
    93  	Presets_PRECISE Presets_Query = 0
    94  	// Faster response as a trade-off against less precise neighbors.
    95  	Presets_FAST Presets_Query = 1
    96  )
    97  
    98  // Enum value maps for Presets_Query.
    99  var (
   100  	Presets_Query_name = map[int32]string{
   101  		0: "PRECISE",
   102  		1: "FAST",
   103  	}
   104  	Presets_Query_value = map[string]int32{
   105  		"PRECISE": 0,
   106  		"FAST":    1,
   107  	}
   108  )
   109  
   110  func (x Presets_Query) Enum() *Presets_Query {
   111  	p := new(Presets_Query)
   112  	*p = x
   113  	return p
   114  }
   115  
   116  func (x Presets_Query) String() string {
   117  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   118  }
   119  
   120  func (Presets_Query) Descriptor() protoreflect.EnumDescriptor {
   121  	return file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[1].Descriptor()
   122  }
   123  
   124  func (Presets_Query) Type() protoreflect.EnumType {
   125  	return &file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[1]
   126  }
   127  
   128  func (x Presets_Query) Number() protoreflect.EnumNumber {
   129  	return protoreflect.EnumNumber(x)
   130  }
   131  
   132  // Deprecated: Use Presets_Query.Descriptor instead.
   133  func (Presets_Query) EnumDescriptor() ([]byte, []int) {
   134  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{13, 0}
   135  }
   136  
   137  // Preset option controlling parameters for different modalities
   138  type Presets_Modality int32
   139  
   140  const (
   141  	// Should not be set. Added as a recommended best practice for enums
   142  	Presets_MODALITY_UNSPECIFIED Presets_Modality = 0
   143  	// IMAGE modality
   144  	Presets_IMAGE Presets_Modality = 1
   145  	// TEXT modality
   146  	Presets_TEXT Presets_Modality = 2
   147  	// TABULAR modality
   148  	Presets_TABULAR Presets_Modality = 3
   149  )
   150  
   151  // Enum value maps for Presets_Modality.
   152  var (
   153  	Presets_Modality_name = map[int32]string{
   154  		0: "MODALITY_UNSPECIFIED",
   155  		1: "IMAGE",
   156  		2: "TEXT",
   157  		3: "TABULAR",
   158  	}
   159  	Presets_Modality_value = map[string]int32{
   160  		"MODALITY_UNSPECIFIED": 0,
   161  		"IMAGE":                1,
   162  		"TEXT":                 2,
   163  		"TABULAR":              3,
   164  	}
   165  )
   166  
   167  func (x Presets_Modality) Enum() *Presets_Modality {
   168  	p := new(Presets_Modality)
   169  	*p = x
   170  	return p
   171  }
   172  
   173  func (x Presets_Modality) String() string {
   174  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   175  }
   176  
   177  func (Presets_Modality) Descriptor() protoreflect.EnumDescriptor {
   178  	return file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[2].Descriptor()
   179  }
   180  
   181  func (Presets_Modality) Type() protoreflect.EnumType {
   182  	return &file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[2]
   183  }
   184  
   185  func (x Presets_Modality) Number() protoreflect.EnumNumber {
   186  	return protoreflect.EnumNumber(x)
   187  }
   188  
   189  // Deprecated: Use Presets_Modality.Descriptor instead.
   190  func (Presets_Modality) EnumDescriptor() ([]byte, []int) {
   191  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{13, 1}
   192  }
   193  
   194  // Data format enum.
   195  type ExamplesOverride_DataFormat int32
   196  
   197  const (
   198  	// Unspecified format. Must not be used.
   199  	ExamplesOverride_DATA_FORMAT_UNSPECIFIED ExamplesOverride_DataFormat = 0
   200  	// Provided data is a set of model inputs.
   201  	ExamplesOverride_INSTANCES ExamplesOverride_DataFormat = 1
   202  	// Provided data is a set of embeddings.
   203  	ExamplesOverride_EMBEDDINGS ExamplesOverride_DataFormat = 2
   204  )
   205  
   206  // Enum value maps for ExamplesOverride_DataFormat.
   207  var (
   208  	ExamplesOverride_DataFormat_name = map[int32]string{
   209  		0: "DATA_FORMAT_UNSPECIFIED",
   210  		1: "INSTANCES",
   211  		2: "EMBEDDINGS",
   212  	}
   213  	ExamplesOverride_DataFormat_value = map[string]int32{
   214  		"DATA_FORMAT_UNSPECIFIED": 0,
   215  		"INSTANCES":               1,
   216  		"EMBEDDINGS":              2,
   217  	}
   218  )
   219  
   220  func (x ExamplesOverride_DataFormat) Enum() *ExamplesOverride_DataFormat {
   221  	p := new(ExamplesOverride_DataFormat)
   222  	*p = x
   223  	return p
   224  }
   225  
   226  func (x ExamplesOverride_DataFormat) String() string {
   227  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   228  }
   229  
   230  func (ExamplesOverride_DataFormat) Descriptor() protoreflect.EnumDescriptor {
   231  	return file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[3].Descriptor()
   232  }
   233  
   234  func (ExamplesOverride_DataFormat) Type() protoreflect.EnumType {
   235  	return &file_google_cloud_aiplatform_v1_explanation_proto_enumTypes[3]
   236  }
   237  
   238  func (x ExamplesOverride_DataFormat) Number() protoreflect.EnumNumber {
   239  	return protoreflect.EnumNumber(x)
   240  }
   241  
   242  // Deprecated: Use ExamplesOverride_DataFormat.Descriptor instead.
   243  func (ExamplesOverride_DataFormat) EnumDescriptor() ([]byte, []int) {
   244  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{16, 0}
   245  }
   246  
   247  // Explanation of a prediction (provided in
   248  // [PredictResponse.predictions][google.cloud.aiplatform.v1.PredictResponse.predictions])
   249  // produced by the Model on a given
   250  // [instance][google.cloud.aiplatform.v1.ExplainRequest.instances].
   251  type Explanation struct {
   252  	state         protoimpl.MessageState
   253  	sizeCache     protoimpl.SizeCache
   254  	unknownFields protoimpl.UnknownFields
   255  
   256  	// Output only. Feature attributions grouped by predicted outputs.
   257  	//
   258  	// For Models that predict only one output, such as regression Models that
   259  	// predict only one score, there is only one attibution that explains the
   260  	// predicted output. For Models that predict multiple outputs, such as
   261  	// multiclass Models that predict multiple classes, each element explains one
   262  	// specific item.
   263  	// [Attribution.output_index][google.cloud.aiplatform.v1.Attribution.output_index]
   264  	// can be used to identify which output this attribution is explaining.
   265  	//
   266  	// By default, we provide Shapley values for the predicted class. However,
   267  	// you can configure the explanation request to generate Shapley values for
   268  	// any other classes too. For example, if a model predicts a probability of
   269  	// `0.4` for approving a loan application, the model's decision is to reject
   270  	// the application since `p(reject) = 0.6 > p(approve) = 0.4`, and the default
   271  	// Shapley values would be computed for rejection decision and not approval,
   272  	// even though the latter might be the positive class.
   273  	//
   274  	// If users set
   275  	// [ExplanationParameters.top_k][google.cloud.aiplatform.v1.ExplanationParameters.top_k],
   276  	// the attributions are sorted by
   277  	// [instance_output_value][google.cloud.aiplatform.v1.Attribution.instance_output_value]
   278  	// in descending order. If
   279  	// [ExplanationParameters.output_indices][google.cloud.aiplatform.v1.ExplanationParameters.output_indices]
   280  	// is specified, the attributions are stored by
   281  	// [Attribution.output_index][google.cloud.aiplatform.v1.Attribution.output_index]
   282  	// in the same order as they appear in the output_indices.
   283  	Attributions []*Attribution `protobuf:"bytes,1,rep,name=attributions,proto3" json:"attributions,omitempty"`
   284  	// Output only. List of the nearest neighbors for example-based explanations.
   285  	//
   286  	// For models deployed with the examples explanations feature enabled, the
   287  	// attributions field is empty and instead the neighbors field is populated.
   288  	Neighbors []*Neighbor `protobuf:"bytes,2,rep,name=neighbors,proto3" json:"neighbors,omitempty"`
   289  }
   290  
   291  func (x *Explanation) Reset() {
   292  	*x = Explanation{}
   293  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[0]
   294  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   295  	ms.StoreMessageInfo(mi)
   296  }
   297  
   298  func (x *Explanation) String() string {
   299  	return protoimpl.X.MessageStringOf(x)
   300  }
   301  
   302  func (*Explanation) ProtoMessage() {}
   303  
   304  func (x *Explanation) ProtoReflect() protoreflect.Message {
   305  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[0]
   306  	if x != nil {
   307  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   308  		if ms.LoadMessageInfo() == nil {
   309  			ms.StoreMessageInfo(mi)
   310  		}
   311  		return ms
   312  	}
   313  	return mi.MessageOf(x)
   314  }
   315  
   316  // Deprecated: Use Explanation.ProtoReflect.Descriptor instead.
   317  func (*Explanation) Descriptor() ([]byte, []int) {
   318  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{0}
   319  }
   320  
   321  func (x *Explanation) GetAttributions() []*Attribution {
   322  	if x != nil {
   323  		return x.Attributions
   324  	}
   325  	return nil
   326  }
   327  
   328  func (x *Explanation) GetNeighbors() []*Neighbor {
   329  	if x != nil {
   330  		return x.Neighbors
   331  	}
   332  	return nil
   333  }
   334  
   335  // Aggregated explanation metrics for a Model over a set of instances.
   336  type ModelExplanation struct {
   337  	state         protoimpl.MessageState
   338  	sizeCache     protoimpl.SizeCache
   339  	unknownFields protoimpl.UnknownFields
   340  
   341  	// Output only. Aggregated attributions explaining the Model's prediction
   342  	// outputs over the set of instances. The attributions are grouped by outputs.
   343  	//
   344  	// For Models that predict only one output, such as regression Models that
   345  	// predict only one score, there is only one attibution that explains the
   346  	// predicted output. For Models that predict multiple outputs, such as
   347  	// multiclass Models that predict multiple classes, each element explains one
   348  	// specific item.
   349  	// [Attribution.output_index][google.cloud.aiplatform.v1.Attribution.output_index]
   350  	// can be used to identify which output this attribution is explaining.
   351  	//
   352  	// The
   353  	// [baselineOutputValue][google.cloud.aiplatform.v1.Attribution.baseline_output_value],
   354  	// [instanceOutputValue][google.cloud.aiplatform.v1.Attribution.instance_output_value]
   355  	// and
   356  	// [featureAttributions][google.cloud.aiplatform.v1.Attribution.feature_attributions]
   357  	// fields are averaged over the test data.
   358  	//
   359  	// NOTE: Currently AutoML tabular classification Models produce only one
   360  	// attribution, which averages attributions over all the classes it predicts.
   361  	// [Attribution.approximation_error][google.cloud.aiplatform.v1.Attribution.approximation_error]
   362  	// is not populated.
   363  	MeanAttributions []*Attribution `protobuf:"bytes,1,rep,name=mean_attributions,json=meanAttributions,proto3" json:"mean_attributions,omitempty"`
   364  }
   365  
   366  func (x *ModelExplanation) Reset() {
   367  	*x = ModelExplanation{}
   368  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[1]
   369  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   370  	ms.StoreMessageInfo(mi)
   371  }
   372  
   373  func (x *ModelExplanation) String() string {
   374  	return protoimpl.X.MessageStringOf(x)
   375  }
   376  
   377  func (*ModelExplanation) ProtoMessage() {}
   378  
   379  func (x *ModelExplanation) ProtoReflect() protoreflect.Message {
   380  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[1]
   381  	if x != nil {
   382  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   383  		if ms.LoadMessageInfo() == nil {
   384  			ms.StoreMessageInfo(mi)
   385  		}
   386  		return ms
   387  	}
   388  	return mi.MessageOf(x)
   389  }
   390  
   391  // Deprecated: Use ModelExplanation.ProtoReflect.Descriptor instead.
   392  func (*ModelExplanation) Descriptor() ([]byte, []int) {
   393  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{1}
   394  }
   395  
   396  func (x *ModelExplanation) GetMeanAttributions() []*Attribution {
   397  	if x != nil {
   398  		return x.MeanAttributions
   399  	}
   400  	return nil
   401  }
   402  
   403  // Attribution that explains a particular prediction output.
   404  type Attribution struct {
   405  	state         protoimpl.MessageState
   406  	sizeCache     protoimpl.SizeCache
   407  	unknownFields protoimpl.UnknownFields
   408  
   409  	// Output only. Model predicted output if the input instance is constructed
   410  	// from the baselines of all the features defined in
   411  	// [ExplanationMetadata.inputs][google.cloud.aiplatform.v1.ExplanationMetadata.inputs].
   412  	// The field name of the output is determined by the key in
   413  	// [ExplanationMetadata.outputs][google.cloud.aiplatform.v1.ExplanationMetadata.outputs].
   414  	//
   415  	// If the Model's predicted output has multiple dimensions (rank > 1), this is
   416  	// the value in the output located by
   417  	// [output_index][google.cloud.aiplatform.v1.Attribution.output_index].
   418  	//
   419  	// If there are multiple baselines, their output values are averaged.
   420  	BaselineOutputValue float64 `protobuf:"fixed64,1,opt,name=baseline_output_value,json=baselineOutputValue,proto3" json:"baseline_output_value,omitempty"`
   421  	// Output only. Model predicted output on the corresponding [explanation
   422  	// instance][ExplainRequest.instances]. The field name of the output is
   423  	// determined by the key in
   424  	// [ExplanationMetadata.outputs][google.cloud.aiplatform.v1.ExplanationMetadata.outputs].
   425  	//
   426  	// If the Model predicted output has multiple dimensions, this is the value in
   427  	// the output located by
   428  	// [output_index][google.cloud.aiplatform.v1.Attribution.output_index].
   429  	InstanceOutputValue float64 `protobuf:"fixed64,2,opt,name=instance_output_value,json=instanceOutputValue,proto3" json:"instance_output_value,omitempty"`
   430  	// Output only. Attributions of each explained feature. Features are extracted
   431  	// from the [prediction
   432  	// instances][google.cloud.aiplatform.v1.ExplainRequest.instances] according
   433  	// to [explanation metadata for
   434  	// inputs][google.cloud.aiplatform.v1.ExplanationMetadata.inputs].
   435  	//
   436  	// The value is a struct, whose keys are the name of the feature. The values
   437  	// are how much the feature in the
   438  	// [instance][google.cloud.aiplatform.v1.ExplainRequest.instances] contributed
   439  	// to the predicted result.
   440  	//
   441  	// The format of the value is determined by the feature's input format:
   442  	//
   443  	//   - If the feature is a scalar value, the attribution value is a
   444  	//     [floating number][google.protobuf.Value.number_value].
   445  	//
   446  	//   - If the feature is an array of scalar values, the attribution value is
   447  	//     an [array][google.protobuf.Value.list_value].
   448  	//
   449  	//   - If the feature is a struct, the attribution value is a
   450  	//     [struct][google.protobuf.Value.struct_value]. The keys in the
   451  	//     attribution value struct are the same as the keys in the feature
   452  	//     struct. The formats of the values in the attribution struct are
   453  	//     determined by the formats of the values in the feature struct.
   454  	//
   455  	// The
   456  	// [ExplanationMetadata.feature_attributions_schema_uri][google.cloud.aiplatform.v1.ExplanationMetadata.feature_attributions_schema_uri]
   457  	// field, pointed to by the
   458  	// [ExplanationSpec][google.cloud.aiplatform.v1.ExplanationSpec] field of the
   459  	// [Endpoint.deployed_models][google.cloud.aiplatform.v1.Endpoint.deployed_models]
   460  	// object, points to the schema file that describes the features and their
   461  	// attribution values (if it is populated).
   462  	FeatureAttributions *structpb.Value `protobuf:"bytes,3,opt,name=feature_attributions,json=featureAttributions,proto3" json:"feature_attributions,omitempty"`
   463  	// Output only. The index that locates the explained prediction output.
   464  	//
   465  	// If the prediction output is a scalar value, output_index is not populated.
   466  	// If the prediction output has multiple dimensions, the length of the
   467  	// output_index list is the same as the number of dimensions of the output.
   468  	// The i-th element in output_index is the element index of the i-th dimension
   469  	// of the output vector. Indices start from 0.
   470  	OutputIndex []int32 `protobuf:"varint,4,rep,packed,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"`
   471  	// Output only. The display name of the output identified by
   472  	// [output_index][google.cloud.aiplatform.v1.Attribution.output_index]. For
   473  	// example, the predicted class name by a multi-classification Model.
   474  	//
   475  	// This field is only populated iff the Model predicts display names as a
   476  	// separate field along with the explained output. The predicted display name
   477  	// must has the same shape of the explained output, and can be located using
   478  	// output_index.
   479  	OutputDisplayName string `protobuf:"bytes,5,opt,name=output_display_name,json=outputDisplayName,proto3" json:"output_display_name,omitempty"`
   480  	// Output only. Error of
   481  	// [feature_attributions][google.cloud.aiplatform.v1.Attribution.feature_attributions]
   482  	// caused by approximation used in the explanation method. Lower value means
   483  	// more precise attributions.
   484  	//
   485  	// * For Sampled Shapley
   486  	// [attribution][google.cloud.aiplatform.v1.ExplanationParameters.sampled_shapley_attribution],
   487  	// increasing
   488  	// [path_count][google.cloud.aiplatform.v1.SampledShapleyAttribution.path_count]
   489  	// might reduce the error.
   490  	// * For Integrated Gradients
   491  	// [attribution][google.cloud.aiplatform.v1.ExplanationParameters.integrated_gradients_attribution],
   492  	// increasing
   493  	// [step_count][google.cloud.aiplatform.v1.IntegratedGradientsAttribution.step_count]
   494  	// might reduce the error.
   495  	// * For [XRAI
   496  	// attribution][google.cloud.aiplatform.v1.ExplanationParameters.xrai_attribution],
   497  	// increasing
   498  	// [step_count][google.cloud.aiplatform.v1.XraiAttribution.step_count] might
   499  	// reduce the error.
   500  	//
   501  	// See [this introduction](/vertex-ai/docs/explainable-ai/overview)
   502  	// for more information.
   503  	ApproximationError float64 `protobuf:"fixed64,6,opt,name=approximation_error,json=approximationError,proto3" json:"approximation_error,omitempty"`
   504  	// Output only. Name of the explain output. Specified as the key in
   505  	// [ExplanationMetadata.outputs][google.cloud.aiplatform.v1.ExplanationMetadata.outputs].
   506  	OutputName string `protobuf:"bytes,7,opt,name=output_name,json=outputName,proto3" json:"output_name,omitempty"`
   507  }
   508  
   509  func (x *Attribution) Reset() {
   510  	*x = Attribution{}
   511  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[2]
   512  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   513  	ms.StoreMessageInfo(mi)
   514  }
   515  
   516  func (x *Attribution) String() string {
   517  	return protoimpl.X.MessageStringOf(x)
   518  }
   519  
   520  func (*Attribution) ProtoMessage() {}
   521  
   522  func (x *Attribution) ProtoReflect() protoreflect.Message {
   523  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[2]
   524  	if x != nil {
   525  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   526  		if ms.LoadMessageInfo() == nil {
   527  			ms.StoreMessageInfo(mi)
   528  		}
   529  		return ms
   530  	}
   531  	return mi.MessageOf(x)
   532  }
   533  
   534  // Deprecated: Use Attribution.ProtoReflect.Descriptor instead.
   535  func (*Attribution) Descriptor() ([]byte, []int) {
   536  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{2}
   537  }
   538  
   539  func (x *Attribution) GetBaselineOutputValue() float64 {
   540  	if x != nil {
   541  		return x.BaselineOutputValue
   542  	}
   543  	return 0
   544  }
   545  
   546  func (x *Attribution) GetInstanceOutputValue() float64 {
   547  	if x != nil {
   548  		return x.InstanceOutputValue
   549  	}
   550  	return 0
   551  }
   552  
   553  func (x *Attribution) GetFeatureAttributions() *structpb.Value {
   554  	if x != nil {
   555  		return x.FeatureAttributions
   556  	}
   557  	return nil
   558  }
   559  
   560  func (x *Attribution) GetOutputIndex() []int32 {
   561  	if x != nil {
   562  		return x.OutputIndex
   563  	}
   564  	return nil
   565  }
   566  
   567  func (x *Attribution) GetOutputDisplayName() string {
   568  	if x != nil {
   569  		return x.OutputDisplayName
   570  	}
   571  	return ""
   572  }
   573  
   574  func (x *Attribution) GetApproximationError() float64 {
   575  	if x != nil {
   576  		return x.ApproximationError
   577  	}
   578  	return 0
   579  }
   580  
   581  func (x *Attribution) GetOutputName() string {
   582  	if x != nil {
   583  		return x.OutputName
   584  	}
   585  	return ""
   586  }
   587  
   588  // Neighbors for example-based explanations.
   589  type Neighbor struct {
   590  	state         protoimpl.MessageState
   591  	sizeCache     protoimpl.SizeCache
   592  	unknownFields protoimpl.UnknownFields
   593  
   594  	// Output only. The neighbor id.
   595  	NeighborId string `protobuf:"bytes,1,opt,name=neighbor_id,json=neighborId,proto3" json:"neighbor_id,omitempty"`
   596  	// Output only. The neighbor distance.
   597  	NeighborDistance float64 `protobuf:"fixed64,2,opt,name=neighbor_distance,json=neighborDistance,proto3" json:"neighbor_distance,omitempty"`
   598  }
   599  
   600  func (x *Neighbor) Reset() {
   601  	*x = Neighbor{}
   602  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[3]
   603  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   604  	ms.StoreMessageInfo(mi)
   605  }
   606  
   607  func (x *Neighbor) String() string {
   608  	return protoimpl.X.MessageStringOf(x)
   609  }
   610  
   611  func (*Neighbor) ProtoMessage() {}
   612  
   613  func (x *Neighbor) ProtoReflect() protoreflect.Message {
   614  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[3]
   615  	if x != nil {
   616  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   617  		if ms.LoadMessageInfo() == nil {
   618  			ms.StoreMessageInfo(mi)
   619  		}
   620  		return ms
   621  	}
   622  	return mi.MessageOf(x)
   623  }
   624  
   625  // Deprecated: Use Neighbor.ProtoReflect.Descriptor instead.
   626  func (*Neighbor) Descriptor() ([]byte, []int) {
   627  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{3}
   628  }
   629  
   630  func (x *Neighbor) GetNeighborId() string {
   631  	if x != nil {
   632  		return x.NeighborId
   633  	}
   634  	return ""
   635  }
   636  
   637  func (x *Neighbor) GetNeighborDistance() float64 {
   638  	if x != nil {
   639  		return x.NeighborDistance
   640  	}
   641  	return 0
   642  }
   643  
   644  // Specification of Model explanation.
   645  type ExplanationSpec struct {
   646  	state         protoimpl.MessageState
   647  	sizeCache     protoimpl.SizeCache
   648  	unknownFields protoimpl.UnknownFields
   649  
   650  	// Required. Parameters that configure explaining of the Model's predictions.
   651  	Parameters *ExplanationParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"`
   652  	// Optional. Metadata describing the Model's input and output for explanation.
   653  	Metadata *ExplanationMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
   654  }
   655  
   656  func (x *ExplanationSpec) Reset() {
   657  	*x = ExplanationSpec{}
   658  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[4]
   659  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   660  	ms.StoreMessageInfo(mi)
   661  }
   662  
   663  func (x *ExplanationSpec) String() string {
   664  	return protoimpl.X.MessageStringOf(x)
   665  }
   666  
   667  func (*ExplanationSpec) ProtoMessage() {}
   668  
   669  func (x *ExplanationSpec) ProtoReflect() protoreflect.Message {
   670  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[4]
   671  	if x != nil {
   672  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   673  		if ms.LoadMessageInfo() == nil {
   674  			ms.StoreMessageInfo(mi)
   675  		}
   676  		return ms
   677  	}
   678  	return mi.MessageOf(x)
   679  }
   680  
   681  // Deprecated: Use ExplanationSpec.ProtoReflect.Descriptor instead.
   682  func (*ExplanationSpec) Descriptor() ([]byte, []int) {
   683  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{4}
   684  }
   685  
   686  func (x *ExplanationSpec) GetParameters() *ExplanationParameters {
   687  	if x != nil {
   688  		return x.Parameters
   689  	}
   690  	return nil
   691  }
   692  
   693  func (x *ExplanationSpec) GetMetadata() *ExplanationMetadata {
   694  	if x != nil {
   695  		return x.Metadata
   696  	}
   697  	return nil
   698  }
   699  
   700  // Parameters to configure explaining for Model's predictions.
   701  type ExplanationParameters struct {
   702  	state         protoimpl.MessageState
   703  	sizeCache     protoimpl.SizeCache
   704  	unknownFields protoimpl.UnknownFields
   705  
   706  	// Types that are assignable to Method:
   707  	//
   708  	//	*ExplanationParameters_SampledShapleyAttribution
   709  	//	*ExplanationParameters_IntegratedGradientsAttribution
   710  	//	*ExplanationParameters_XraiAttribution
   711  	//	*ExplanationParameters_Examples
   712  	Method isExplanationParameters_Method `protobuf_oneof:"method"`
   713  	// If populated, returns attributions for top K indices of outputs
   714  	// (defaults to 1). Only applies to Models that predicts more than one outputs
   715  	// (e,g, multi-class Models). When set to -1, returns explanations for all
   716  	// outputs.
   717  	TopK int32 `protobuf:"varint,4,opt,name=top_k,json=topK,proto3" json:"top_k,omitempty"`
   718  	// If populated, only returns attributions that have
   719  	// [output_index][google.cloud.aiplatform.v1.Attribution.output_index]
   720  	// contained in output_indices. It must be an ndarray of integers, with the
   721  	// same shape of the output it's explaining.
   722  	//
   723  	// If not populated, returns attributions for
   724  	// [top_k][google.cloud.aiplatform.v1.ExplanationParameters.top_k] indices of
   725  	// outputs. If neither top_k nor output_indices is populated, returns the
   726  	// argmax index of the outputs.
   727  	//
   728  	// Only applicable to Models that predict multiple outputs (e,g, multi-class
   729  	// Models that predict multiple classes).
   730  	OutputIndices *structpb.ListValue `protobuf:"bytes,5,opt,name=output_indices,json=outputIndices,proto3" json:"output_indices,omitempty"`
   731  }
   732  
   733  func (x *ExplanationParameters) Reset() {
   734  	*x = ExplanationParameters{}
   735  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[5]
   736  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   737  	ms.StoreMessageInfo(mi)
   738  }
   739  
   740  func (x *ExplanationParameters) String() string {
   741  	return protoimpl.X.MessageStringOf(x)
   742  }
   743  
   744  func (*ExplanationParameters) ProtoMessage() {}
   745  
   746  func (x *ExplanationParameters) ProtoReflect() protoreflect.Message {
   747  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[5]
   748  	if x != nil {
   749  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   750  		if ms.LoadMessageInfo() == nil {
   751  			ms.StoreMessageInfo(mi)
   752  		}
   753  		return ms
   754  	}
   755  	return mi.MessageOf(x)
   756  }
   757  
   758  // Deprecated: Use ExplanationParameters.ProtoReflect.Descriptor instead.
   759  func (*ExplanationParameters) Descriptor() ([]byte, []int) {
   760  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{5}
   761  }
   762  
   763  func (m *ExplanationParameters) GetMethod() isExplanationParameters_Method {
   764  	if m != nil {
   765  		return m.Method
   766  	}
   767  	return nil
   768  }
   769  
   770  func (x *ExplanationParameters) GetSampledShapleyAttribution() *SampledShapleyAttribution {
   771  	if x, ok := x.GetMethod().(*ExplanationParameters_SampledShapleyAttribution); ok {
   772  		return x.SampledShapleyAttribution
   773  	}
   774  	return nil
   775  }
   776  
   777  func (x *ExplanationParameters) GetIntegratedGradientsAttribution() *IntegratedGradientsAttribution {
   778  	if x, ok := x.GetMethod().(*ExplanationParameters_IntegratedGradientsAttribution); ok {
   779  		return x.IntegratedGradientsAttribution
   780  	}
   781  	return nil
   782  }
   783  
   784  func (x *ExplanationParameters) GetXraiAttribution() *XraiAttribution {
   785  	if x, ok := x.GetMethod().(*ExplanationParameters_XraiAttribution); ok {
   786  		return x.XraiAttribution
   787  	}
   788  	return nil
   789  }
   790  
   791  func (x *ExplanationParameters) GetExamples() *Examples {
   792  	if x, ok := x.GetMethod().(*ExplanationParameters_Examples); ok {
   793  		return x.Examples
   794  	}
   795  	return nil
   796  }
   797  
   798  func (x *ExplanationParameters) GetTopK() int32 {
   799  	if x != nil {
   800  		return x.TopK
   801  	}
   802  	return 0
   803  }
   804  
   805  func (x *ExplanationParameters) GetOutputIndices() *structpb.ListValue {
   806  	if x != nil {
   807  		return x.OutputIndices
   808  	}
   809  	return nil
   810  }
   811  
   812  type isExplanationParameters_Method interface {
   813  	isExplanationParameters_Method()
   814  }
   815  
   816  type ExplanationParameters_SampledShapleyAttribution struct {
   817  	// An attribution method that approximates Shapley values for features that
   818  	// contribute to the label being predicted. A sampling strategy is used to
   819  	// approximate the value rather than considering all subsets of features.
   820  	// Refer to this paper for model details: https://arxiv.org/abs/1306.4265.
   821  	SampledShapleyAttribution *SampledShapleyAttribution `protobuf:"bytes,1,opt,name=sampled_shapley_attribution,json=sampledShapleyAttribution,proto3,oneof"`
   822  }
   823  
   824  type ExplanationParameters_IntegratedGradientsAttribution struct {
   825  	// An attribution method that computes Aumann-Shapley values taking
   826  	// advantage of the model's fully differentiable structure. Refer to this
   827  	// paper for more details: https://arxiv.org/abs/1703.01365
   828  	IntegratedGradientsAttribution *IntegratedGradientsAttribution `protobuf:"bytes,2,opt,name=integrated_gradients_attribution,json=integratedGradientsAttribution,proto3,oneof"`
   829  }
   830  
   831  type ExplanationParameters_XraiAttribution struct {
   832  	// An attribution method that redistributes Integrated Gradients
   833  	// attribution to segmented regions, taking advantage of the model's fully
   834  	// differentiable structure. Refer to this paper for
   835  	// more details: https://arxiv.org/abs/1906.02825
   836  	//
   837  	// XRAI currently performs better on natural images, like a picture of a
   838  	// house or an animal. If the images are taken in artificial environments,
   839  	// like a lab or manufacturing line, or from diagnostic equipment, like
   840  	// x-rays or quality-control cameras, use Integrated Gradients instead.
   841  	XraiAttribution *XraiAttribution `protobuf:"bytes,3,opt,name=xrai_attribution,json=xraiAttribution,proto3,oneof"`
   842  }
   843  
   844  type ExplanationParameters_Examples struct {
   845  	// Example-based explanations that returns the nearest neighbors from the
   846  	// provided dataset.
   847  	Examples *Examples `protobuf:"bytes,7,opt,name=examples,proto3,oneof"`
   848  }
   849  
   850  func (*ExplanationParameters_SampledShapleyAttribution) isExplanationParameters_Method() {}
   851  
   852  func (*ExplanationParameters_IntegratedGradientsAttribution) isExplanationParameters_Method() {}
   853  
   854  func (*ExplanationParameters_XraiAttribution) isExplanationParameters_Method() {}
   855  
   856  func (*ExplanationParameters_Examples) isExplanationParameters_Method() {}
   857  
   858  // An attribution method that approximates Shapley values for features that
   859  // contribute to the label being predicted. A sampling strategy is used to
   860  // approximate the value rather than considering all subsets of features.
   861  type SampledShapleyAttribution struct {
   862  	state         protoimpl.MessageState
   863  	sizeCache     protoimpl.SizeCache
   864  	unknownFields protoimpl.UnknownFields
   865  
   866  	// Required. The number of feature permutations to consider when approximating
   867  	// the Shapley values.
   868  	//
   869  	// Valid range of its value is [1, 50], inclusively.
   870  	PathCount int32 `protobuf:"varint,1,opt,name=path_count,json=pathCount,proto3" json:"path_count,omitempty"`
   871  }
   872  
   873  func (x *SampledShapleyAttribution) Reset() {
   874  	*x = SampledShapleyAttribution{}
   875  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[6]
   876  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   877  	ms.StoreMessageInfo(mi)
   878  }
   879  
   880  func (x *SampledShapleyAttribution) String() string {
   881  	return protoimpl.X.MessageStringOf(x)
   882  }
   883  
   884  func (*SampledShapleyAttribution) ProtoMessage() {}
   885  
   886  func (x *SampledShapleyAttribution) ProtoReflect() protoreflect.Message {
   887  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[6]
   888  	if x != nil {
   889  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   890  		if ms.LoadMessageInfo() == nil {
   891  			ms.StoreMessageInfo(mi)
   892  		}
   893  		return ms
   894  	}
   895  	return mi.MessageOf(x)
   896  }
   897  
   898  // Deprecated: Use SampledShapleyAttribution.ProtoReflect.Descriptor instead.
   899  func (*SampledShapleyAttribution) Descriptor() ([]byte, []int) {
   900  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{6}
   901  }
   902  
   903  func (x *SampledShapleyAttribution) GetPathCount() int32 {
   904  	if x != nil {
   905  		return x.PathCount
   906  	}
   907  	return 0
   908  }
   909  
   910  // An attribution method that computes the Aumann-Shapley value taking advantage
   911  // of the model's fully differentiable structure. Refer to this paper for
   912  // more details: https://arxiv.org/abs/1703.01365
   913  type IntegratedGradientsAttribution struct {
   914  	state         protoimpl.MessageState
   915  	sizeCache     protoimpl.SizeCache
   916  	unknownFields protoimpl.UnknownFields
   917  
   918  	// Required. The number of steps for approximating the path integral.
   919  	// A good value to start is 50 and gradually increase until the
   920  	// sum to diff property is within the desired error range.
   921  	//
   922  	// Valid range of its value is [1, 100], inclusively.
   923  	StepCount int32 `protobuf:"varint,1,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
   924  	// Config for SmoothGrad approximation of gradients.
   925  	//
   926  	// When enabled, the gradients are approximated by averaging the gradients
   927  	// from noisy samples in the vicinity of the inputs. Adding
   928  	// noise can help improve the computed gradients. Refer to this paper for more
   929  	// details: https://arxiv.org/pdf/1706.03825.pdf
   930  	SmoothGradConfig *SmoothGradConfig `protobuf:"bytes,2,opt,name=smooth_grad_config,json=smoothGradConfig,proto3" json:"smooth_grad_config,omitempty"`
   931  	// Config for IG with blur baseline.
   932  	//
   933  	// When enabled, a linear path from the maximally blurred image to the input
   934  	// image is created. Using a blurred baseline instead of zero (black image) is
   935  	// motivated by the BlurIG approach explained here:
   936  	// https://arxiv.org/abs/2004.03383
   937  	BlurBaselineConfig *BlurBaselineConfig `protobuf:"bytes,3,opt,name=blur_baseline_config,json=blurBaselineConfig,proto3" json:"blur_baseline_config,omitempty"`
   938  }
   939  
   940  func (x *IntegratedGradientsAttribution) Reset() {
   941  	*x = IntegratedGradientsAttribution{}
   942  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[7]
   943  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   944  	ms.StoreMessageInfo(mi)
   945  }
   946  
   947  func (x *IntegratedGradientsAttribution) String() string {
   948  	return protoimpl.X.MessageStringOf(x)
   949  }
   950  
   951  func (*IntegratedGradientsAttribution) ProtoMessage() {}
   952  
   953  func (x *IntegratedGradientsAttribution) ProtoReflect() protoreflect.Message {
   954  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[7]
   955  	if x != nil {
   956  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   957  		if ms.LoadMessageInfo() == nil {
   958  			ms.StoreMessageInfo(mi)
   959  		}
   960  		return ms
   961  	}
   962  	return mi.MessageOf(x)
   963  }
   964  
   965  // Deprecated: Use IntegratedGradientsAttribution.ProtoReflect.Descriptor instead.
   966  func (*IntegratedGradientsAttribution) Descriptor() ([]byte, []int) {
   967  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{7}
   968  }
   969  
   970  func (x *IntegratedGradientsAttribution) GetStepCount() int32 {
   971  	if x != nil {
   972  		return x.StepCount
   973  	}
   974  	return 0
   975  }
   976  
   977  func (x *IntegratedGradientsAttribution) GetSmoothGradConfig() *SmoothGradConfig {
   978  	if x != nil {
   979  		return x.SmoothGradConfig
   980  	}
   981  	return nil
   982  }
   983  
   984  func (x *IntegratedGradientsAttribution) GetBlurBaselineConfig() *BlurBaselineConfig {
   985  	if x != nil {
   986  		return x.BlurBaselineConfig
   987  	}
   988  	return nil
   989  }
   990  
   991  // An explanation method that redistributes Integrated Gradients
   992  // attributions to segmented regions, taking advantage of the model's fully
   993  // differentiable structure. Refer to this paper for more details:
   994  // https://arxiv.org/abs/1906.02825
   995  //
   996  // Supported only by image Models.
   997  type XraiAttribution struct {
   998  	state         protoimpl.MessageState
   999  	sizeCache     protoimpl.SizeCache
  1000  	unknownFields protoimpl.UnknownFields
  1001  
  1002  	// Required. The number of steps for approximating the path integral.
  1003  	// A good value to start is 50 and gradually increase until the
  1004  	// sum to diff property is met within the desired error range.
  1005  	//
  1006  	// Valid range of its value is [1, 100], inclusively.
  1007  	StepCount int32 `protobuf:"varint,1,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
  1008  	// Config for SmoothGrad approximation of gradients.
  1009  	//
  1010  	// When enabled, the gradients are approximated by averaging the gradients
  1011  	// from noisy samples in the vicinity of the inputs. Adding
  1012  	// noise can help improve the computed gradients. Refer to this paper for more
  1013  	// details: https://arxiv.org/pdf/1706.03825.pdf
  1014  	SmoothGradConfig *SmoothGradConfig `protobuf:"bytes,2,opt,name=smooth_grad_config,json=smoothGradConfig,proto3" json:"smooth_grad_config,omitempty"`
  1015  	// Config for XRAI with blur baseline.
  1016  	//
  1017  	// When enabled, a linear path from the maximally blurred image to the input
  1018  	// image is created. Using a blurred baseline instead of zero (black image) is
  1019  	// motivated by the BlurIG approach explained here:
  1020  	// https://arxiv.org/abs/2004.03383
  1021  	BlurBaselineConfig *BlurBaselineConfig `protobuf:"bytes,3,opt,name=blur_baseline_config,json=blurBaselineConfig,proto3" json:"blur_baseline_config,omitempty"`
  1022  }
  1023  
  1024  func (x *XraiAttribution) Reset() {
  1025  	*x = XraiAttribution{}
  1026  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[8]
  1027  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1028  	ms.StoreMessageInfo(mi)
  1029  }
  1030  
  1031  func (x *XraiAttribution) String() string {
  1032  	return protoimpl.X.MessageStringOf(x)
  1033  }
  1034  
  1035  func (*XraiAttribution) ProtoMessage() {}
  1036  
  1037  func (x *XraiAttribution) ProtoReflect() protoreflect.Message {
  1038  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[8]
  1039  	if x != nil {
  1040  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1041  		if ms.LoadMessageInfo() == nil {
  1042  			ms.StoreMessageInfo(mi)
  1043  		}
  1044  		return ms
  1045  	}
  1046  	return mi.MessageOf(x)
  1047  }
  1048  
  1049  // Deprecated: Use XraiAttribution.ProtoReflect.Descriptor instead.
  1050  func (*XraiAttribution) Descriptor() ([]byte, []int) {
  1051  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{8}
  1052  }
  1053  
  1054  func (x *XraiAttribution) GetStepCount() int32 {
  1055  	if x != nil {
  1056  		return x.StepCount
  1057  	}
  1058  	return 0
  1059  }
  1060  
  1061  func (x *XraiAttribution) GetSmoothGradConfig() *SmoothGradConfig {
  1062  	if x != nil {
  1063  		return x.SmoothGradConfig
  1064  	}
  1065  	return nil
  1066  }
  1067  
  1068  func (x *XraiAttribution) GetBlurBaselineConfig() *BlurBaselineConfig {
  1069  	if x != nil {
  1070  		return x.BlurBaselineConfig
  1071  	}
  1072  	return nil
  1073  }
  1074  
  1075  // Config for SmoothGrad approximation of gradients.
  1076  //
  1077  // When enabled, the gradients are approximated by averaging the gradients from
  1078  // noisy samples in the vicinity of the inputs. Adding noise can help improve
  1079  // the computed gradients. Refer to this paper for more details:
  1080  // https://arxiv.org/pdf/1706.03825.pdf
  1081  type SmoothGradConfig struct {
  1082  	state         protoimpl.MessageState
  1083  	sizeCache     protoimpl.SizeCache
  1084  	unknownFields protoimpl.UnknownFields
  1085  
  1086  	// Represents the standard deviation of the gaussian kernel
  1087  	// that will be used to add noise to the interpolated inputs
  1088  	// prior to computing gradients.
  1089  	//
  1090  	// Types that are assignable to GradientNoiseSigma:
  1091  	//
  1092  	//	*SmoothGradConfig_NoiseSigma
  1093  	//	*SmoothGradConfig_FeatureNoiseSigma
  1094  	GradientNoiseSigma isSmoothGradConfig_GradientNoiseSigma `protobuf_oneof:"GradientNoiseSigma"`
  1095  	// The number of gradient samples to use for
  1096  	// approximation. The higher this number, the more accurate the gradient
  1097  	// is, but the runtime complexity increases by this factor as well.
  1098  	// Valid range of its value is [1, 50]. Defaults to 3.
  1099  	NoisySampleCount int32 `protobuf:"varint,3,opt,name=noisy_sample_count,json=noisySampleCount,proto3" json:"noisy_sample_count,omitempty"`
  1100  }
  1101  
  1102  func (x *SmoothGradConfig) Reset() {
  1103  	*x = SmoothGradConfig{}
  1104  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[9]
  1105  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1106  	ms.StoreMessageInfo(mi)
  1107  }
  1108  
  1109  func (x *SmoothGradConfig) String() string {
  1110  	return protoimpl.X.MessageStringOf(x)
  1111  }
  1112  
  1113  func (*SmoothGradConfig) ProtoMessage() {}
  1114  
  1115  func (x *SmoothGradConfig) ProtoReflect() protoreflect.Message {
  1116  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[9]
  1117  	if x != nil {
  1118  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1119  		if ms.LoadMessageInfo() == nil {
  1120  			ms.StoreMessageInfo(mi)
  1121  		}
  1122  		return ms
  1123  	}
  1124  	return mi.MessageOf(x)
  1125  }
  1126  
  1127  // Deprecated: Use SmoothGradConfig.ProtoReflect.Descriptor instead.
  1128  func (*SmoothGradConfig) Descriptor() ([]byte, []int) {
  1129  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{9}
  1130  }
  1131  
  1132  func (m *SmoothGradConfig) GetGradientNoiseSigma() isSmoothGradConfig_GradientNoiseSigma {
  1133  	if m != nil {
  1134  		return m.GradientNoiseSigma
  1135  	}
  1136  	return nil
  1137  }
  1138  
  1139  func (x *SmoothGradConfig) GetNoiseSigma() float32 {
  1140  	if x, ok := x.GetGradientNoiseSigma().(*SmoothGradConfig_NoiseSigma); ok {
  1141  		return x.NoiseSigma
  1142  	}
  1143  	return 0
  1144  }
  1145  
  1146  func (x *SmoothGradConfig) GetFeatureNoiseSigma() *FeatureNoiseSigma {
  1147  	if x, ok := x.GetGradientNoiseSigma().(*SmoothGradConfig_FeatureNoiseSigma); ok {
  1148  		return x.FeatureNoiseSigma
  1149  	}
  1150  	return nil
  1151  }
  1152  
  1153  func (x *SmoothGradConfig) GetNoisySampleCount() int32 {
  1154  	if x != nil {
  1155  		return x.NoisySampleCount
  1156  	}
  1157  	return 0
  1158  }
  1159  
  1160  type isSmoothGradConfig_GradientNoiseSigma interface {
  1161  	isSmoothGradConfig_GradientNoiseSigma()
  1162  }
  1163  
  1164  type SmoothGradConfig_NoiseSigma struct {
  1165  	// This is a single float value and will be used to add noise to all the
  1166  	// features. Use this field when all features are normalized to have the
  1167  	// same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where
  1168  	// features are normalized to have 0-mean and 1-variance. Learn more about
  1169  	// [normalization](https://developers.google.com/machine-learning/data-prep/transform/normalization).
  1170  	//
  1171  	// For best results the recommended value is about 10% - 20% of the standard
  1172  	// deviation of the input feature. Refer to section 3.2 of the SmoothGrad
  1173  	// paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1.
  1174  	//
  1175  	// If the distribution is different per feature, set
  1176  	// [feature_noise_sigma][google.cloud.aiplatform.v1.SmoothGradConfig.feature_noise_sigma]
  1177  	// instead for each feature.
  1178  	NoiseSigma float32 `protobuf:"fixed32,1,opt,name=noise_sigma,json=noiseSigma,proto3,oneof"`
  1179  }
  1180  
  1181  type SmoothGradConfig_FeatureNoiseSigma struct {
  1182  	// This is similar to
  1183  	// [noise_sigma][google.cloud.aiplatform.v1.SmoothGradConfig.noise_sigma],
  1184  	// but provides additional flexibility. A separate noise sigma can be
  1185  	// provided for each feature, which is useful if their distributions are
  1186  	// different. No noise is added to features that are not set. If this field
  1187  	// is unset,
  1188  	// [noise_sigma][google.cloud.aiplatform.v1.SmoothGradConfig.noise_sigma]
  1189  	// will be used for all features.
  1190  	FeatureNoiseSigma *FeatureNoiseSigma `protobuf:"bytes,2,opt,name=feature_noise_sigma,json=featureNoiseSigma,proto3,oneof"`
  1191  }
  1192  
  1193  func (*SmoothGradConfig_NoiseSigma) isSmoothGradConfig_GradientNoiseSigma() {}
  1194  
  1195  func (*SmoothGradConfig_FeatureNoiseSigma) isSmoothGradConfig_GradientNoiseSigma() {}
  1196  
  1197  // Noise sigma by features. Noise sigma represents the standard deviation of the
  1198  // gaussian kernel that will be used to add noise to interpolated inputs prior
  1199  // to computing gradients.
  1200  type FeatureNoiseSigma struct {
  1201  	state         protoimpl.MessageState
  1202  	sizeCache     protoimpl.SizeCache
  1203  	unknownFields protoimpl.UnknownFields
  1204  
  1205  	// Noise sigma per feature. No noise is added to features that are not set.
  1206  	NoiseSigma []*FeatureNoiseSigma_NoiseSigmaForFeature `protobuf:"bytes,1,rep,name=noise_sigma,json=noiseSigma,proto3" json:"noise_sigma,omitempty"`
  1207  }
  1208  
  1209  func (x *FeatureNoiseSigma) Reset() {
  1210  	*x = FeatureNoiseSigma{}
  1211  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[10]
  1212  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1213  	ms.StoreMessageInfo(mi)
  1214  }
  1215  
  1216  func (x *FeatureNoiseSigma) String() string {
  1217  	return protoimpl.X.MessageStringOf(x)
  1218  }
  1219  
  1220  func (*FeatureNoiseSigma) ProtoMessage() {}
  1221  
  1222  func (x *FeatureNoiseSigma) ProtoReflect() protoreflect.Message {
  1223  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[10]
  1224  	if x != nil {
  1225  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1226  		if ms.LoadMessageInfo() == nil {
  1227  			ms.StoreMessageInfo(mi)
  1228  		}
  1229  		return ms
  1230  	}
  1231  	return mi.MessageOf(x)
  1232  }
  1233  
  1234  // Deprecated: Use FeatureNoiseSigma.ProtoReflect.Descriptor instead.
  1235  func (*FeatureNoiseSigma) Descriptor() ([]byte, []int) {
  1236  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{10}
  1237  }
  1238  
  1239  func (x *FeatureNoiseSigma) GetNoiseSigma() []*FeatureNoiseSigma_NoiseSigmaForFeature {
  1240  	if x != nil {
  1241  		return x.NoiseSigma
  1242  	}
  1243  	return nil
  1244  }
  1245  
  1246  // Config for blur baseline.
  1247  //
  1248  // When enabled, a linear path from the maximally blurred image to the input
  1249  // image is created. Using a blurred baseline instead of zero (black image) is
  1250  // motivated by the BlurIG approach explained here:
  1251  // https://arxiv.org/abs/2004.03383
  1252  type BlurBaselineConfig struct {
  1253  	state         protoimpl.MessageState
  1254  	sizeCache     protoimpl.SizeCache
  1255  	unknownFields protoimpl.UnknownFields
  1256  
  1257  	// The standard deviation of the blur kernel for the blurred baseline. The
  1258  	// same blurring parameter is used for both the height and the width
  1259  	// dimension. If not set, the method defaults to the zero (i.e. black for
  1260  	// images) baseline.
  1261  	MaxBlurSigma float32 `protobuf:"fixed32,1,opt,name=max_blur_sigma,json=maxBlurSigma,proto3" json:"max_blur_sigma,omitempty"`
  1262  }
  1263  
  1264  func (x *BlurBaselineConfig) Reset() {
  1265  	*x = BlurBaselineConfig{}
  1266  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[11]
  1267  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1268  	ms.StoreMessageInfo(mi)
  1269  }
  1270  
  1271  func (x *BlurBaselineConfig) String() string {
  1272  	return protoimpl.X.MessageStringOf(x)
  1273  }
  1274  
  1275  func (*BlurBaselineConfig) ProtoMessage() {}
  1276  
  1277  func (x *BlurBaselineConfig) ProtoReflect() protoreflect.Message {
  1278  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[11]
  1279  	if x != nil {
  1280  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1281  		if ms.LoadMessageInfo() == nil {
  1282  			ms.StoreMessageInfo(mi)
  1283  		}
  1284  		return ms
  1285  	}
  1286  	return mi.MessageOf(x)
  1287  }
  1288  
  1289  // Deprecated: Use BlurBaselineConfig.ProtoReflect.Descriptor instead.
  1290  func (*BlurBaselineConfig) Descriptor() ([]byte, []int) {
  1291  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{11}
  1292  }
  1293  
  1294  func (x *BlurBaselineConfig) GetMaxBlurSigma() float32 {
  1295  	if x != nil {
  1296  		return x.MaxBlurSigma
  1297  	}
  1298  	return 0
  1299  }
  1300  
  1301  // Example-based explainability that returns the nearest neighbors from the
  1302  // provided dataset.
  1303  type Examples struct {
  1304  	state         protoimpl.MessageState
  1305  	sizeCache     protoimpl.SizeCache
  1306  	unknownFields protoimpl.UnknownFields
  1307  
  1308  	// Types that are assignable to Source:
  1309  	//
  1310  	//	*Examples_ExampleGcsSource_
  1311  	Source isExamples_Source `protobuf_oneof:"source"`
  1312  	// Types that are assignable to Config:
  1313  	//
  1314  	//	*Examples_NearestNeighborSearchConfig
  1315  	//	*Examples_Presets
  1316  	Config isExamples_Config `protobuf_oneof:"config"`
  1317  	// The number of neighbors to return when querying for examples.
  1318  	NeighborCount int32 `protobuf:"varint,3,opt,name=neighbor_count,json=neighborCount,proto3" json:"neighbor_count,omitempty"`
  1319  }
  1320  
  1321  func (x *Examples) Reset() {
  1322  	*x = Examples{}
  1323  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[12]
  1324  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1325  	ms.StoreMessageInfo(mi)
  1326  }
  1327  
  1328  func (x *Examples) String() string {
  1329  	return protoimpl.X.MessageStringOf(x)
  1330  }
  1331  
  1332  func (*Examples) ProtoMessage() {}
  1333  
  1334  func (x *Examples) ProtoReflect() protoreflect.Message {
  1335  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[12]
  1336  	if x != nil {
  1337  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1338  		if ms.LoadMessageInfo() == nil {
  1339  			ms.StoreMessageInfo(mi)
  1340  		}
  1341  		return ms
  1342  	}
  1343  	return mi.MessageOf(x)
  1344  }
  1345  
  1346  // Deprecated: Use Examples.ProtoReflect.Descriptor instead.
  1347  func (*Examples) Descriptor() ([]byte, []int) {
  1348  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{12}
  1349  }
  1350  
  1351  func (m *Examples) GetSource() isExamples_Source {
  1352  	if m != nil {
  1353  		return m.Source
  1354  	}
  1355  	return nil
  1356  }
  1357  
  1358  func (x *Examples) GetExampleGcsSource() *Examples_ExampleGcsSource {
  1359  	if x, ok := x.GetSource().(*Examples_ExampleGcsSource_); ok {
  1360  		return x.ExampleGcsSource
  1361  	}
  1362  	return nil
  1363  }
  1364  
  1365  func (m *Examples) GetConfig() isExamples_Config {
  1366  	if m != nil {
  1367  		return m.Config
  1368  	}
  1369  	return nil
  1370  }
  1371  
  1372  func (x *Examples) GetNearestNeighborSearchConfig() *structpb.Value {
  1373  	if x, ok := x.GetConfig().(*Examples_NearestNeighborSearchConfig); ok {
  1374  		return x.NearestNeighborSearchConfig
  1375  	}
  1376  	return nil
  1377  }
  1378  
  1379  func (x *Examples) GetPresets() *Presets {
  1380  	if x, ok := x.GetConfig().(*Examples_Presets); ok {
  1381  		return x.Presets
  1382  	}
  1383  	return nil
  1384  }
  1385  
  1386  func (x *Examples) GetNeighborCount() int32 {
  1387  	if x != nil {
  1388  		return x.NeighborCount
  1389  	}
  1390  	return 0
  1391  }
  1392  
  1393  type isExamples_Source interface {
  1394  	isExamples_Source()
  1395  }
  1396  
  1397  type Examples_ExampleGcsSource_ struct {
  1398  	// The Cloud Storage input instances.
  1399  	ExampleGcsSource *Examples_ExampleGcsSource `protobuf:"bytes,5,opt,name=example_gcs_source,json=exampleGcsSource,proto3,oneof"`
  1400  }
  1401  
  1402  func (*Examples_ExampleGcsSource_) isExamples_Source() {}
  1403  
  1404  type isExamples_Config interface {
  1405  	isExamples_Config()
  1406  }
  1407  
  1408  type Examples_NearestNeighborSearchConfig struct {
  1409  	// The full configuration for the generated index, the semantics are the
  1410  	// same as [metadata][google.cloud.aiplatform.v1.Index.metadata] and should
  1411  	// match
  1412  	// [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config).
  1413  	NearestNeighborSearchConfig *structpb.Value `protobuf:"bytes,2,opt,name=nearest_neighbor_search_config,json=nearestNeighborSearchConfig,proto3,oneof"`
  1414  }
  1415  
  1416  type Examples_Presets struct {
  1417  	// Simplified preset configuration, which automatically sets configuration
  1418  	// values based on the desired query speed-precision trade-off and modality.
  1419  	Presets *Presets `protobuf:"bytes,4,opt,name=presets,proto3,oneof"`
  1420  }
  1421  
  1422  func (*Examples_NearestNeighborSearchConfig) isExamples_Config() {}
  1423  
  1424  func (*Examples_Presets) isExamples_Config() {}
  1425  
  1426  // Preset configuration for example-based explanations
  1427  type Presets struct {
  1428  	state         protoimpl.MessageState
  1429  	sizeCache     protoimpl.SizeCache
  1430  	unknownFields protoimpl.UnknownFields
  1431  
  1432  	// Preset option controlling parameters for speed-precision trade-off when
  1433  	// querying for examples. If omitted, defaults to `PRECISE`.
  1434  	Query *Presets_Query `protobuf:"varint,1,opt,name=query,proto3,enum=google.cloud.aiplatform.v1.Presets_Query,oneof" json:"query,omitempty"`
  1435  	// The modality of the uploaded model, which automatically configures the
  1436  	// distance measurement and feature normalization for the underlying example
  1437  	// index and queries. If your model does not precisely fit one of these types,
  1438  	// it is okay to choose the closest type.
  1439  	Modality Presets_Modality `protobuf:"varint,2,opt,name=modality,proto3,enum=google.cloud.aiplatform.v1.Presets_Modality" json:"modality,omitempty"`
  1440  }
  1441  
  1442  func (x *Presets) Reset() {
  1443  	*x = Presets{}
  1444  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[13]
  1445  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1446  	ms.StoreMessageInfo(mi)
  1447  }
  1448  
  1449  func (x *Presets) String() string {
  1450  	return protoimpl.X.MessageStringOf(x)
  1451  }
  1452  
  1453  func (*Presets) ProtoMessage() {}
  1454  
  1455  func (x *Presets) ProtoReflect() protoreflect.Message {
  1456  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[13]
  1457  	if x != nil {
  1458  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1459  		if ms.LoadMessageInfo() == nil {
  1460  			ms.StoreMessageInfo(mi)
  1461  		}
  1462  		return ms
  1463  	}
  1464  	return mi.MessageOf(x)
  1465  }
  1466  
  1467  // Deprecated: Use Presets.ProtoReflect.Descriptor instead.
  1468  func (*Presets) Descriptor() ([]byte, []int) {
  1469  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{13}
  1470  }
  1471  
  1472  func (x *Presets) GetQuery() Presets_Query {
  1473  	if x != nil && x.Query != nil {
  1474  		return *x.Query
  1475  	}
  1476  	return Presets_PRECISE
  1477  }
  1478  
  1479  func (x *Presets) GetModality() Presets_Modality {
  1480  	if x != nil {
  1481  		return x.Modality
  1482  	}
  1483  	return Presets_MODALITY_UNSPECIFIED
  1484  }
  1485  
  1486  // The [ExplanationSpec][google.cloud.aiplatform.v1.ExplanationSpec] entries
  1487  // that can be overridden at [online
  1488  // explanation][google.cloud.aiplatform.v1.PredictionService.Explain] time.
  1489  type ExplanationSpecOverride struct {
  1490  	state         protoimpl.MessageState
  1491  	sizeCache     protoimpl.SizeCache
  1492  	unknownFields protoimpl.UnknownFields
  1493  
  1494  	// The parameters to be overridden. Note that the
  1495  	// attribution method cannot be changed. If not specified,
  1496  	// no parameter is overridden.
  1497  	Parameters *ExplanationParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"`
  1498  	// The metadata to be overridden. If not specified, no metadata is overridden.
  1499  	Metadata *ExplanationMetadataOverride `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
  1500  	// The example-based explanations parameter overrides.
  1501  	ExamplesOverride *ExamplesOverride `protobuf:"bytes,3,opt,name=examples_override,json=examplesOverride,proto3" json:"examples_override,omitempty"`
  1502  }
  1503  
  1504  func (x *ExplanationSpecOverride) Reset() {
  1505  	*x = ExplanationSpecOverride{}
  1506  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[14]
  1507  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1508  	ms.StoreMessageInfo(mi)
  1509  }
  1510  
  1511  func (x *ExplanationSpecOverride) String() string {
  1512  	return protoimpl.X.MessageStringOf(x)
  1513  }
  1514  
  1515  func (*ExplanationSpecOverride) ProtoMessage() {}
  1516  
  1517  func (x *ExplanationSpecOverride) ProtoReflect() protoreflect.Message {
  1518  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[14]
  1519  	if x != nil {
  1520  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1521  		if ms.LoadMessageInfo() == nil {
  1522  			ms.StoreMessageInfo(mi)
  1523  		}
  1524  		return ms
  1525  	}
  1526  	return mi.MessageOf(x)
  1527  }
  1528  
  1529  // Deprecated: Use ExplanationSpecOverride.ProtoReflect.Descriptor instead.
  1530  func (*ExplanationSpecOverride) Descriptor() ([]byte, []int) {
  1531  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{14}
  1532  }
  1533  
  1534  func (x *ExplanationSpecOverride) GetParameters() *ExplanationParameters {
  1535  	if x != nil {
  1536  		return x.Parameters
  1537  	}
  1538  	return nil
  1539  }
  1540  
  1541  func (x *ExplanationSpecOverride) GetMetadata() *ExplanationMetadataOverride {
  1542  	if x != nil {
  1543  		return x.Metadata
  1544  	}
  1545  	return nil
  1546  }
  1547  
  1548  func (x *ExplanationSpecOverride) GetExamplesOverride() *ExamplesOverride {
  1549  	if x != nil {
  1550  		return x.ExamplesOverride
  1551  	}
  1552  	return nil
  1553  }
  1554  
  1555  // The [ExplanationMetadata][google.cloud.aiplatform.v1.ExplanationMetadata]
  1556  // entries that can be overridden at [online
  1557  // explanation][google.cloud.aiplatform.v1.PredictionService.Explain] time.
  1558  type ExplanationMetadataOverride struct {
  1559  	state         protoimpl.MessageState
  1560  	sizeCache     protoimpl.SizeCache
  1561  	unknownFields protoimpl.UnknownFields
  1562  
  1563  	// Required. Overrides the [input
  1564  	// metadata][google.cloud.aiplatform.v1.ExplanationMetadata.inputs] of the
  1565  	// features. The key is the name of the feature to be overridden. The keys
  1566  	// specified here must exist in the input metadata to be overridden. If a
  1567  	// feature is not specified here, the corresponding feature's input metadata
  1568  	// is not overridden.
  1569  	Inputs map[string]*ExplanationMetadataOverride_InputMetadataOverride `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1570  }
  1571  
  1572  func (x *ExplanationMetadataOverride) Reset() {
  1573  	*x = ExplanationMetadataOverride{}
  1574  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[15]
  1575  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1576  	ms.StoreMessageInfo(mi)
  1577  }
  1578  
  1579  func (x *ExplanationMetadataOverride) String() string {
  1580  	return protoimpl.X.MessageStringOf(x)
  1581  }
  1582  
  1583  func (*ExplanationMetadataOverride) ProtoMessage() {}
  1584  
  1585  func (x *ExplanationMetadataOverride) ProtoReflect() protoreflect.Message {
  1586  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[15]
  1587  	if x != nil {
  1588  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1589  		if ms.LoadMessageInfo() == nil {
  1590  			ms.StoreMessageInfo(mi)
  1591  		}
  1592  		return ms
  1593  	}
  1594  	return mi.MessageOf(x)
  1595  }
  1596  
  1597  // Deprecated: Use ExplanationMetadataOverride.ProtoReflect.Descriptor instead.
  1598  func (*ExplanationMetadataOverride) Descriptor() ([]byte, []int) {
  1599  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{15}
  1600  }
  1601  
  1602  func (x *ExplanationMetadataOverride) GetInputs() map[string]*ExplanationMetadataOverride_InputMetadataOverride {
  1603  	if x != nil {
  1604  		return x.Inputs
  1605  	}
  1606  	return nil
  1607  }
  1608  
  1609  // Overrides for example-based explanations.
  1610  type ExamplesOverride struct {
  1611  	state         protoimpl.MessageState
  1612  	sizeCache     protoimpl.SizeCache
  1613  	unknownFields protoimpl.UnknownFields
  1614  
  1615  	// The number of neighbors to return.
  1616  	NeighborCount int32 `protobuf:"varint,1,opt,name=neighbor_count,json=neighborCount,proto3" json:"neighbor_count,omitempty"`
  1617  	// The number of neighbors to return that have the same crowding tag.
  1618  	CrowdingCount int32 `protobuf:"varint,2,opt,name=crowding_count,json=crowdingCount,proto3" json:"crowding_count,omitempty"`
  1619  	// Restrict the resulting nearest neighbors to respect these constraints.
  1620  	Restrictions []*ExamplesRestrictionsNamespace `protobuf:"bytes,3,rep,name=restrictions,proto3" json:"restrictions,omitempty"`
  1621  	// If true, return the embeddings instead of neighbors.
  1622  	ReturnEmbeddings bool `protobuf:"varint,4,opt,name=return_embeddings,json=returnEmbeddings,proto3" json:"return_embeddings,omitempty"`
  1623  	// The format of the data being provided with each call.
  1624  	DataFormat ExamplesOverride_DataFormat `protobuf:"varint,5,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.aiplatform.v1.ExamplesOverride_DataFormat" json:"data_format,omitempty"`
  1625  }
  1626  
  1627  func (x *ExamplesOverride) Reset() {
  1628  	*x = ExamplesOverride{}
  1629  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[16]
  1630  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1631  	ms.StoreMessageInfo(mi)
  1632  }
  1633  
  1634  func (x *ExamplesOverride) String() string {
  1635  	return protoimpl.X.MessageStringOf(x)
  1636  }
  1637  
  1638  func (*ExamplesOverride) ProtoMessage() {}
  1639  
  1640  func (x *ExamplesOverride) ProtoReflect() protoreflect.Message {
  1641  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[16]
  1642  	if x != nil {
  1643  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1644  		if ms.LoadMessageInfo() == nil {
  1645  			ms.StoreMessageInfo(mi)
  1646  		}
  1647  		return ms
  1648  	}
  1649  	return mi.MessageOf(x)
  1650  }
  1651  
  1652  // Deprecated: Use ExamplesOverride.ProtoReflect.Descriptor instead.
  1653  func (*ExamplesOverride) Descriptor() ([]byte, []int) {
  1654  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{16}
  1655  }
  1656  
  1657  func (x *ExamplesOverride) GetNeighborCount() int32 {
  1658  	if x != nil {
  1659  		return x.NeighborCount
  1660  	}
  1661  	return 0
  1662  }
  1663  
  1664  func (x *ExamplesOverride) GetCrowdingCount() int32 {
  1665  	if x != nil {
  1666  		return x.CrowdingCount
  1667  	}
  1668  	return 0
  1669  }
  1670  
  1671  func (x *ExamplesOverride) GetRestrictions() []*ExamplesRestrictionsNamespace {
  1672  	if x != nil {
  1673  		return x.Restrictions
  1674  	}
  1675  	return nil
  1676  }
  1677  
  1678  func (x *ExamplesOverride) GetReturnEmbeddings() bool {
  1679  	if x != nil {
  1680  		return x.ReturnEmbeddings
  1681  	}
  1682  	return false
  1683  }
  1684  
  1685  func (x *ExamplesOverride) GetDataFormat() ExamplesOverride_DataFormat {
  1686  	if x != nil {
  1687  		return x.DataFormat
  1688  	}
  1689  	return ExamplesOverride_DATA_FORMAT_UNSPECIFIED
  1690  }
  1691  
  1692  // Restrictions namespace for example-based explanations overrides.
  1693  type ExamplesRestrictionsNamespace struct {
  1694  	state         protoimpl.MessageState
  1695  	sizeCache     protoimpl.SizeCache
  1696  	unknownFields protoimpl.UnknownFields
  1697  
  1698  	// The namespace name.
  1699  	NamespaceName string `protobuf:"bytes,1,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"`
  1700  	// The list of allowed tags.
  1701  	Allow []string `protobuf:"bytes,2,rep,name=allow,proto3" json:"allow,omitempty"`
  1702  	// The list of deny tags.
  1703  	Deny []string `protobuf:"bytes,3,rep,name=deny,proto3" json:"deny,omitempty"`
  1704  }
  1705  
  1706  func (x *ExamplesRestrictionsNamespace) Reset() {
  1707  	*x = ExamplesRestrictionsNamespace{}
  1708  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[17]
  1709  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1710  	ms.StoreMessageInfo(mi)
  1711  }
  1712  
  1713  func (x *ExamplesRestrictionsNamespace) String() string {
  1714  	return protoimpl.X.MessageStringOf(x)
  1715  }
  1716  
  1717  func (*ExamplesRestrictionsNamespace) ProtoMessage() {}
  1718  
  1719  func (x *ExamplesRestrictionsNamespace) ProtoReflect() protoreflect.Message {
  1720  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[17]
  1721  	if x != nil {
  1722  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1723  		if ms.LoadMessageInfo() == nil {
  1724  			ms.StoreMessageInfo(mi)
  1725  		}
  1726  		return ms
  1727  	}
  1728  	return mi.MessageOf(x)
  1729  }
  1730  
  1731  // Deprecated: Use ExamplesRestrictionsNamespace.ProtoReflect.Descriptor instead.
  1732  func (*ExamplesRestrictionsNamespace) Descriptor() ([]byte, []int) {
  1733  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{17}
  1734  }
  1735  
  1736  func (x *ExamplesRestrictionsNamespace) GetNamespaceName() string {
  1737  	if x != nil {
  1738  		return x.NamespaceName
  1739  	}
  1740  	return ""
  1741  }
  1742  
  1743  func (x *ExamplesRestrictionsNamespace) GetAllow() []string {
  1744  	if x != nil {
  1745  		return x.Allow
  1746  	}
  1747  	return nil
  1748  }
  1749  
  1750  func (x *ExamplesRestrictionsNamespace) GetDeny() []string {
  1751  	if x != nil {
  1752  		return x.Deny
  1753  	}
  1754  	return nil
  1755  }
  1756  
  1757  // Noise sigma for a single feature.
  1758  type FeatureNoiseSigma_NoiseSigmaForFeature struct {
  1759  	state         protoimpl.MessageState
  1760  	sizeCache     protoimpl.SizeCache
  1761  	unknownFields protoimpl.UnknownFields
  1762  
  1763  	// The name of the input feature for which noise sigma is provided. The
  1764  	// features are defined in
  1765  	// [explanation metadata
  1766  	// inputs][google.cloud.aiplatform.v1.ExplanationMetadata.inputs].
  1767  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1768  	// This represents the standard deviation of the Gaussian kernel that will
  1769  	// be used to add noise to the feature prior to computing gradients. Similar
  1770  	// to [noise_sigma][google.cloud.aiplatform.v1.SmoothGradConfig.noise_sigma]
  1771  	// but represents the noise added to the current feature. Defaults to 0.1.
  1772  	Sigma float32 `protobuf:"fixed32,2,opt,name=sigma,proto3" json:"sigma,omitempty"`
  1773  }
  1774  
  1775  func (x *FeatureNoiseSigma_NoiseSigmaForFeature) Reset() {
  1776  	*x = FeatureNoiseSigma_NoiseSigmaForFeature{}
  1777  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[18]
  1778  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1779  	ms.StoreMessageInfo(mi)
  1780  }
  1781  
  1782  func (x *FeatureNoiseSigma_NoiseSigmaForFeature) String() string {
  1783  	return protoimpl.X.MessageStringOf(x)
  1784  }
  1785  
  1786  func (*FeatureNoiseSigma_NoiseSigmaForFeature) ProtoMessage() {}
  1787  
  1788  func (x *FeatureNoiseSigma_NoiseSigmaForFeature) ProtoReflect() protoreflect.Message {
  1789  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[18]
  1790  	if x != nil {
  1791  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1792  		if ms.LoadMessageInfo() == nil {
  1793  			ms.StoreMessageInfo(mi)
  1794  		}
  1795  		return ms
  1796  	}
  1797  	return mi.MessageOf(x)
  1798  }
  1799  
  1800  // Deprecated: Use FeatureNoiseSigma_NoiseSigmaForFeature.ProtoReflect.Descriptor instead.
  1801  func (*FeatureNoiseSigma_NoiseSigmaForFeature) Descriptor() ([]byte, []int) {
  1802  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{10, 0}
  1803  }
  1804  
  1805  func (x *FeatureNoiseSigma_NoiseSigmaForFeature) GetName() string {
  1806  	if x != nil {
  1807  		return x.Name
  1808  	}
  1809  	return ""
  1810  }
  1811  
  1812  func (x *FeatureNoiseSigma_NoiseSigmaForFeature) GetSigma() float32 {
  1813  	if x != nil {
  1814  		return x.Sigma
  1815  	}
  1816  	return 0
  1817  }
  1818  
  1819  // The Cloud Storage input instances.
  1820  type Examples_ExampleGcsSource struct {
  1821  	state         protoimpl.MessageState
  1822  	sizeCache     protoimpl.SizeCache
  1823  	unknownFields protoimpl.UnknownFields
  1824  
  1825  	// The format in which instances are given, if not specified, assume it's
  1826  	// JSONL format. Currently only JSONL format is supported.
  1827  	DataFormat Examples_ExampleGcsSource_DataFormat `protobuf:"varint,1,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.aiplatform.v1.Examples_ExampleGcsSource_DataFormat" json:"data_format,omitempty"`
  1828  	// The Cloud Storage location for the input instances.
  1829  	GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3" json:"gcs_source,omitempty"`
  1830  }
  1831  
  1832  func (x *Examples_ExampleGcsSource) Reset() {
  1833  	*x = Examples_ExampleGcsSource{}
  1834  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[19]
  1835  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1836  	ms.StoreMessageInfo(mi)
  1837  }
  1838  
  1839  func (x *Examples_ExampleGcsSource) String() string {
  1840  	return protoimpl.X.MessageStringOf(x)
  1841  }
  1842  
  1843  func (*Examples_ExampleGcsSource) ProtoMessage() {}
  1844  
  1845  func (x *Examples_ExampleGcsSource) ProtoReflect() protoreflect.Message {
  1846  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[19]
  1847  	if x != nil {
  1848  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1849  		if ms.LoadMessageInfo() == nil {
  1850  			ms.StoreMessageInfo(mi)
  1851  		}
  1852  		return ms
  1853  	}
  1854  	return mi.MessageOf(x)
  1855  }
  1856  
  1857  // Deprecated: Use Examples_ExampleGcsSource.ProtoReflect.Descriptor instead.
  1858  func (*Examples_ExampleGcsSource) Descriptor() ([]byte, []int) {
  1859  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{12, 0}
  1860  }
  1861  
  1862  func (x *Examples_ExampleGcsSource) GetDataFormat() Examples_ExampleGcsSource_DataFormat {
  1863  	if x != nil {
  1864  		return x.DataFormat
  1865  	}
  1866  	return Examples_ExampleGcsSource_DATA_FORMAT_UNSPECIFIED
  1867  }
  1868  
  1869  func (x *Examples_ExampleGcsSource) GetGcsSource() *GcsSource {
  1870  	if x != nil {
  1871  		return x.GcsSource
  1872  	}
  1873  	return nil
  1874  }
  1875  
  1876  // The [input
  1877  // metadata][google.cloud.aiplatform.v1.ExplanationMetadata.InputMetadata]
  1878  // entries to be overridden.
  1879  type ExplanationMetadataOverride_InputMetadataOverride struct {
  1880  	state         protoimpl.MessageState
  1881  	sizeCache     protoimpl.SizeCache
  1882  	unknownFields protoimpl.UnknownFields
  1883  
  1884  	// Baseline inputs for this feature.
  1885  	//
  1886  	// This overrides the `input_baseline` field of the
  1887  	// [ExplanationMetadata.InputMetadata][google.cloud.aiplatform.v1.ExplanationMetadata.InputMetadata]
  1888  	// object of the corresponding feature's input metadata. If it's not
  1889  	// specified, the original baselines are not overridden.
  1890  	InputBaselines []*structpb.Value `protobuf:"bytes,1,rep,name=input_baselines,json=inputBaselines,proto3" json:"input_baselines,omitempty"`
  1891  }
  1892  
  1893  func (x *ExplanationMetadataOverride_InputMetadataOverride) Reset() {
  1894  	*x = ExplanationMetadataOverride_InputMetadataOverride{}
  1895  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[20]
  1896  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1897  	ms.StoreMessageInfo(mi)
  1898  }
  1899  
  1900  func (x *ExplanationMetadataOverride_InputMetadataOverride) String() string {
  1901  	return protoimpl.X.MessageStringOf(x)
  1902  }
  1903  
  1904  func (*ExplanationMetadataOverride_InputMetadataOverride) ProtoMessage() {}
  1905  
  1906  func (x *ExplanationMetadataOverride_InputMetadataOverride) ProtoReflect() protoreflect.Message {
  1907  	mi := &file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[20]
  1908  	if x != nil {
  1909  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1910  		if ms.LoadMessageInfo() == nil {
  1911  			ms.StoreMessageInfo(mi)
  1912  		}
  1913  		return ms
  1914  	}
  1915  	return mi.MessageOf(x)
  1916  }
  1917  
  1918  // Deprecated: Use ExplanationMetadataOverride_InputMetadataOverride.ProtoReflect.Descriptor instead.
  1919  func (*ExplanationMetadataOverride_InputMetadataOverride) Descriptor() ([]byte, []int) {
  1920  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP(), []int{15, 0}
  1921  }
  1922  
  1923  func (x *ExplanationMetadataOverride_InputMetadataOverride) GetInputBaselines() []*structpb.Value {
  1924  	if x != nil {
  1925  		return x.InputBaselines
  1926  	}
  1927  	return nil
  1928  }
  1929  
  1930  var File_google_cloud_aiplatform_v1_explanation_proto protoreflect.FileDescriptor
  1931  
  1932  var file_google_cloud_aiplatform_v1_explanation_proto_rawDesc = []byte{
  1933  	0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
  1934  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70,
  1935  	0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a,
  1936  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  1937  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
  1938  	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
  1939  	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f,
  1940  	0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  1941  	0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74,
  1942  	0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f,
  1943  	0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  1944  	0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69,
  1945  	0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
  1946  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e,
  1947  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e,
  1948  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
  1949  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f,
  1950  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1951  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
  1952  	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69,
  1953  	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68,
  1954  	0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,
  1955  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  1956  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72,
  1957  	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73,
  1958  	0x22, 0x6d, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61,
  1959  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x11, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x61, 0x74, 0x74,
  1960  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1961  	0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  1962  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74,
  1963  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d,
  1964  	0x65, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
  1965  	0x88, 0x03, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  1966  	0x37, 0x0a, 0x15, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70,
  1967  	0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03,
  1968  	0xe0, 0x41, 0x03, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x75, 0x74,
  1969  	0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x74,
  1970  	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75,
  1971  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x69, 0x6e,
  1972  	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75,
  1973  	0x65, 0x12, 0x4e, 0x0a, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x74,
  1974  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1975  	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  1976  	0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x66, 0x65,
  1977  	0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
  1978  	0x73, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65,
  1979  	0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6f, 0x75,
  1980  	0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x13, 0x6f, 0x75, 0x74,
  1981  	0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
  1982  	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x6f, 0x75, 0x74,
  1983  	0x70, 0x75, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34,
  1984  	0x0a, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
  1985  	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03,
  1986  	0x52, 0x12, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
  1987  	0x72, 0x72, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6e,
  1988  	0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
  1989  	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x62, 0x0a, 0x08, 0x4e, 0x65,
  1990  	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
  1991  	0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
  1992  	0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x11,
  1993  	0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
  1994  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6e, 0x65,
  1995  	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xbb,
  1996  	0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70,
  1997  	0x65, 0x63, 0x12, 0x56, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,
  1998  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1999  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  2000  	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
  2001  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a,
  2002  	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x6d, 0x65,
  2003  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67,
  2004  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2005  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e,
  2006  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0,
  2007  	0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x99, 0x04, 0x0a,
  2008  	0x15, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61,
  2009  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x77, 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
  2010  	0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
  2011  	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f,
  2012  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  2013  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64,
  2014  	0x53, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
  2015  	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x53, 0x68, 0x61,
  2016  	0x70, 0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  2017  	0x86, 0x01, 0x0a, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x67,
  2018  	0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
  2019  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f,
  2020  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2021  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
  2022  	0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69,
  2023  	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72,
  2024  	0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74,
  2025  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x78, 0x72, 0x61, 0x69,
  2026  	0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
  2027  	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  2028  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  2029  	0x58, 0x72, 0x61, 0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48,
  2030  	0x00, 0x52, 0x0f, 0x78, 0x72, 0x61, 0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
  2031  	0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x07,
  2032  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
  2033  	0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
  2034  	0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78,
  2035  	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x18,
  2036  	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4b, 0x12, 0x41, 0x0a, 0x0e, 0x6f,
  2037  	0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20,
  2038  	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  2039  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
  2040  	0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x42, 0x08,
  2041  	0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x3f, 0x0a, 0x19, 0x53, 0x61, 0x6d, 0x70,
  2042  	0x6c, 0x65, 0x64, 0x53, 0x68, 0x61, 0x70, 0x6c, 0x65, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
  2043  	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x63, 0x6f,
  2044  	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
  2045  	0x70, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x49, 0x6e,
  2046  	0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74,
  2047  	0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a,
  2048  	0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
  2049  	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74,
  2050  	0x12, 0x5a, 0x0a, 0x12, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x5f,
  2051  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67,
  2052  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2053  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68,
  2054  	0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x73, 0x6d, 0x6f, 0x6f,
  2055  	0x74, 0x68, 0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x14,
  2056  	0x62, 0x6c, 0x75, 0x72, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f,
  2057  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f,
  2058  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2059  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x75, 0x72, 0x42, 0x61, 0x73, 0x65,
  2060  	0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x62, 0x6c, 0x75, 0x72,
  2061  	0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf3,
  2062  	0x01, 0x0a, 0x0f, 0x58, 0x72, 0x61, 0x69, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
  2063  	0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
  2064  	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x65,
  2065  	0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x12, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68,
  2066  	0x5f, 0x67, 0x72, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01,
  2067  	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  2068  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  2069  	0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2070  	0x52, 0x10, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47, 0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66,
  2071  	0x69, 0x67, 0x12, 0x60, 0x0a, 0x14, 0x62, 0x6c, 0x75, 0x72, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c,
  2072  	0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  2073  	0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  2074  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c,
  2075  	0x75, 0x72, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2076  	0x52, 0x12, 0x62, 0x6c, 0x75, 0x72, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f,
  2077  	0x6e, 0x66, 0x69, 0x67, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x47,
  2078  	0x72, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0b, 0x6e, 0x6f, 0x69,
  2079  	0x73, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00,
  2080  	0x52, 0x0a, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x12, 0x5f, 0x0a, 0x13,
  2081  	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x69,
  2082  	0x67, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2083  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  2084  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f,
  2085  	0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x11, 0x66, 0x65, 0x61, 0x74,
  2086  	0x75, 0x72, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x12, 0x2c, 0x0a,
  2087  	0x12, 0x6e, 0x6f, 0x69, 0x73, 0x79, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f,
  2088  	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x69, 0x73, 0x79,
  2089  	0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x47,
  2090  	0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d,
  2091  	0x61, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x69,
  2092  	0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x12, 0x63, 0x0a, 0x0b, 0x6e, 0x6f, 0x69, 0x73, 0x65,
  2093  	0x5f, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67,
  2094  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2095  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
  2096  	0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x2e, 0x4e, 0x6f, 0x69, 0x73,
  2097  	0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x46, 0x6f, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  2098  	0x52, 0x0a, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x1a, 0x40, 0x0a, 0x14,
  2099  	0x4e, 0x6f, 0x69, 0x73, 0x65, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x46, 0x6f, 0x72, 0x46, 0x65, 0x61,
  2100  	0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
  2101  	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d,
  2102  	0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x22, 0x3a,
  2103  	0x0a, 0x12, 0x42, 0x6c, 0x75, 0x72, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f,
  2104  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x75, 0x72,
  2105  	0x5f, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61,
  2106  	0x78, 0x42, 0x6c, 0x75, 0x72, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x22, 0xc0, 0x04, 0x0a, 0x08, 0x45,
  2107  	0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x12, 0x65, 0x78, 0x61, 0x6d, 0x70,
  2108  	0x6c, 0x65, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20,
  2109  	0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2110  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2111  	0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
  2112  	0x65, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78,
  2113  	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5d,
  2114  	0x0a, 0x1e, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
  2115  	0x6f, 0x72, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2116  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2117  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01,
  2118  	0x52, 0x1b, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
  2119  	0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a,
  2120  	0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
  2121  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  2122  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73,
  2123  	0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x12, 0x25,
  2124  	0x0a, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
  2125  	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72,
  2126  	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xf1, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
  2127  	0x65, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x61, 0x0a, 0x0b, 0x64, 0x61,
  2128  	0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
  2129  	0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  2130  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x61,
  2131  	0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x47, 0x63, 0x73,
  2132  	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61,
  2133  	0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x44, 0x0a,
  2134  	0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  2135  	0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  2136  	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47,
  2137  	0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75,
  2138  	0x72, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61,
  2139  	0x74, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54,
  2140  	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09,
  2141  	0x0a, 0x05, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75,
  2142  	0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x8b, 0x02,
  2143  	0x0a, 0x07, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x71, 0x75, 0x65,
  2144  	0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2145  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2146  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x51, 0x75,
  2147  	0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12,
  2148  	0x48, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
  2149  	0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  2150  	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50,
  2151  	0x72, 0x65, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52,
  2152  	0x08, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x1e, 0x0a, 0x05, 0x51, 0x75, 0x65,
  2153  	0x72, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x43, 0x49, 0x53, 0x45, 0x10, 0x00, 0x12,
  2154  	0x08, 0x0a, 0x04, 0x46, 0x41, 0x53, 0x54, 0x10, 0x01, 0x22, 0x46, 0x0a, 0x08, 0x4d, 0x6f, 0x64,
  2155  	0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x44, 0x41, 0x4c, 0x49, 0x54,
  2156  	0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
  2157  	0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45,
  2158  	0x58, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x10,
  2159  	0x03, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x9c, 0x02, 0x0a, 0x17,
  2160  	0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f,
  2161  	0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
  2162  	0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f,
  2163  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  2164  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61,
  2165  	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a,
  2166  	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x08, 0x6d, 0x65,
  2167  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67,
  2168  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2169  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e,
  2170  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65,
  2171  	0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
  2172  	0x59, 0x0a, 0x11, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x6f, 0x76, 0x65, 0x72,
  2173  	0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f,
  2174  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2175  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73,
  2176  	0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x10, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
  2177  	0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1b, 0x45,
  2178  	0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
  2179  	0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x60, 0x0a, 0x06, 0x69, 0x6e,
  2180  	0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f,
  2181  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2182  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74,
  2183  	0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72,
  2184  	0x69, 0x64, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42,
  2185  	0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x1a, 0x58, 0x0a, 0x15,
  2186  	0x49, 0x6e, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65,
  2187  	0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62,
  2188  	0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
  2189  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  2190  	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x61, 0x73,
  2191  	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74,
  2192  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
  2193  	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x63, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
  2194  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2195  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  2196  	0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  2197  	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
  2198  	0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x76,
  2199  	0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
  2200  	0x01, 0x22, 0x90, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x76,
  2201  	0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
  2202  	0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d,
  2203  	0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a,
  2204  	0x0e, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
  2205  	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x43,
  2206  	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74,
  2207  	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f,
  2208  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2209  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73,
  2210  	0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65,
  2211  	0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69,
  2212  	0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x65, 0x6d,
  2213  	0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
  2214  	0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73,
  2215  	0x12, 0x58, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,
  2216  	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
  2217  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
  2218  	0x76, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72,
  2219  	0x69, 0x64, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0a,
  2220  	0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x48, 0x0a, 0x0a, 0x44, 0x61,
  2221  	0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41,
  2222  	0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
  2223  	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43,
  2224  	0x45, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4d, 0x42, 0x45, 0x44, 0x44, 0x49, 0x4e,
  2225  	0x47, 0x53, 0x10, 0x02, 0x22, 0x70, 0x0a, 0x1d, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73,
  2226  	0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65,
  2227  	0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
  2228  	0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e,
  2229  	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
  2230  	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x6c,
  2231  	0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x6e, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
  2232  	0x52, 0x04, 0x64, 0x65, 0x6e, 0x79, 0x42, 0xce, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
  2233  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2234  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x45, 0x78, 0x70, 0x6c, 0x61,
  2235  	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63,
  2236  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
  2237  	0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70,
  2238  	0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62,
  2239  	0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a,
  2240  	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50,
  2241  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f,
  2242  	0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74,
  2243  	0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2244  	0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66,
  2245  	0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2246  }
  2247  
  2248  var (
  2249  	file_google_cloud_aiplatform_v1_explanation_proto_rawDescOnce sync.Once
  2250  	file_google_cloud_aiplatform_v1_explanation_proto_rawDescData = file_google_cloud_aiplatform_v1_explanation_proto_rawDesc
  2251  )
  2252  
  2253  func file_google_cloud_aiplatform_v1_explanation_proto_rawDescGZIP() []byte {
  2254  	file_google_cloud_aiplatform_v1_explanation_proto_rawDescOnce.Do(func() {
  2255  		file_google_cloud_aiplatform_v1_explanation_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_explanation_proto_rawDescData)
  2256  	})
  2257  	return file_google_cloud_aiplatform_v1_explanation_proto_rawDescData
  2258  }
  2259  
  2260  var file_google_cloud_aiplatform_v1_explanation_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
  2261  var file_google_cloud_aiplatform_v1_explanation_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
  2262  var file_google_cloud_aiplatform_v1_explanation_proto_goTypes = []any{
  2263  	(Examples_ExampleGcsSource_DataFormat)(0),                 // 0: google.cloud.aiplatform.v1.Examples.ExampleGcsSource.DataFormat
  2264  	(Presets_Query)(0),                                        // 1: google.cloud.aiplatform.v1.Presets.Query
  2265  	(Presets_Modality)(0),                                     // 2: google.cloud.aiplatform.v1.Presets.Modality
  2266  	(ExamplesOverride_DataFormat)(0),                          // 3: google.cloud.aiplatform.v1.ExamplesOverride.DataFormat
  2267  	(*Explanation)(nil),                                       // 4: google.cloud.aiplatform.v1.Explanation
  2268  	(*ModelExplanation)(nil),                                  // 5: google.cloud.aiplatform.v1.ModelExplanation
  2269  	(*Attribution)(nil),                                       // 6: google.cloud.aiplatform.v1.Attribution
  2270  	(*Neighbor)(nil),                                          // 7: google.cloud.aiplatform.v1.Neighbor
  2271  	(*ExplanationSpec)(nil),                                   // 8: google.cloud.aiplatform.v1.ExplanationSpec
  2272  	(*ExplanationParameters)(nil),                             // 9: google.cloud.aiplatform.v1.ExplanationParameters
  2273  	(*SampledShapleyAttribution)(nil),                         // 10: google.cloud.aiplatform.v1.SampledShapleyAttribution
  2274  	(*IntegratedGradientsAttribution)(nil),                    // 11: google.cloud.aiplatform.v1.IntegratedGradientsAttribution
  2275  	(*XraiAttribution)(nil),                                   // 12: google.cloud.aiplatform.v1.XraiAttribution
  2276  	(*SmoothGradConfig)(nil),                                  // 13: google.cloud.aiplatform.v1.SmoothGradConfig
  2277  	(*FeatureNoiseSigma)(nil),                                 // 14: google.cloud.aiplatform.v1.FeatureNoiseSigma
  2278  	(*BlurBaselineConfig)(nil),                                // 15: google.cloud.aiplatform.v1.BlurBaselineConfig
  2279  	(*Examples)(nil),                                          // 16: google.cloud.aiplatform.v1.Examples
  2280  	(*Presets)(nil),                                           // 17: google.cloud.aiplatform.v1.Presets
  2281  	(*ExplanationSpecOverride)(nil),                           // 18: google.cloud.aiplatform.v1.ExplanationSpecOverride
  2282  	(*ExplanationMetadataOverride)(nil),                       // 19: google.cloud.aiplatform.v1.ExplanationMetadataOverride
  2283  	(*ExamplesOverride)(nil),                                  // 20: google.cloud.aiplatform.v1.ExamplesOverride
  2284  	(*ExamplesRestrictionsNamespace)(nil),                     // 21: google.cloud.aiplatform.v1.ExamplesRestrictionsNamespace
  2285  	(*FeatureNoiseSigma_NoiseSigmaForFeature)(nil),            // 22: google.cloud.aiplatform.v1.FeatureNoiseSigma.NoiseSigmaForFeature
  2286  	(*Examples_ExampleGcsSource)(nil),                         // 23: google.cloud.aiplatform.v1.Examples.ExampleGcsSource
  2287  	(*ExplanationMetadataOverride_InputMetadataOverride)(nil), // 24: google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputMetadataOverride
  2288  	nil,                         // 25: google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputsEntry
  2289  	(*structpb.Value)(nil),      // 26: google.protobuf.Value
  2290  	(*ExplanationMetadata)(nil), // 27: google.cloud.aiplatform.v1.ExplanationMetadata
  2291  	(*structpb.ListValue)(nil),  // 28: google.protobuf.ListValue
  2292  	(*GcsSource)(nil),           // 29: google.cloud.aiplatform.v1.GcsSource
  2293  }
  2294  var file_google_cloud_aiplatform_v1_explanation_proto_depIdxs = []int32{
  2295  	6,  // 0: google.cloud.aiplatform.v1.Explanation.attributions:type_name -> google.cloud.aiplatform.v1.Attribution
  2296  	7,  // 1: google.cloud.aiplatform.v1.Explanation.neighbors:type_name -> google.cloud.aiplatform.v1.Neighbor
  2297  	6,  // 2: google.cloud.aiplatform.v1.ModelExplanation.mean_attributions:type_name -> google.cloud.aiplatform.v1.Attribution
  2298  	26, // 3: google.cloud.aiplatform.v1.Attribution.feature_attributions:type_name -> google.protobuf.Value
  2299  	9,  // 4: google.cloud.aiplatform.v1.ExplanationSpec.parameters:type_name -> google.cloud.aiplatform.v1.ExplanationParameters
  2300  	27, // 5: google.cloud.aiplatform.v1.ExplanationSpec.metadata:type_name -> google.cloud.aiplatform.v1.ExplanationMetadata
  2301  	10, // 6: google.cloud.aiplatform.v1.ExplanationParameters.sampled_shapley_attribution:type_name -> google.cloud.aiplatform.v1.SampledShapleyAttribution
  2302  	11, // 7: google.cloud.aiplatform.v1.ExplanationParameters.integrated_gradients_attribution:type_name -> google.cloud.aiplatform.v1.IntegratedGradientsAttribution
  2303  	12, // 8: google.cloud.aiplatform.v1.ExplanationParameters.xrai_attribution:type_name -> google.cloud.aiplatform.v1.XraiAttribution
  2304  	16, // 9: google.cloud.aiplatform.v1.ExplanationParameters.examples:type_name -> google.cloud.aiplatform.v1.Examples
  2305  	28, // 10: google.cloud.aiplatform.v1.ExplanationParameters.output_indices:type_name -> google.protobuf.ListValue
  2306  	13, // 11: google.cloud.aiplatform.v1.IntegratedGradientsAttribution.smooth_grad_config:type_name -> google.cloud.aiplatform.v1.SmoothGradConfig
  2307  	15, // 12: google.cloud.aiplatform.v1.IntegratedGradientsAttribution.blur_baseline_config:type_name -> google.cloud.aiplatform.v1.BlurBaselineConfig
  2308  	13, // 13: google.cloud.aiplatform.v1.XraiAttribution.smooth_grad_config:type_name -> google.cloud.aiplatform.v1.SmoothGradConfig
  2309  	15, // 14: google.cloud.aiplatform.v1.XraiAttribution.blur_baseline_config:type_name -> google.cloud.aiplatform.v1.BlurBaselineConfig
  2310  	14, // 15: google.cloud.aiplatform.v1.SmoothGradConfig.feature_noise_sigma:type_name -> google.cloud.aiplatform.v1.FeatureNoiseSigma
  2311  	22, // 16: google.cloud.aiplatform.v1.FeatureNoiseSigma.noise_sigma:type_name -> google.cloud.aiplatform.v1.FeatureNoiseSigma.NoiseSigmaForFeature
  2312  	23, // 17: google.cloud.aiplatform.v1.Examples.example_gcs_source:type_name -> google.cloud.aiplatform.v1.Examples.ExampleGcsSource
  2313  	26, // 18: google.cloud.aiplatform.v1.Examples.nearest_neighbor_search_config:type_name -> google.protobuf.Value
  2314  	17, // 19: google.cloud.aiplatform.v1.Examples.presets:type_name -> google.cloud.aiplatform.v1.Presets
  2315  	1,  // 20: google.cloud.aiplatform.v1.Presets.query:type_name -> google.cloud.aiplatform.v1.Presets.Query
  2316  	2,  // 21: google.cloud.aiplatform.v1.Presets.modality:type_name -> google.cloud.aiplatform.v1.Presets.Modality
  2317  	9,  // 22: google.cloud.aiplatform.v1.ExplanationSpecOverride.parameters:type_name -> google.cloud.aiplatform.v1.ExplanationParameters
  2318  	19, // 23: google.cloud.aiplatform.v1.ExplanationSpecOverride.metadata:type_name -> google.cloud.aiplatform.v1.ExplanationMetadataOverride
  2319  	20, // 24: google.cloud.aiplatform.v1.ExplanationSpecOverride.examples_override:type_name -> google.cloud.aiplatform.v1.ExamplesOverride
  2320  	25, // 25: google.cloud.aiplatform.v1.ExplanationMetadataOverride.inputs:type_name -> google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputsEntry
  2321  	21, // 26: google.cloud.aiplatform.v1.ExamplesOverride.restrictions:type_name -> google.cloud.aiplatform.v1.ExamplesRestrictionsNamespace
  2322  	3,  // 27: google.cloud.aiplatform.v1.ExamplesOverride.data_format:type_name -> google.cloud.aiplatform.v1.ExamplesOverride.DataFormat
  2323  	0,  // 28: google.cloud.aiplatform.v1.Examples.ExampleGcsSource.data_format:type_name -> google.cloud.aiplatform.v1.Examples.ExampleGcsSource.DataFormat
  2324  	29, // 29: google.cloud.aiplatform.v1.Examples.ExampleGcsSource.gcs_source:type_name -> google.cloud.aiplatform.v1.GcsSource
  2325  	26, // 30: google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputMetadataOverride.input_baselines:type_name -> google.protobuf.Value
  2326  	24, // 31: google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputsEntry.value:type_name -> google.cloud.aiplatform.v1.ExplanationMetadataOverride.InputMetadataOverride
  2327  	32, // [32:32] is the sub-list for method output_type
  2328  	32, // [32:32] is the sub-list for method input_type
  2329  	32, // [32:32] is the sub-list for extension type_name
  2330  	32, // [32:32] is the sub-list for extension extendee
  2331  	0,  // [0:32] is the sub-list for field type_name
  2332  }
  2333  
  2334  func init() { file_google_cloud_aiplatform_v1_explanation_proto_init() }
  2335  func file_google_cloud_aiplatform_v1_explanation_proto_init() {
  2336  	if File_google_cloud_aiplatform_v1_explanation_proto != nil {
  2337  		return
  2338  	}
  2339  	file_google_cloud_aiplatform_v1_explanation_metadata_proto_init()
  2340  	file_google_cloud_aiplatform_v1_io_proto_init()
  2341  	file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[5].OneofWrappers = []any{
  2342  		(*ExplanationParameters_SampledShapleyAttribution)(nil),
  2343  		(*ExplanationParameters_IntegratedGradientsAttribution)(nil),
  2344  		(*ExplanationParameters_XraiAttribution)(nil),
  2345  		(*ExplanationParameters_Examples)(nil),
  2346  	}
  2347  	file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[9].OneofWrappers = []any{
  2348  		(*SmoothGradConfig_NoiseSigma)(nil),
  2349  		(*SmoothGradConfig_FeatureNoiseSigma)(nil),
  2350  	}
  2351  	file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[12].OneofWrappers = []any{
  2352  		(*Examples_ExampleGcsSource_)(nil),
  2353  		(*Examples_NearestNeighborSearchConfig)(nil),
  2354  		(*Examples_Presets)(nil),
  2355  	}
  2356  	file_google_cloud_aiplatform_v1_explanation_proto_msgTypes[13].OneofWrappers = []any{}
  2357  	type x struct{}
  2358  	out := protoimpl.TypeBuilder{
  2359  		File: protoimpl.DescBuilder{
  2360  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2361  			RawDescriptor: file_google_cloud_aiplatform_v1_explanation_proto_rawDesc,
  2362  			NumEnums:      4,
  2363  			NumMessages:   22,
  2364  			NumExtensions: 0,
  2365  			NumServices:   0,
  2366  		},
  2367  		GoTypes:           file_google_cloud_aiplatform_v1_explanation_proto_goTypes,
  2368  		DependencyIndexes: file_google_cloud_aiplatform_v1_explanation_proto_depIdxs,
  2369  		EnumInfos:         file_google_cloud_aiplatform_v1_explanation_proto_enumTypes,
  2370  		MessageInfos:      file_google_cloud_aiplatform_v1_explanation_proto_msgTypes,
  2371  	}.Build()
  2372  	File_google_cloud_aiplatform_v1_explanation_proto = out.File
  2373  	file_google_cloud_aiplatform_v1_explanation_proto_rawDesc = nil
  2374  	file_google_cloud_aiplatform_v1_explanation_proto_goTypes = nil
  2375  	file_google_cloud_aiplatform_v1_explanation_proto_depIdxs = nil
  2376  }