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