diff --git a/aiplatform/apiv1/aiplatformpb/notebook_runtime.pb.go b/aiplatform/apiv1/aiplatformpb/notebook_runtime.pb.go index fd938e2f0435..1aa658415d81 100755 --- a/aiplatform/apiv1/aiplatformpb/notebook_runtime.pb.go +++ b/aiplatform/apiv1/aiplatformpb/notebook_runtime.pb.go @@ -301,6 +301,8 @@ type NotebookRuntimeTemplate struct { NetworkTags []string `protobuf:"bytes,21,rep,name=network_tags,json=networkTags,proto3" json:"network_tags,omitempty"` // Customer-managed encryption key spec for the notebook runtime. EncryptionSpec *EncryptionSpec `protobuf:"bytes,23,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` + // Optional. The notebook software configuration of the notebook runtime. + SoftwareConfig *NotebookSoftwareConfig `protobuf:"bytes,24,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"` } func (x *NotebookRuntimeTemplate) Reset() { @@ -461,6 +463,13 @@ func (x *NotebookRuntimeTemplate) GetEncryptionSpec() *EncryptionSpec { return nil } +func (x *NotebookRuntimeTemplate) GetSoftwareConfig() *NotebookSoftwareConfig { + if x != nil { + return x.SoftwareConfig + } + return nil +} + // A runtime is a virtual machine allocated to a particular user for a // particular Notebook file on temporary basis with lifetime limited to 24 // hours. @@ -551,6 +560,8 @@ type NotebookRuntime struct { // Optional. The Compute Engine tags to add to runtime (see [Tagging // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). NetworkTags []string `protobuf:"bytes,25,rep,name=network_tags,json=networkTags,proto3" json:"network_tags,omitempty"` + // Output only. Software config of the notebook runtime. + SoftwareConfig *NotebookSoftwareConfig `protobuf:"bytes,31,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"` // Output only. Customer-managed encryption key spec for the notebook runtime. EncryptionSpec *EncryptionSpec `protobuf:"bytes,28,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` // Output only. Reserved for future use. @@ -750,6 +761,13 @@ func (x *NotebookRuntime) GetNetworkTags() []string { return nil } +func (x *NotebookRuntime) GetSoftwareConfig() *NotebookSoftwareConfig { + if x != nil { + return x.SoftwareConfig + } + return nil +} + func (x *NotebookRuntime) GetEncryptionSpec() *EncryptionSpec { if x != nil { return x.EncryptionSpec @@ -803,258 +821,274 @@ var file_google_cloud_aiplatform_v1_notebook_runtime_proto_rawDesc = []byte{ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x0b, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x24, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0xe0, 0x41, 0x03, 0x18, 0x01, 0x52, 0x09, 0x69, 0x73, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x19, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0c, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x0f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, - 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x57, 0x0a, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x68, 0x0a, 0x14, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x73, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x6c, 0x65, 0x53, 0x68, - 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x69, 0x64, - 0x6c, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x75, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x75, 0x63, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x09, 0x65, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x6b, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x62, 0x0a, 0x12, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6d, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, - 0x64, 0x56, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, - 0x05, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x56, 0x6d, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x95, 0x01, 0xea, 0x41, - 0x91, 0x01, 0x0a, 0x31, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x7d, 0x22, 0xab, 0x11, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, + 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x8b, 0x0c, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0a, + 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x05, 0xe0, 0x41, 0x03, 0x18, 0x01, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x19, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, + 0x64, 0x61, 0x74, 0x61, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, + 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x68, 0x0a, 0x14, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x6e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x69, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5f, - 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x69, - 0x73, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x69, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, - 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x68, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x19, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, - 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0c, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6d, 0x0a, 0x14, 0x69, - 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, - 0x64, 0x6c, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x53, 0x68, 0x75, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 0x0a, 0x65, 0x75, - 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x09, 0x65, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, - 0x12, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x56, - 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x73, 0x68, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x6c, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x53, 0x68, 0x75, + 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x0a, 0x65, + 0x75, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, + 0x65, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x6b, 0x0a, + 0x15, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xe0, + 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x12, 0x73, 0x68, + 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x56, 0x6d, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x56, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, - 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x19, + 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x72, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, - 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x73, 0x50, 0x7a, 0x69, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x47, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, - 0x0a, 0x18, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x48, - 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x22, 0x99, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x55, 0x4e, - 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, - 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x53, - 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x49, 0x4e, - 0x47, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, - 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x45, 0x49, 0x4e, - 0x47, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x10, 0x65, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x29, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x2f, 0x7b, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x0f, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39, 0x0a, + 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x95, 0x01, 0xea, 0x41, 0x91, 0x01, 0x0a, + 0x31, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x5c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, + 0x22, 0x8d, 0x12, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, + 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x66, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1a, 0x6e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, + 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x69, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5f, 0x0a, 0x0c, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x75, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x69, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x7d, 0x2a, 0x5d, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x45, - 0x42, 0x4f, 0x4f, 0x4b, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x10, 0x0a, 0x0c, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x10, 0x02, - 0x42, 0xd2, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x19, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x16, 0x64, 0x61, 0x74, 0x61, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, + 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6d, 0x0a, 0x14, 0x69, 0x64, 0x6c, 0x65, + 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x6c, 0x65, + 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 0x0a, 0x65, 0x75, 0x63, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x45, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x09, 0x65, 0x75, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x12, 0x73, 0x68, + 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x42, 0x14, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, - 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x56, 0x6d, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, + 0x64, 0x65, 0x64, 0x56, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x60, 0x0a, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, + 0x50, 0x7a, 0x69, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, + 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, + 0x18, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x48, + 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x48, 0x45, + 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x22, 0x99, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x55, 0x4e, 0x54, + 0x49, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, + 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x45, 0x49, 0x4e, 0x47, + 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x10, 0x65, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x29, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x7d, + 0x2a, 0x5d, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x45, 0x42, + 0x4f, 0x4f, 0x4b, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x10, 0x02, 0x42, + 0xd2, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x42, 0x14, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1087,7 +1121,8 @@ var file_google_cloud_aiplatform_v1_notebook_runtime_proto_goTypes = []any{ (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp (*ShieldedVmConfig)(nil), // 13: google.cloud.aiplatform.v1.ShieldedVmConfig (*EncryptionSpec)(nil), // 14: google.cloud.aiplatform.v1.EncryptionSpec - (*NotebookRuntimeTemplateRef)(nil), // 15: google.cloud.aiplatform.v1.NotebookRuntimeTemplateRef + (*NotebookSoftwareConfig)(nil), // 15: google.cloud.aiplatform.v1.NotebookSoftwareConfig + (*NotebookRuntimeTemplateRef)(nil), // 16: google.cloud.aiplatform.v1.NotebookRuntimeTemplateRef } var file_google_cloud_aiplatform_v1_notebook_runtime_proto_depIdxs = []int32{ 7, // 0: google.cloud.aiplatform.v1.NotebookRuntimeTemplate.machine_spec:type_name -> google.cloud.aiplatform.v1.MachineSpec @@ -1101,26 +1136,28 @@ var file_google_cloud_aiplatform_v1_notebook_runtime_proto_depIdxs = []int32{ 0, // 8: google.cloud.aiplatform.v1.NotebookRuntimeTemplate.notebook_runtime_type:type_name -> google.cloud.aiplatform.v1.NotebookRuntimeType 13, // 9: google.cloud.aiplatform.v1.NotebookRuntimeTemplate.shielded_vm_config:type_name -> google.cloud.aiplatform.v1.ShieldedVmConfig 14, // 10: google.cloud.aiplatform.v1.NotebookRuntimeTemplate.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec - 15, // 11: google.cloud.aiplatform.v1.NotebookRuntime.notebook_runtime_template_ref:type_name -> google.cloud.aiplatform.v1.NotebookRuntimeTemplateRef - 12, // 12: google.cloud.aiplatform.v1.NotebookRuntime.create_time:type_name -> google.protobuf.Timestamp - 12, // 13: google.cloud.aiplatform.v1.NotebookRuntime.update_time:type_name -> google.protobuf.Timestamp - 1, // 14: google.cloud.aiplatform.v1.NotebookRuntime.health_state:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.HealthState - 2, // 15: google.cloud.aiplatform.v1.NotebookRuntime.runtime_state:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.RuntimeState - 6, // 16: google.cloud.aiplatform.v1.NotebookRuntime.labels:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.LabelsEntry - 12, // 17: google.cloud.aiplatform.v1.NotebookRuntime.expiration_time:type_name -> google.protobuf.Timestamp - 0, // 18: google.cloud.aiplatform.v1.NotebookRuntime.notebook_runtime_type:type_name -> google.cloud.aiplatform.v1.NotebookRuntimeType - 7, // 19: google.cloud.aiplatform.v1.NotebookRuntime.machine_spec:type_name -> google.cloud.aiplatform.v1.MachineSpec - 8, // 20: google.cloud.aiplatform.v1.NotebookRuntime.data_persistent_disk_spec:type_name -> google.cloud.aiplatform.v1.PersistentDiskSpec - 9, // 21: google.cloud.aiplatform.v1.NotebookRuntime.network_spec:type_name -> google.cloud.aiplatform.v1.NetworkSpec - 10, // 22: google.cloud.aiplatform.v1.NotebookRuntime.idle_shutdown_config:type_name -> google.cloud.aiplatform.v1.NotebookIdleShutdownConfig - 11, // 23: google.cloud.aiplatform.v1.NotebookRuntime.euc_config:type_name -> google.cloud.aiplatform.v1.NotebookEucConfig - 13, // 24: google.cloud.aiplatform.v1.NotebookRuntime.shielded_vm_config:type_name -> google.cloud.aiplatform.v1.ShieldedVmConfig - 14, // 25: google.cloud.aiplatform.v1.NotebookRuntime.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 15, // 11: google.cloud.aiplatform.v1.NotebookRuntimeTemplate.software_config:type_name -> google.cloud.aiplatform.v1.NotebookSoftwareConfig + 16, // 12: google.cloud.aiplatform.v1.NotebookRuntime.notebook_runtime_template_ref:type_name -> google.cloud.aiplatform.v1.NotebookRuntimeTemplateRef + 12, // 13: google.cloud.aiplatform.v1.NotebookRuntime.create_time:type_name -> google.protobuf.Timestamp + 12, // 14: google.cloud.aiplatform.v1.NotebookRuntime.update_time:type_name -> google.protobuf.Timestamp + 1, // 15: google.cloud.aiplatform.v1.NotebookRuntime.health_state:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.HealthState + 2, // 16: google.cloud.aiplatform.v1.NotebookRuntime.runtime_state:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.RuntimeState + 6, // 17: google.cloud.aiplatform.v1.NotebookRuntime.labels:type_name -> google.cloud.aiplatform.v1.NotebookRuntime.LabelsEntry + 12, // 18: google.cloud.aiplatform.v1.NotebookRuntime.expiration_time:type_name -> google.protobuf.Timestamp + 0, // 19: google.cloud.aiplatform.v1.NotebookRuntime.notebook_runtime_type:type_name -> google.cloud.aiplatform.v1.NotebookRuntimeType + 7, // 20: google.cloud.aiplatform.v1.NotebookRuntime.machine_spec:type_name -> google.cloud.aiplatform.v1.MachineSpec + 8, // 21: google.cloud.aiplatform.v1.NotebookRuntime.data_persistent_disk_spec:type_name -> google.cloud.aiplatform.v1.PersistentDiskSpec + 9, // 22: google.cloud.aiplatform.v1.NotebookRuntime.network_spec:type_name -> google.cloud.aiplatform.v1.NetworkSpec + 10, // 23: google.cloud.aiplatform.v1.NotebookRuntime.idle_shutdown_config:type_name -> google.cloud.aiplatform.v1.NotebookIdleShutdownConfig + 11, // 24: google.cloud.aiplatform.v1.NotebookRuntime.euc_config:type_name -> google.cloud.aiplatform.v1.NotebookEucConfig + 13, // 25: google.cloud.aiplatform.v1.NotebookRuntime.shielded_vm_config:type_name -> google.cloud.aiplatform.v1.ShieldedVmConfig + 15, // 26: google.cloud.aiplatform.v1.NotebookRuntime.software_config:type_name -> google.cloud.aiplatform.v1.NotebookSoftwareConfig + 14, // 27: google.cloud.aiplatform.v1.NotebookRuntime.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_notebook_runtime_proto_init() } @@ -1134,6 +1171,7 @@ func file_google_cloud_aiplatform_v1_notebook_runtime_proto_init() { file_google_cloud_aiplatform_v1_notebook_euc_config_proto_init() file_google_cloud_aiplatform_v1_notebook_idle_shutdown_config_proto_init() file_google_cloud_aiplatform_v1_notebook_runtime_template_ref_proto_init() + file_google_cloud_aiplatform_v1_notebook_software_config_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/aiplatform/apiv1/aiplatformpb/notebook_service.pb.go b/aiplatform/apiv1/aiplatformpb/notebook_service.pb.go index bd3b8319994a..db5f729b7916 100755 --- a/aiplatform/apiv1/aiplatformpb/notebook_service.pb.go +++ b/aiplatform/apiv1/aiplatformpb/notebook_service.pb.go @@ -286,6 +286,8 @@ type ListNotebookRuntimeTemplatesRequest struct { // - A key including a space must be quoted. `labels."a key"`. // - `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: // [USER_DEFINED, ONE_CLICK]. + // - `machineType` supports = and !=. + // - `acceleratorType` supports = and !=. // // Some examples: // @@ -293,6 +295,8 @@ type ListNotebookRuntimeTemplatesRequest struct { // - `displayName="myDisplayName"` // - `labels.myKey="myValue"` // - `notebookRuntimeType=USER_DEFINED` + // - `machineType=e2-standard-4` + // - `acceleratorType=NVIDIA_TESLA_T4` Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` // Optional. The standard list page size. PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` @@ -782,6 +786,8 @@ type ListNotebookRuntimesRequest struct { // UI_RESOURCE_STATE_CREATION_FAILED]. // - `notebookRuntimeType` supports = and !=. notebookRuntimeType enum: // [USER_DEFINED, ONE_CLICK]. + // - `machineType` supports = and !=. + // - `acceleratorType` supports = and !=. // // Some examples: // @@ -793,6 +799,8 @@ type ListNotebookRuntimesRequest struct { // - `runtimeUser="test@google.com"` // - `uiState=UI_RESOURCE_STATE_BEING_DELETED` // - `notebookRuntimeType=USER_DEFINED` + // - `machineType=e2-standard-4` + // - `acceleratorType=NVIDIA_TESLA_T4` Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` // Optional. The standard list page size. PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` diff --git a/aiplatform/apiv1/aiplatformpb/notebook_software_config.pb.go b/aiplatform/apiv1/aiplatformpb/notebook_software_config.pb.go new file mode 100755 index 000000000000..2a56d9e5cabf --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/notebook_software_config.pb.go @@ -0,0 +1,346 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.3 +// source: google/cloud/aiplatform/v1/notebook_software_config.proto + +package aiplatformpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Represents a notebook runtime post startup script behavior. +type PostStartupScriptConfig_PostStartupScriptBehavior int32 + +const ( + // Unspecified post startup script behavior. + PostStartupScriptConfig_POST_STARTUP_SCRIPT_BEHAVIOR_UNSPECIFIED PostStartupScriptConfig_PostStartupScriptBehavior = 0 + // Run post startup script after runtime is started. + PostStartupScriptConfig_RUN_ONCE PostStartupScriptConfig_PostStartupScriptBehavior = 1 + // Run post startup script after runtime is stopped. + PostStartupScriptConfig_RUN_EVERY_START PostStartupScriptConfig_PostStartupScriptBehavior = 2 + // Download and run post startup script every time runtime is started. + PostStartupScriptConfig_DOWNLOAD_AND_RUN_EVERY_START PostStartupScriptConfig_PostStartupScriptBehavior = 3 +) + +// Enum value maps for PostStartupScriptConfig_PostStartupScriptBehavior. +var ( + PostStartupScriptConfig_PostStartupScriptBehavior_name = map[int32]string{ + 0: "POST_STARTUP_SCRIPT_BEHAVIOR_UNSPECIFIED", + 1: "RUN_ONCE", + 2: "RUN_EVERY_START", + 3: "DOWNLOAD_AND_RUN_EVERY_START", + } + PostStartupScriptConfig_PostStartupScriptBehavior_value = map[string]int32{ + "POST_STARTUP_SCRIPT_BEHAVIOR_UNSPECIFIED": 0, + "RUN_ONCE": 1, + "RUN_EVERY_START": 2, + "DOWNLOAD_AND_RUN_EVERY_START": 3, + } +) + +func (x PostStartupScriptConfig_PostStartupScriptBehavior) Enum() *PostStartupScriptConfig_PostStartupScriptBehavior { + p := new(PostStartupScriptConfig_PostStartupScriptBehavior) + *p = x + return p +} + +func (x PostStartupScriptConfig_PostStartupScriptBehavior) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PostStartupScriptConfig_PostStartupScriptBehavior) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1_notebook_software_config_proto_enumTypes[0].Descriptor() +} + +func (PostStartupScriptConfig_PostStartupScriptBehavior) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1_notebook_software_config_proto_enumTypes[0] +} + +func (x PostStartupScriptConfig_PostStartupScriptBehavior) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PostStartupScriptConfig_PostStartupScriptBehavior.Descriptor instead. +func (PostStartupScriptConfig_PostStartupScriptBehavior) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescGZIP(), []int{0, 0} +} + +// Post startup script config. +type PostStartupScriptConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Post startup script to run after runtime is started. + PostStartupScript string `protobuf:"bytes,1,opt,name=post_startup_script,json=postStartupScript,proto3" json:"post_startup_script,omitempty"` + // Optional. Post startup script url to download. Example: + // https://bucket/script.sh + PostStartupScriptUrl string `protobuf:"bytes,2,opt,name=post_startup_script_url,json=postStartupScriptUrl,proto3" json:"post_startup_script_url,omitempty"` + // Optional. Post startup script behavior that defines download and execution + // behavior. + PostStartupScriptBehavior PostStartupScriptConfig_PostStartupScriptBehavior `protobuf:"varint,3,opt,name=post_startup_script_behavior,json=postStartupScriptBehavior,proto3,enum=google.cloud.aiplatform.v1.PostStartupScriptConfig_PostStartupScriptBehavior" json:"post_startup_script_behavior,omitempty"` +} + +func (x *PostStartupScriptConfig) Reset() { + *x = PostStartupScriptConfig{} + mi := &file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PostStartupScriptConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStartupScriptConfig) ProtoMessage() {} + +func (x *PostStartupScriptConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStartupScriptConfig.ProtoReflect.Descriptor instead. +func (*PostStartupScriptConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescGZIP(), []int{0} +} + +func (x *PostStartupScriptConfig) GetPostStartupScript() string { + if x != nil { + return x.PostStartupScript + } + return "" +} + +func (x *PostStartupScriptConfig) GetPostStartupScriptUrl() string { + if x != nil { + return x.PostStartupScriptUrl + } + return "" +} + +func (x *PostStartupScriptConfig) GetPostStartupScriptBehavior() PostStartupScriptConfig_PostStartupScriptBehavior { + if x != nil { + return x.PostStartupScriptBehavior + } + return PostStartupScriptConfig_POST_STARTUP_SCRIPT_BEHAVIOR_UNSPECIFIED +} + +// Notebook Software Config. +type NotebookSoftwareConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Environment variables to be passed to the container. + // Maximum limit is 100. + Env []*EnvVar `protobuf:"bytes,1,rep,name=env,proto3" json:"env,omitempty"` + // Optional. Post startup script config. + PostStartupScriptConfig *PostStartupScriptConfig `protobuf:"bytes,2,opt,name=post_startup_script_config,json=postStartupScriptConfig,proto3" json:"post_startup_script_config,omitempty"` +} + +func (x *NotebookSoftwareConfig) Reset() { + *x = NotebookSoftwareConfig{} + mi := &file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NotebookSoftwareConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotebookSoftwareConfig) ProtoMessage() {} + +func (x *NotebookSoftwareConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotebookSoftwareConfig.ProtoReflect.Descriptor instead. +func (*NotebookSoftwareConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescGZIP(), []int{1} +} + +func (x *NotebookSoftwareConfig) GetEnv() []*EnvVar { + if x != nil { + return x.Env + } + return nil +} + +func (x *NotebookSoftwareConfig) GetPostStartupScriptConfig() *PostStartupScriptConfig { + if x != nil { + return x.PostStartupScriptConfig + } + return nil +} + +var File_google_cloud_aiplatform_v1_notebook_software_config_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xb1, 0x03, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, + 0x0a, 0x13, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x12, 0x3a, 0x0a, 0x17, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x70, 0x6f, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x93, 0x01, 0x0a, 0x1c, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, + 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x70, 0x6f, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x55, 0x50, 0x5f, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, + 0x49, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x55, 0x4e, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x52, 0x55, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x53, + 0x54, 0x41, 0x52, 0x54, 0x10, 0x03, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x39, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, + 0x61, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x75, 0x0a, 0x1a, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x70, 0x6f, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0xd9, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x1b, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescData = file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_notebook_software_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_aiplatform_v1_notebook_software_config_proto_goTypes = []any{ + (PostStartupScriptConfig_PostStartupScriptBehavior)(0), // 0: google.cloud.aiplatform.v1.PostStartupScriptConfig.PostStartupScriptBehavior + (*PostStartupScriptConfig)(nil), // 1: google.cloud.aiplatform.v1.PostStartupScriptConfig + (*NotebookSoftwareConfig)(nil), // 2: google.cloud.aiplatform.v1.NotebookSoftwareConfig + (*EnvVar)(nil), // 3: google.cloud.aiplatform.v1.EnvVar +} +var file_google_cloud_aiplatform_v1_notebook_software_config_proto_depIdxs = []int32{ + 0, // 0: google.cloud.aiplatform.v1.PostStartupScriptConfig.post_startup_script_behavior:type_name -> google.cloud.aiplatform.v1.PostStartupScriptConfig.PostStartupScriptBehavior + 3, // 1: google.cloud.aiplatform.v1.NotebookSoftwareConfig.env:type_name -> google.cloud.aiplatform.v1.EnvVar + 1, // 2: google.cloud.aiplatform.v1.NotebookSoftwareConfig.post_startup_script_config:type_name -> google.cloud.aiplatform.v1.PostStartupScriptConfig + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_notebook_software_config_proto_init() } +func file_google_cloud_aiplatform_v1_notebook_software_config_proto_init() { + if File_google_cloud_aiplatform_v1_notebook_software_config_proto != nil { + return + } + file_google_cloud_aiplatform_v1_env_var_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_aiplatform_v1_notebook_software_config_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_notebook_software_config_proto_depIdxs, + EnumInfos: file_google_cloud_aiplatform_v1_notebook_software_config_proto_enumTypes, + MessageInfos: file_google_cloud_aiplatform_v1_notebook_software_config_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_notebook_software_config_proto = out.File + file_google_cloud_aiplatform_v1_notebook_software_config_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_notebook_software_config_proto_goTypes = nil + file_google_cloud_aiplatform_v1_notebook_software_config_proto_depIdxs = nil +} diff --git a/aiplatform/apiv1beta1/aiplatformpb/evaluation_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/evaluation_service.pb.go index 53bc8e987743..a9196687a9a7 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/evaluation_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/evaluation_service.pb.go @@ -25,6 +25,7 @@ import ( reflect "reflect" sync "sync" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -97,6 +98,91 @@ func (PairwiseChoice) EnumDescriptor() ([]byte, []int) { return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{0} } +// The aggregation metrics supported by EvaluationService.EvaluateDataset. +type Metric_AggregationMetric int32 + +const ( + // Unspecified aggregation metric. + Metric_AGGREGATION_METRIC_UNSPECIFIED Metric_AggregationMetric = 0 + // Average aggregation metric. + Metric_AVERAGE Metric_AggregationMetric = 1 + // Mode aggregation metric. + Metric_MODE Metric_AggregationMetric = 2 + // Standard deviation aggregation metric. + Metric_STANDARD_DEVIATION Metric_AggregationMetric = 3 + // Variance aggregation metric. + Metric_VARIANCE Metric_AggregationMetric = 4 + // Minimum aggregation metric. + Metric_MINIMUM Metric_AggregationMetric = 5 + // Maximum aggregation metric. + Metric_MAXIMUM Metric_AggregationMetric = 6 + // Median aggregation metric. + Metric_MEDIAN Metric_AggregationMetric = 7 + // 90th percentile aggregation metric. + Metric_PERCENTILE_P90 Metric_AggregationMetric = 8 + // 95th percentile aggregation metric. + Metric_PERCENTILE_P95 Metric_AggregationMetric = 9 + // 99th percentile aggregation metric. + Metric_PERCENTILE_P99 Metric_AggregationMetric = 10 +) + +// Enum value maps for Metric_AggregationMetric. +var ( + Metric_AggregationMetric_name = map[int32]string{ + 0: "AGGREGATION_METRIC_UNSPECIFIED", + 1: "AVERAGE", + 2: "MODE", + 3: "STANDARD_DEVIATION", + 4: "VARIANCE", + 5: "MINIMUM", + 6: "MAXIMUM", + 7: "MEDIAN", + 8: "PERCENTILE_P90", + 9: "PERCENTILE_P95", + 10: "PERCENTILE_P99", + } + Metric_AggregationMetric_value = map[string]int32{ + "AGGREGATION_METRIC_UNSPECIFIED": 0, + "AVERAGE": 1, + "MODE": 2, + "STANDARD_DEVIATION": 3, + "VARIANCE": 4, + "MINIMUM": 5, + "MAXIMUM": 6, + "MEDIAN": 7, + "PERCENTILE_P90": 8, + "PERCENTILE_P95": 9, + "PERCENTILE_P99": 10, + } +) + +func (x Metric_AggregationMetric) Enum() *Metric_AggregationMetric { + p := new(Metric_AggregationMetric) + *p = x + return p +} + +func (x Metric_AggregationMetric) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Metric_AggregationMetric) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[1].Descriptor() +} + +func (Metric_AggregationMetric) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[1] +} + +func (x Metric_AggregationMetric) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Metric_AggregationMetric.Descriptor instead. +func (Metric_AggregationMetric) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{5, 0} +} + // Comet version options. type CometSpec_CometVersion int32 @@ -131,11 +217,11 @@ func (x CometSpec_CometVersion) String() string { } func (CometSpec_CometVersion) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[1].Descriptor() + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[2].Descriptor() } func (CometSpec_CometVersion) Type() protoreflect.EnumType { - return &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[1] + return &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[2] } func (x CometSpec_CometVersion) Number() protoreflect.EnumNumber { @@ -144,7 +230,7 @@ func (x CometSpec_CometVersion) Number() protoreflect.EnumNumber { // Deprecated: Use CometSpec_CometVersion.Descriptor instead. func (CometSpec_CometVersion) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{103, 0} + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{110, 0} } // MetricX Version options. @@ -189,11 +275,11 @@ func (x MetricxSpec_MetricxVersion) String() string { } func (MetricxSpec_MetricxVersion) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[2].Descriptor() + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[3].Descriptor() } func (MetricxSpec_MetricxVersion) Type() protoreflect.EnumType { - return &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[2] + return &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes[3] } func (x MetricxSpec_MetricxVersion) Number() protoreflect.EnumNumber { @@ -202,52 +288,33 @@ func (x MetricxSpec_MetricxVersion) Number() protoreflect.EnumNumber { // Deprecated: Use MetricxSpec_MetricxVersion.Descriptor instead. func (MetricxSpec_MetricxVersion) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{107, 0} + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{114, 0} } -// The configs for autorater. This is applicable to both EvaluateInstances and -// EvaluateDataset. -type AutoraterConfig struct { +// Operation metadata for Dataset Evaluation. +type EvaluateDatasetOperationMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Number of samples for each instance in the dataset. - // If not specified, the default is 4. Minimum value is 1, maximum value - // is 32. - SamplingCount *int32 `protobuf:"varint,1,opt,name=sampling_count,json=samplingCount,proto3,oneof" json:"sampling_count,omitempty"` - // Optional. Whether to flip the candidate and baseline responses. - // This is only applicable to the pairwise metric. If enabled, also provide - // PairwiseMetricSpec.candidate_response_field_name and - // PairwiseMetricSpec.baseline_response_field_name. When rendering - // PairwiseMetricSpec.metric_prompt_template, the candidate and baseline - // fields will be flipped for half of the samples to reduce bias. - FlipEnabled *bool `protobuf:"varint,2,opt,name=flip_enabled,json=flipEnabled,proto3,oneof" json:"flip_enabled,omitempty"` - // Optional. The fully qualified name of the publisher model or tuned - // autorater endpoint to use. - // - // Publisher model format: - // `projects/{project}/locations/{location}/publishers/*/models/*` - // - // Tuned model endpoint format: - // `projects/{project}/locations/{location}/endpoints/{endpoint}` - AutoraterModel string `protobuf:"bytes,3,opt,name=autorater_model,json=autoraterModel,proto3" json:"autorater_model,omitempty"` + // Generic operation metadata. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` } -func (x *AutoraterConfig) Reset() { - *x = AutoraterConfig{} +func (x *EvaluateDatasetOperationMetadata) Reset() { + *x = EvaluateDatasetOperationMetadata{} mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *AutoraterConfig) String() string { +func (x *EvaluateDatasetOperationMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AutoraterConfig) ProtoMessage() {} +func (*EvaluateDatasetOperationMetadata) ProtoMessage() {} -func (x *AutoraterConfig) ProtoReflect() protoreflect.Message { +func (x *EvaluateDatasetOperationMetadata) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -259,96 +326,94 @@ func (x *AutoraterConfig) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AutoraterConfig.ProtoReflect.Descriptor instead. -func (*AutoraterConfig) Descriptor() ([]byte, []int) { +// Deprecated: Use EvaluateDatasetOperationMetadata.ProtoReflect.Descriptor instead. +func (*EvaluateDatasetOperationMetadata) Descriptor() ([]byte, []int) { return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{0} } -func (x *AutoraterConfig) GetSamplingCount() int32 { - if x != nil && x.SamplingCount != nil { - return *x.SamplingCount +func (x *EvaluateDatasetOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata } - return 0 + return nil } -func (x *AutoraterConfig) GetFlipEnabled() bool { - if x != nil && x.FlipEnabled != nil { - return *x.FlipEnabled +// Response in LRO for EvaluationService.EvaluateDataset. +type EvaluateDatasetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Output info for EvaluationService.EvaluateDataset. + OutputInfo *OutputInfo `protobuf:"bytes,3,opt,name=output_info,json=outputInfo,proto3" json:"output_info,omitempty"` +} + +func (x *EvaluateDatasetResponse) Reset() { + *x = EvaluateDatasetResponse{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EvaluateDatasetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvaluateDatasetResponse) ProtoMessage() {} + +func (x *EvaluateDatasetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *AutoraterConfig) GetAutoraterModel() string { +// Deprecated: Use EvaluateDatasetResponse.ProtoReflect.Descriptor instead. +func (*EvaluateDatasetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{1} +} + +func (x *EvaluateDatasetResponse) GetOutputInfo() *OutputInfo { if x != nil { - return x.AutoraterModel + return x.OutputInfo } - return "" + return nil } -// Request message for EvaluationService.EvaluateInstances. -type EvaluateInstancesRequest struct { +// Describes the info for output of EvaluationService.EvaluateDataset. +type OutputInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Instances and specs for evaluation + // The output location into which evaluation output is written. // - // Types that are assignable to MetricInputs: + // Types that are assignable to OutputLocation: // - // *EvaluateInstancesRequest_ExactMatchInput - // *EvaluateInstancesRequest_BleuInput - // *EvaluateInstancesRequest_RougeInput - // *EvaluateInstancesRequest_FluencyInput - // *EvaluateInstancesRequest_CoherenceInput - // *EvaluateInstancesRequest_SafetyInput - // *EvaluateInstancesRequest_GroundednessInput - // *EvaluateInstancesRequest_FulfillmentInput - // *EvaluateInstancesRequest_SummarizationQualityInput - // *EvaluateInstancesRequest_PairwiseSummarizationQualityInput - // *EvaluateInstancesRequest_SummarizationHelpfulnessInput - // *EvaluateInstancesRequest_SummarizationVerbosityInput - // *EvaluateInstancesRequest_QuestionAnsweringQualityInput - // *EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput - // *EvaluateInstancesRequest_QuestionAnsweringRelevanceInput - // *EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput - // *EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput - // *EvaluateInstancesRequest_PointwiseMetricInput - // *EvaluateInstancesRequest_PairwiseMetricInput - // *EvaluateInstancesRequest_ToolCallValidInput - // *EvaluateInstancesRequest_ToolNameMatchInput - // *EvaluateInstancesRequest_ToolParameterKeyMatchInput - // *EvaluateInstancesRequest_ToolParameterKvMatchInput - // *EvaluateInstancesRequest_CometInput - // *EvaluateInstancesRequest_MetricxInput - // *EvaluateInstancesRequest_TrajectoryExactMatchInput - // *EvaluateInstancesRequest_TrajectoryInOrderMatchInput - // *EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput - // *EvaluateInstancesRequest_TrajectoryPrecisionInput - // *EvaluateInstancesRequest_TrajectoryRecallInput - // *EvaluateInstancesRequest_TrajectorySingleToolUseInput - MetricInputs isEvaluateInstancesRequest_MetricInputs `protobuf_oneof:"metric_inputs"` - // Required. The resource name of the Location to evaluate the instances. - // Format: `projects/{project}/locations/{location}` - Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` - // Optional. Autorater config used for evaluation. - AutoraterConfig *AutoraterConfig `protobuf:"bytes,30,opt,name=autorater_config,json=autoraterConfig,proto3" json:"autorater_config,omitempty"` + // *OutputInfo_GcsOutputDirectory + OutputLocation isOutputInfo_OutputLocation `protobuf_oneof:"output_location"` } -func (x *EvaluateInstancesRequest) Reset() { - *x = EvaluateInstancesRequest{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[1] +func (x *OutputInfo) Reset() { + *x = OutputInfo{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EvaluateInstancesRequest) String() string { +func (x *OutputInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EvaluateInstancesRequest) ProtoMessage() {} +func (*OutputInfo) ProtoMessage() {} -func (x *EvaluateInstancesRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[1] +func (x *OutputInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -359,552 +424,556 @@ func (x *EvaluateInstancesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EvaluateInstancesRequest.ProtoReflect.Descriptor instead. -func (*EvaluateInstancesRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{1} +// Deprecated: Use OutputInfo.ProtoReflect.Descriptor instead. +func (*OutputInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{2} } -func (m *EvaluateInstancesRequest) GetMetricInputs() isEvaluateInstancesRequest_MetricInputs { +func (m *OutputInfo) GetOutputLocation() isOutputInfo_OutputLocation { if m != nil { - return m.MetricInputs + return m.OutputLocation } return nil } -func (x *EvaluateInstancesRequest) GetExactMatchInput() *ExactMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ExactMatchInput); ok { - return x.ExactMatchInput +func (x *OutputInfo) GetGcsOutputDirectory() string { + if x, ok := x.GetOutputLocation().(*OutputInfo_GcsOutputDirectory); ok { + return x.GcsOutputDirectory } - return nil + return "" } -func (x *EvaluateInstancesRequest) GetBleuInput() *BleuInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_BleuInput); ok { - return x.BleuInput - } - return nil +type isOutputInfo_OutputLocation interface { + isOutputInfo_OutputLocation() } -func (x *EvaluateInstancesRequest) GetRougeInput() *RougeInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_RougeInput); ok { - return x.RougeInput - } - return nil +type OutputInfo_GcsOutputDirectory struct { + // Output only. The full path of the Cloud Storage directory created, into + // which the evaluation results and aggregation results are written. + GcsOutputDirectory string `protobuf:"bytes,1,opt,name=gcs_output_directory,json=gcsOutputDirectory,proto3,oneof"` } -func (x *EvaluateInstancesRequest) GetFluencyInput() *FluencyInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_FluencyInput); ok { - return x.FluencyInput - } - return nil -} +func (*OutputInfo_GcsOutputDirectory) isOutputInfo_OutputLocation() {} -func (x *EvaluateInstancesRequest) GetCoherenceInput() *CoherenceInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_CoherenceInput); ok { - return x.CoherenceInput - } - return nil -} +// Request message for EvaluationService.EvaluateDataset. +type EvaluateDatasetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *EvaluateInstancesRequest) GetSafetyInput() *SafetyInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SafetyInput); ok { - return x.SafetyInput - } - return nil + // Required. The resource name of the Location to evaluate the dataset. + // Format: `projects/{project}/locations/{location}` + Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` + // Required. The dataset used for evaluation. + Dataset *EvaluationDataset `protobuf:"bytes,2,opt,name=dataset,proto3" json:"dataset,omitempty"` + // Required. The metrics used for evaluation. + Metrics []*Metric `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"` + // Required. Config for evaluation output. + OutputConfig *OutputConfig `protobuf:"bytes,4,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` + // Optional. Autorater config used for evaluation. + AutoraterConfig *AutoraterConfig `protobuf:"bytes,5,opt,name=autorater_config,json=autoraterConfig,proto3" json:"autorater_config,omitempty"` } -func (x *EvaluateInstancesRequest) GetGroundednessInput() *GroundednessInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_GroundednessInput); ok { - return x.GroundednessInput - } - return nil +func (x *EvaluateDatasetRequest) Reset() { + *x = EvaluateDatasetRequest{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *EvaluateInstancesRequest) GetFulfillmentInput() *FulfillmentInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_FulfillmentInput); ok { - return x.FulfillmentInput - } - return nil +func (x *EvaluateDatasetRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *EvaluateInstancesRequest) GetSummarizationQualityInput() *SummarizationQualityInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationQualityInput); ok { - return x.SummarizationQualityInput +func (*EvaluateDatasetRequest) ProtoMessage() {} + +func (x *EvaluateDatasetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *EvaluateInstancesRequest) GetPairwiseSummarizationQualityInput() *PairwiseSummarizationQualityInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseSummarizationQualityInput); ok { - return x.PairwiseSummarizationQualityInput - } - return nil +// Deprecated: Use EvaluateDatasetRequest.ProtoReflect.Descriptor instead. +func (*EvaluateDatasetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{3} } -func (x *EvaluateInstancesRequest) GetSummarizationHelpfulnessInput() *SummarizationHelpfulnessInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationHelpfulnessInput); ok { - return x.SummarizationHelpfulnessInput +func (x *EvaluateDatasetRequest) GetLocation() string { + if x != nil { + return x.Location } - return nil + return "" } -func (x *EvaluateInstancesRequest) GetSummarizationVerbosityInput() *SummarizationVerbosityInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationVerbosityInput); ok { - return x.SummarizationVerbosityInput +func (x *EvaluateDatasetRequest) GetDataset() *EvaluationDataset { + if x != nil { + return x.Dataset } return nil } -func (x *EvaluateInstancesRequest) GetQuestionAnsweringQualityInput() *QuestionAnsweringQualityInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringQualityInput); ok { - return x.QuestionAnsweringQualityInput +func (x *EvaluateDatasetRequest) GetMetrics() []*Metric { + if x != nil { + return x.Metrics } return nil } -func (x *EvaluateInstancesRequest) GetPairwiseQuestionAnsweringQualityInput() *PairwiseQuestionAnsweringQualityInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput); ok { - return x.PairwiseQuestionAnsweringQualityInput +func (x *EvaluateDatasetRequest) GetOutputConfig() *OutputConfig { + if x != nil { + return x.OutputConfig } return nil } -func (x *EvaluateInstancesRequest) GetQuestionAnsweringRelevanceInput() *QuestionAnsweringRelevanceInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringRelevanceInput); ok { - return x.QuestionAnsweringRelevanceInput +func (x *EvaluateDatasetRequest) GetAutoraterConfig() *AutoraterConfig { + if x != nil { + return x.AutoraterConfig } return nil } -func (x *EvaluateInstancesRequest) GetQuestionAnsweringHelpfulnessInput() *QuestionAnsweringHelpfulnessInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput); ok { - return x.QuestionAnsweringHelpfulnessInput - } - return nil +// Config for evaluation output. +type OutputConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The destination for evaluation output. + // + // Types that are assignable to Destination: + // + // *OutputConfig_GcsDestination + Destination isOutputConfig_Destination `protobuf_oneof:"destination"` } -func (x *EvaluateInstancesRequest) GetQuestionAnsweringCorrectnessInput() *QuestionAnsweringCorrectnessInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput); ok { - return x.QuestionAnsweringCorrectnessInput - } - return nil +func (x *OutputConfig) Reset() { + *x = OutputConfig{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *EvaluateInstancesRequest) GetPointwiseMetricInput() *PointwiseMetricInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PointwiseMetricInput); ok { - return x.PointwiseMetricInput - } - return nil +func (x *OutputConfig) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *EvaluateInstancesRequest) GetPairwiseMetricInput() *PairwiseMetricInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseMetricInput); ok { - return x.PairwiseMetricInput +func (*OutputConfig) ProtoMessage() {} + +func (x *OutputConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *EvaluateInstancesRequest) GetToolCallValidInput() *ToolCallValidInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolCallValidInput); ok { - return x.ToolCallValidInput - } - return nil +// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead. +func (*OutputConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{4} } -func (x *EvaluateInstancesRequest) GetToolNameMatchInput() *ToolNameMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolNameMatchInput); ok { - return x.ToolNameMatchInput +func (m *OutputConfig) GetDestination() isOutputConfig_Destination { + if m != nil { + return m.Destination } return nil } -func (x *EvaluateInstancesRequest) GetToolParameterKeyMatchInput() *ToolParameterKeyMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolParameterKeyMatchInput); ok { - return x.ToolParameterKeyMatchInput +func (x *OutputConfig) GetGcsDestination() *GcsDestination { + if x, ok := x.GetDestination().(*OutputConfig_GcsDestination); ok { + return x.GcsDestination } return nil } -func (x *EvaluateInstancesRequest) GetToolParameterKvMatchInput() *ToolParameterKVMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolParameterKvMatchInput); ok { - return x.ToolParameterKvMatchInput - } - return nil +type isOutputConfig_Destination interface { + isOutputConfig_Destination() } -func (x *EvaluateInstancesRequest) GetCometInput() *CometInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_CometInput); ok { - return x.CometInput - } - return nil +type OutputConfig_GcsDestination struct { + // Cloud storage destination for evaluation output. + GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` } -func (x *EvaluateInstancesRequest) GetMetricxInput() *MetricxInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_MetricxInput); ok { - return x.MetricxInput - } - return nil +func (*OutputConfig_GcsDestination) isOutputConfig_Destination() {} + +// The metric used for dataset level evaluation. +type Metric struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The metric spec used for evaluation. + // + // Types that are assignable to MetricSpec: + // + // *Metric_PointwiseMetricSpec + // *Metric_PairwiseMetricSpec + // *Metric_ExactMatchSpec + // *Metric_BleuSpec + // *Metric_RougeSpec + MetricSpec isMetric_MetricSpec `protobuf_oneof:"metric_spec"` + // Optional. The aggregation metrics to use. + AggregationMetrics []Metric_AggregationMetric `protobuf:"varint,1,rep,packed,name=aggregation_metrics,json=aggregationMetrics,proto3,enum=google.cloud.aiplatform.v1beta1.Metric_AggregationMetric" json:"aggregation_metrics,omitempty"` +} + +func (x *Metric) Reset() { + *x = Metric{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *EvaluateInstancesRequest) GetTrajectoryExactMatchInput() *TrajectoryExactMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryExactMatchInput); ok { - return x.TrajectoryExactMatchInput +func (x *Metric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metric) ProtoMessage() {} + +func (x *Metric) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *EvaluateInstancesRequest) GetTrajectoryInOrderMatchInput() *TrajectoryInOrderMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryInOrderMatchInput); ok { - return x.TrajectoryInOrderMatchInput +// Deprecated: Use Metric.ProtoReflect.Descriptor instead. +func (*Metric) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{5} +} + +func (m *Metric) GetMetricSpec() isMetric_MetricSpec { + if m != nil { + return m.MetricSpec } return nil } -func (x *EvaluateInstancesRequest) GetTrajectoryAnyOrderMatchInput() *TrajectoryAnyOrderMatchInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput); ok { - return x.TrajectoryAnyOrderMatchInput +func (x *Metric) GetPointwiseMetricSpec() *PointwiseMetricSpec { + if x, ok := x.GetMetricSpec().(*Metric_PointwiseMetricSpec); ok { + return x.PointwiseMetricSpec } return nil } -func (x *EvaluateInstancesRequest) GetTrajectoryPrecisionInput() *TrajectoryPrecisionInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryPrecisionInput); ok { - return x.TrajectoryPrecisionInput +func (x *Metric) GetPairwiseMetricSpec() *PairwiseMetricSpec { + if x, ok := x.GetMetricSpec().(*Metric_PairwiseMetricSpec); ok { + return x.PairwiseMetricSpec } return nil } -func (x *EvaluateInstancesRequest) GetTrajectoryRecallInput() *TrajectoryRecallInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryRecallInput); ok { - return x.TrajectoryRecallInput +func (x *Metric) GetExactMatchSpec() *ExactMatchSpec { + if x, ok := x.GetMetricSpec().(*Metric_ExactMatchSpec); ok { + return x.ExactMatchSpec } return nil } -func (x *EvaluateInstancesRequest) GetTrajectorySingleToolUseInput() *TrajectorySingleToolUseInput { - if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectorySingleToolUseInput); ok { - return x.TrajectorySingleToolUseInput +func (x *Metric) GetBleuSpec() *BleuSpec { + if x, ok := x.GetMetricSpec().(*Metric_BleuSpec); ok { + return x.BleuSpec } return nil } -func (x *EvaluateInstancesRequest) GetLocation() string { - if x != nil { - return x.Location +func (x *Metric) GetRougeSpec() *RougeSpec { + if x, ok := x.GetMetricSpec().(*Metric_RougeSpec); ok { + return x.RougeSpec } - return "" + return nil } -func (x *EvaluateInstancesRequest) GetAutoraterConfig() *AutoraterConfig { +func (x *Metric) GetAggregationMetrics() []Metric_AggregationMetric { if x != nil { - return x.AutoraterConfig + return x.AggregationMetrics } return nil } -type isEvaluateInstancesRequest_MetricInputs interface { - isEvaluateInstancesRequest_MetricInputs() -} - -type EvaluateInstancesRequest_ExactMatchInput struct { - // Auto metric instances. - // Instances and metric spec for exact match metric. - ExactMatchInput *ExactMatchInput `protobuf:"bytes,2,opt,name=exact_match_input,json=exactMatchInput,proto3,oneof"` -} - -type EvaluateInstancesRequest_BleuInput struct { - // Instances and metric spec for bleu metric. - BleuInput *BleuInput `protobuf:"bytes,3,opt,name=bleu_input,json=bleuInput,proto3,oneof"` +type isMetric_MetricSpec interface { + isMetric_MetricSpec() } -type EvaluateInstancesRequest_RougeInput struct { - // Instances and metric spec for rouge metric. - RougeInput *RougeInput `protobuf:"bytes,4,opt,name=rouge_input,json=rougeInput,proto3,oneof"` +type Metric_PointwiseMetricSpec struct { + // Spec for pointwise metric. + PointwiseMetricSpec *PointwiseMetricSpec `protobuf:"bytes,2,opt,name=pointwise_metric_spec,json=pointwiseMetricSpec,proto3,oneof"` } -type EvaluateInstancesRequest_FluencyInput struct { - // LLM-based metric instance. - // General text generation metrics, applicable to other categories. - // Input for fluency metric. - FluencyInput *FluencyInput `protobuf:"bytes,5,opt,name=fluency_input,json=fluencyInput,proto3,oneof"` +type Metric_PairwiseMetricSpec struct { + // Spec for pairwise metric. + PairwiseMetricSpec *PairwiseMetricSpec `protobuf:"bytes,3,opt,name=pairwise_metric_spec,json=pairwiseMetricSpec,proto3,oneof"` } -type EvaluateInstancesRequest_CoherenceInput struct { - // Input for coherence metric. - CoherenceInput *CoherenceInput `protobuf:"bytes,6,opt,name=coherence_input,json=coherenceInput,proto3,oneof"` +type Metric_ExactMatchSpec struct { + // Spec for exact match metric. + ExactMatchSpec *ExactMatchSpec `protobuf:"bytes,4,opt,name=exact_match_spec,json=exactMatchSpec,proto3,oneof"` } -type EvaluateInstancesRequest_SafetyInput struct { - // Input for safety metric. - SafetyInput *SafetyInput `protobuf:"bytes,8,opt,name=safety_input,json=safetyInput,proto3,oneof"` +type Metric_BleuSpec struct { + // Spec for bleu metric. + BleuSpec *BleuSpec `protobuf:"bytes,5,opt,name=bleu_spec,json=bleuSpec,proto3,oneof"` } -type EvaluateInstancesRequest_GroundednessInput struct { - // Input for groundedness metric. - GroundednessInput *GroundednessInput `protobuf:"bytes,9,opt,name=groundedness_input,json=groundednessInput,proto3,oneof"` +type Metric_RougeSpec struct { + // Spec for rouge metric. + RougeSpec *RougeSpec `protobuf:"bytes,6,opt,name=rouge_spec,json=rougeSpec,proto3,oneof"` } -type EvaluateInstancesRequest_FulfillmentInput struct { - // Input for fulfillment metric. - FulfillmentInput *FulfillmentInput `protobuf:"bytes,12,opt,name=fulfillment_input,json=fulfillmentInput,proto3,oneof"` -} +func (*Metric_PointwiseMetricSpec) isMetric_MetricSpec() {} -type EvaluateInstancesRequest_SummarizationQualityInput struct { - // Input for summarization quality metric. - SummarizationQualityInput *SummarizationQualityInput `protobuf:"bytes,7,opt,name=summarization_quality_input,json=summarizationQualityInput,proto3,oneof"` -} +func (*Metric_PairwiseMetricSpec) isMetric_MetricSpec() {} -type EvaluateInstancesRequest_PairwiseSummarizationQualityInput struct { - // Input for pairwise summarization quality metric. - PairwiseSummarizationQualityInput *PairwiseSummarizationQualityInput `protobuf:"bytes,23,opt,name=pairwise_summarization_quality_input,json=pairwiseSummarizationQualityInput,proto3,oneof"` -} +func (*Metric_ExactMatchSpec) isMetric_MetricSpec() {} -type EvaluateInstancesRequest_SummarizationHelpfulnessInput struct { - // Input for summarization helpfulness metric. - SummarizationHelpfulnessInput *SummarizationHelpfulnessInput `protobuf:"bytes,14,opt,name=summarization_helpfulness_input,json=summarizationHelpfulnessInput,proto3,oneof"` -} +func (*Metric_BleuSpec) isMetric_MetricSpec() {} -type EvaluateInstancesRequest_SummarizationVerbosityInput struct { - // Input for summarization verbosity metric. - SummarizationVerbosityInput *SummarizationVerbosityInput `protobuf:"bytes,15,opt,name=summarization_verbosity_input,json=summarizationVerbosityInput,proto3,oneof"` -} +func (*Metric_RougeSpec) isMetric_MetricSpec() {} -type EvaluateInstancesRequest_QuestionAnsweringQualityInput struct { - // Input for question answering quality metric. - QuestionAnsweringQualityInput *QuestionAnsweringQualityInput `protobuf:"bytes,10,opt,name=question_answering_quality_input,json=questionAnsweringQualityInput,proto3,oneof"` -} +// The dataset used for evaluation. +type EvaluationDataset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput struct { - // Input for pairwise question answering quality metric. - PairwiseQuestionAnsweringQualityInput *PairwiseQuestionAnsweringQualityInput `protobuf:"bytes,24,opt,name=pairwise_question_answering_quality_input,json=pairwiseQuestionAnsweringQualityInput,proto3,oneof"` + // The source of the dataset. + // + // Types that are assignable to Source: + // + // *EvaluationDataset_GcsSource + // *EvaluationDataset_BigquerySource + Source isEvaluationDataset_Source `protobuf_oneof:"source"` } -type EvaluateInstancesRequest_QuestionAnsweringRelevanceInput struct { - // Input for question answering relevance metric. - QuestionAnsweringRelevanceInput *QuestionAnsweringRelevanceInput `protobuf:"bytes,16,opt,name=question_answering_relevance_input,json=questionAnsweringRelevanceInput,proto3,oneof"` +func (x *EvaluationDataset) Reset() { + *x = EvaluationDataset{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -type EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput struct { - // Input for question answering helpfulness - // metric. - QuestionAnsweringHelpfulnessInput *QuestionAnsweringHelpfulnessInput `protobuf:"bytes,17,opt,name=question_answering_helpfulness_input,json=questionAnsweringHelpfulnessInput,proto3,oneof"` +func (x *EvaluationDataset) String() string { + return protoimpl.X.MessageStringOf(x) } -type EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput struct { - // Input for question answering correctness - // metric. - QuestionAnsweringCorrectnessInput *QuestionAnsweringCorrectnessInput `protobuf:"bytes,18,opt,name=question_answering_correctness_input,json=questionAnsweringCorrectnessInput,proto3,oneof"` -} +func (*EvaluationDataset) ProtoMessage() {} -type EvaluateInstancesRequest_PointwiseMetricInput struct { - // Input for pointwise metric. - PointwiseMetricInput *PointwiseMetricInput `protobuf:"bytes,28,opt,name=pointwise_metric_input,json=pointwiseMetricInput,proto3,oneof"` +func (x *EvaluationDataset) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type EvaluateInstancesRequest_PairwiseMetricInput struct { - // Input for pairwise metric. - PairwiseMetricInput *PairwiseMetricInput `protobuf:"bytes,29,opt,name=pairwise_metric_input,json=pairwiseMetricInput,proto3,oneof"` +// Deprecated: Use EvaluationDataset.ProtoReflect.Descriptor instead. +func (*EvaluationDataset) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{6} } -type EvaluateInstancesRequest_ToolCallValidInput struct { - // Tool call metric instances. - // Input for tool call valid metric. - ToolCallValidInput *ToolCallValidInput `protobuf:"bytes,19,opt,name=tool_call_valid_input,json=toolCallValidInput,proto3,oneof"` +func (m *EvaluationDataset) GetSource() isEvaluationDataset_Source { + if m != nil { + return m.Source + } + return nil } -type EvaluateInstancesRequest_ToolNameMatchInput struct { - // Input for tool name match metric. - ToolNameMatchInput *ToolNameMatchInput `protobuf:"bytes,20,opt,name=tool_name_match_input,json=toolNameMatchInput,proto3,oneof"` +func (x *EvaluationDataset) GetGcsSource() *GcsSource { + if x, ok := x.GetSource().(*EvaluationDataset_GcsSource); ok { + return x.GcsSource + } + return nil } -type EvaluateInstancesRequest_ToolParameterKeyMatchInput struct { - // Input for tool parameter key match metric. - ToolParameterKeyMatchInput *ToolParameterKeyMatchInput `protobuf:"bytes,21,opt,name=tool_parameter_key_match_input,json=toolParameterKeyMatchInput,proto3,oneof"` +func (x *EvaluationDataset) GetBigquerySource() *BigQuerySource { + if x, ok := x.GetSource().(*EvaluationDataset_BigquerySource); ok { + return x.BigquerySource + } + return nil } -type EvaluateInstancesRequest_ToolParameterKvMatchInput struct { - // Input for tool parameter key value match metric. - ToolParameterKvMatchInput *ToolParameterKVMatchInput `protobuf:"bytes,22,opt,name=tool_parameter_kv_match_input,json=toolParameterKvMatchInput,proto3,oneof"` +type isEvaluationDataset_Source interface { + isEvaluationDataset_Source() } -type EvaluateInstancesRequest_CometInput struct { - // Translation metrics. - // Input for Comet metric. - CometInput *CometInput `protobuf:"bytes,31,opt,name=comet_input,json=cometInput,proto3,oneof"` +type EvaluationDataset_GcsSource struct { + // Cloud storage source holds the dataset. + GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"` } -type EvaluateInstancesRequest_MetricxInput struct { - // Input for Metricx metric. - MetricxInput *MetricxInput `protobuf:"bytes,32,opt,name=metricx_input,json=metricxInput,proto3,oneof"` +type EvaluationDataset_BigquerySource struct { + // BigQuery source holds the dataset. + BigquerySource *BigQuerySource `protobuf:"bytes,2,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"` } -type EvaluateInstancesRequest_TrajectoryExactMatchInput struct { - // Input for trajectory exact match metric. - TrajectoryExactMatchInput *TrajectoryExactMatchInput `protobuf:"bytes,33,opt,name=trajectory_exact_match_input,json=trajectoryExactMatchInput,proto3,oneof"` -} +func (*EvaluationDataset_GcsSource) isEvaluationDataset_Source() {} -type EvaluateInstancesRequest_TrajectoryInOrderMatchInput struct { - // Input for trajectory in order match metric. - TrajectoryInOrderMatchInput *TrajectoryInOrderMatchInput `protobuf:"bytes,34,opt,name=trajectory_in_order_match_input,json=trajectoryInOrderMatchInput,proto3,oneof"` -} +func (*EvaluationDataset_BigquerySource) isEvaluationDataset_Source() {} -type EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput struct { - // Input for trajectory match any order metric. - TrajectoryAnyOrderMatchInput *TrajectoryAnyOrderMatchInput `protobuf:"bytes,35,opt,name=trajectory_any_order_match_input,json=trajectoryAnyOrderMatchInput,proto3,oneof"` -} +// The configs for autorater. This is applicable to both EvaluateInstances and +// EvaluateDataset. +type AutoraterConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type EvaluateInstancesRequest_TrajectoryPrecisionInput struct { - // Input for trajectory precision metric. - TrajectoryPrecisionInput *TrajectoryPrecisionInput `protobuf:"bytes,37,opt,name=trajectory_precision_input,json=trajectoryPrecisionInput,proto3,oneof"` -} - -type EvaluateInstancesRequest_TrajectoryRecallInput struct { - // Input for trajectory recall metric. - TrajectoryRecallInput *TrajectoryRecallInput `protobuf:"bytes,38,opt,name=trajectory_recall_input,json=trajectoryRecallInput,proto3,oneof"` -} - -type EvaluateInstancesRequest_TrajectorySingleToolUseInput struct { - // Input for trajectory single tool use metric. - TrajectorySingleToolUseInput *TrajectorySingleToolUseInput `protobuf:"bytes,39,opt,name=trajectory_single_tool_use_input,json=trajectorySingleToolUseInput,proto3,oneof"` -} - -func (*EvaluateInstancesRequest_ExactMatchInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_BleuInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_RougeInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_FluencyInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_CoherenceInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_SafetyInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_GroundednessInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_FulfillmentInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_SummarizationQualityInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_PairwiseSummarizationQualityInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_SummarizationHelpfulnessInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_SummarizationVerbosityInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_QuestionAnsweringQualityInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput) isEvaluateInstancesRequest_MetricInputs() { -} - -func (*EvaluateInstancesRequest_QuestionAnsweringRelevanceInput) isEvaluateInstancesRequest_MetricInputs() { + // Optional. Number of samples for each instance in the dataset. + // If not specified, the default is 4. Minimum value is 1, maximum value + // is 32. + SamplingCount *int32 `protobuf:"varint,1,opt,name=sampling_count,json=samplingCount,proto3,oneof" json:"sampling_count,omitempty"` + // Optional. Whether to flip the candidate and baseline responses. + // This is only applicable to the pairwise metric. If enabled, also provide + // PairwiseMetricSpec.candidate_response_field_name and + // PairwiseMetricSpec.baseline_response_field_name. When rendering + // PairwiseMetricSpec.metric_prompt_template, the candidate and baseline + // fields will be flipped for half of the samples to reduce bias. + FlipEnabled *bool `protobuf:"varint,2,opt,name=flip_enabled,json=flipEnabled,proto3,oneof" json:"flip_enabled,omitempty"` + // Optional. The fully qualified name of the publisher model or tuned + // autorater endpoint to use. + // + // Publisher model format: + // `projects/{project}/locations/{location}/publishers/*/models/*` + // + // Tuned model endpoint format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + AutoraterModel string `protobuf:"bytes,3,opt,name=autorater_model,json=autoraterModel,proto3" json:"autorater_model,omitempty"` } -func (*EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) Reset() { + *x = AutoraterConfig{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (*EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) String() string { + return protoimpl.X.MessageStringOf(x) } -func (*EvaluateInstancesRequest_PointwiseMetricInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_PairwiseMetricInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_ToolCallValidInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_ToolNameMatchInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_ToolParameterKeyMatchInput) isEvaluateInstancesRequest_MetricInputs() { -} +func (*AutoraterConfig) ProtoMessage() {} -func (*EvaluateInstancesRequest_ToolParameterKvMatchInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (*EvaluateInstancesRequest_CometInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_MetricxInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_TrajectoryExactMatchInput) isEvaluateInstancesRequest_MetricInputs() { +// Deprecated: Use AutoraterConfig.ProtoReflect.Descriptor instead. +func (*AutoraterConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{7} } -func (*EvaluateInstancesRequest_TrajectoryInOrderMatchInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) GetSamplingCount() int32 { + if x != nil && x.SamplingCount != nil { + return *x.SamplingCount + } + return 0 } -func (*EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) GetFlipEnabled() bool { + if x != nil && x.FlipEnabled != nil { + return *x.FlipEnabled + } + return false } -func (*EvaluateInstancesRequest_TrajectoryPrecisionInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_TrajectoryRecallInput) isEvaluateInstancesRequest_MetricInputs() {} - -func (*EvaluateInstancesRequest_TrajectorySingleToolUseInput) isEvaluateInstancesRequest_MetricInputs() { +func (x *AutoraterConfig) GetAutoraterModel() string { + if x != nil { + return x.AutoraterModel + } + return "" } -// Response message for EvaluationService.EvaluateInstances. -type EvaluateInstancesResponse struct { +// Request message for EvaluationService.EvaluateInstances. +type EvaluateInstancesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Evaluation results will be served in the same order as presented in - // EvaluationRequest.instances. + // Instances and specs for evaluation // - // Types that are assignable to EvaluationResults: + // Types that are assignable to MetricInputs: // - // *EvaluateInstancesResponse_ExactMatchResults - // *EvaluateInstancesResponse_BleuResults - // *EvaluateInstancesResponse_RougeResults - // *EvaluateInstancesResponse_FluencyResult - // *EvaluateInstancesResponse_CoherenceResult - // *EvaluateInstancesResponse_SafetyResult - // *EvaluateInstancesResponse_GroundednessResult - // *EvaluateInstancesResponse_FulfillmentResult - // *EvaluateInstancesResponse_SummarizationQualityResult - // *EvaluateInstancesResponse_PairwiseSummarizationQualityResult - // *EvaluateInstancesResponse_SummarizationHelpfulnessResult - // *EvaluateInstancesResponse_SummarizationVerbosityResult - // *EvaluateInstancesResponse_QuestionAnsweringQualityResult - // *EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult - // *EvaluateInstancesResponse_QuestionAnsweringRelevanceResult - // *EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult - // *EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult - // *EvaluateInstancesResponse_PointwiseMetricResult - // *EvaluateInstancesResponse_PairwiseMetricResult - // *EvaluateInstancesResponse_ToolCallValidResults - // *EvaluateInstancesResponse_ToolNameMatchResults - // *EvaluateInstancesResponse_ToolParameterKeyMatchResults - // *EvaluateInstancesResponse_ToolParameterKvMatchResults - // *EvaluateInstancesResponse_CometResult - // *EvaluateInstancesResponse_MetricxResult - // *EvaluateInstancesResponse_TrajectoryExactMatchResults - // *EvaluateInstancesResponse_TrajectoryInOrderMatchResults - // *EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults - // *EvaluateInstancesResponse_TrajectoryPrecisionResults - // *EvaluateInstancesResponse_TrajectoryRecallResults - // *EvaluateInstancesResponse_TrajectorySingleToolUseResults - EvaluationResults isEvaluateInstancesResponse_EvaluationResults `protobuf_oneof:"evaluation_results"` + // *EvaluateInstancesRequest_ExactMatchInput + // *EvaluateInstancesRequest_BleuInput + // *EvaluateInstancesRequest_RougeInput + // *EvaluateInstancesRequest_FluencyInput + // *EvaluateInstancesRequest_CoherenceInput + // *EvaluateInstancesRequest_SafetyInput + // *EvaluateInstancesRequest_GroundednessInput + // *EvaluateInstancesRequest_FulfillmentInput + // *EvaluateInstancesRequest_SummarizationQualityInput + // *EvaluateInstancesRequest_PairwiseSummarizationQualityInput + // *EvaluateInstancesRequest_SummarizationHelpfulnessInput + // *EvaluateInstancesRequest_SummarizationVerbosityInput + // *EvaluateInstancesRequest_QuestionAnsweringQualityInput + // *EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput + // *EvaluateInstancesRequest_QuestionAnsweringRelevanceInput + // *EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput + // *EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput + // *EvaluateInstancesRequest_PointwiseMetricInput + // *EvaluateInstancesRequest_PairwiseMetricInput + // *EvaluateInstancesRequest_ToolCallValidInput + // *EvaluateInstancesRequest_ToolNameMatchInput + // *EvaluateInstancesRequest_ToolParameterKeyMatchInput + // *EvaluateInstancesRequest_ToolParameterKvMatchInput + // *EvaluateInstancesRequest_CometInput + // *EvaluateInstancesRequest_MetricxInput + // *EvaluateInstancesRequest_TrajectoryExactMatchInput + // *EvaluateInstancesRequest_TrajectoryInOrderMatchInput + // *EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput + // *EvaluateInstancesRequest_TrajectoryPrecisionInput + // *EvaluateInstancesRequest_TrajectoryRecallInput + // *EvaluateInstancesRequest_TrajectorySingleToolUseInput + MetricInputs isEvaluateInstancesRequest_MetricInputs `protobuf_oneof:"metric_inputs"` + // Required. The resource name of the Location to evaluate the instances. + // Format: `projects/{project}/locations/{location}` + Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` + // Optional. Autorater config used for evaluation. + AutoraterConfig *AutoraterConfig `protobuf:"bytes,30,opt,name=autorater_config,json=autoraterConfig,proto3" json:"autorater_config,omitempty"` } -func (x *EvaluateInstancesResponse) Reset() { - *x = EvaluateInstancesResponse{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2] +func (x *EvaluateInstancesRequest) Reset() { + *x = EvaluateInstancesRequest{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *EvaluateInstancesResponse) String() string { +func (x *EvaluateInstancesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EvaluateInstancesResponse) ProtoMessage() {} +func (*EvaluateInstancesRequest) ProtoMessage() {} -func (x *EvaluateInstancesResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2] +func (x *EvaluateInstancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -915,514 +984,552 @@ func (x *EvaluateInstancesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EvaluateInstancesResponse.ProtoReflect.Descriptor instead. -func (*EvaluateInstancesResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{2} +// Deprecated: Use EvaluateInstancesRequest.ProtoReflect.Descriptor instead. +func (*EvaluateInstancesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{8} } -func (m *EvaluateInstancesResponse) GetEvaluationResults() isEvaluateInstancesResponse_EvaluationResults { +func (m *EvaluateInstancesRequest) GetMetricInputs() isEvaluateInstancesRequest_MetricInputs { if m != nil { - return m.EvaluationResults + return m.MetricInputs } return nil } -func (x *EvaluateInstancesResponse) GetExactMatchResults() *ExactMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ExactMatchResults); ok { - return x.ExactMatchResults +func (x *EvaluateInstancesRequest) GetExactMatchInput() *ExactMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ExactMatchInput); ok { + return x.ExactMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetBleuResults() *BleuResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_BleuResults); ok { - return x.BleuResults +func (x *EvaluateInstancesRequest) GetBleuInput() *BleuInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_BleuInput); ok { + return x.BleuInput } return nil } -func (x *EvaluateInstancesResponse) GetRougeResults() *RougeResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_RougeResults); ok { - return x.RougeResults +func (x *EvaluateInstancesRequest) GetRougeInput() *RougeInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_RougeInput); ok { + return x.RougeInput } return nil } -func (x *EvaluateInstancesResponse) GetFluencyResult() *FluencyResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_FluencyResult); ok { - return x.FluencyResult +func (x *EvaluateInstancesRequest) GetFluencyInput() *FluencyInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_FluencyInput); ok { + return x.FluencyInput } return nil } -func (x *EvaluateInstancesResponse) GetCoherenceResult() *CoherenceResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_CoherenceResult); ok { - return x.CoherenceResult +func (x *EvaluateInstancesRequest) GetCoherenceInput() *CoherenceInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_CoherenceInput); ok { + return x.CoherenceInput } return nil } -func (x *EvaluateInstancesResponse) GetSafetyResult() *SafetyResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SafetyResult); ok { - return x.SafetyResult +func (x *EvaluateInstancesRequest) GetSafetyInput() *SafetyInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SafetyInput); ok { + return x.SafetyInput } return nil } -func (x *EvaluateInstancesResponse) GetGroundednessResult() *GroundednessResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_GroundednessResult); ok { - return x.GroundednessResult +func (x *EvaluateInstancesRequest) GetGroundednessInput() *GroundednessInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_GroundednessInput); ok { + return x.GroundednessInput } return nil } -func (x *EvaluateInstancesResponse) GetFulfillmentResult() *FulfillmentResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_FulfillmentResult); ok { - return x.FulfillmentResult +func (x *EvaluateInstancesRequest) GetFulfillmentInput() *FulfillmentInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_FulfillmentInput); ok { + return x.FulfillmentInput } return nil } -func (x *EvaluateInstancesResponse) GetSummarizationQualityResult() *SummarizationQualityResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationQualityResult); ok { - return x.SummarizationQualityResult +func (x *EvaluateInstancesRequest) GetSummarizationQualityInput() *SummarizationQualityInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationQualityInput); ok { + return x.SummarizationQualityInput } return nil } -func (x *EvaluateInstancesResponse) GetPairwiseSummarizationQualityResult() *PairwiseSummarizationQualityResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseSummarizationQualityResult); ok { - return x.PairwiseSummarizationQualityResult +func (x *EvaluateInstancesRequest) GetPairwiseSummarizationQualityInput() *PairwiseSummarizationQualityInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseSummarizationQualityInput); ok { + return x.PairwiseSummarizationQualityInput } return nil } -func (x *EvaluateInstancesResponse) GetSummarizationHelpfulnessResult() *SummarizationHelpfulnessResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationHelpfulnessResult); ok { - return x.SummarizationHelpfulnessResult +func (x *EvaluateInstancesRequest) GetSummarizationHelpfulnessInput() *SummarizationHelpfulnessInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationHelpfulnessInput); ok { + return x.SummarizationHelpfulnessInput } return nil } -func (x *EvaluateInstancesResponse) GetSummarizationVerbosityResult() *SummarizationVerbosityResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationVerbosityResult); ok { - return x.SummarizationVerbosityResult +func (x *EvaluateInstancesRequest) GetSummarizationVerbosityInput() *SummarizationVerbosityInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_SummarizationVerbosityInput); ok { + return x.SummarizationVerbosityInput } return nil } -func (x *EvaluateInstancesResponse) GetQuestionAnsweringQualityResult() *QuestionAnsweringQualityResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringQualityResult); ok { - return x.QuestionAnsweringQualityResult +func (x *EvaluateInstancesRequest) GetQuestionAnsweringQualityInput() *QuestionAnsweringQualityInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringQualityInput); ok { + return x.QuestionAnsweringQualityInput } return nil } -func (x *EvaluateInstancesResponse) GetPairwiseQuestionAnsweringQualityResult() *PairwiseQuestionAnsweringQualityResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult); ok { - return x.PairwiseQuestionAnsweringQualityResult +func (x *EvaluateInstancesRequest) GetPairwiseQuestionAnsweringQualityInput() *PairwiseQuestionAnsweringQualityInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput); ok { + return x.PairwiseQuestionAnsweringQualityInput } return nil } -func (x *EvaluateInstancesResponse) GetQuestionAnsweringRelevanceResult() *QuestionAnsweringRelevanceResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringRelevanceResult); ok { - return x.QuestionAnsweringRelevanceResult +func (x *EvaluateInstancesRequest) GetQuestionAnsweringRelevanceInput() *QuestionAnsweringRelevanceInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringRelevanceInput); ok { + return x.QuestionAnsweringRelevanceInput } return nil } -func (x *EvaluateInstancesResponse) GetQuestionAnsweringHelpfulnessResult() *QuestionAnsweringHelpfulnessResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult); ok { - return x.QuestionAnsweringHelpfulnessResult +func (x *EvaluateInstancesRequest) GetQuestionAnsweringHelpfulnessInput() *QuestionAnsweringHelpfulnessInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput); ok { + return x.QuestionAnsweringHelpfulnessInput } return nil } -func (x *EvaluateInstancesResponse) GetQuestionAnsweringCorrectnessResult() *QuestionAnsweringCorrectnessResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult); ok { - return x.QuestionAnsweringCorrectnessResult +func (x *EvaluateInstancesRequest) GetQuestionAnsweringCorrectnessInput() *QuestionAnsweringCorrectnessInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput); ok { + return x.QuestionAnsweringCorrectnessInput } return nil } -func (x *EvaluateInstancesResponse) GetPointwiseMetricResult() *PointwiseMetricResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PointwiseMetricResult); ok { - return x.PointwiseMetricResult +func (x *EvaluateInstancesRequest) GetPointwiseMetricInput() *PointwiseMetricInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PointwiseMetricInput); ok { + return x.PointwiseMetricInput } return nil } -func (x *EvaluateInstancesResponse) GetPairwiseMetricResult() *PairwiseMetricResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseMetricResult); ok { - return x.PairwiseMetricResult +func (x *EvaluateInstancesRequest) GetPairwiseMetricInput() *PairwiseMetricInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_PairwiseMetricInput); ok { + return x.PairwiseMetricInput } return nil } -func (x *EvaluateInstancesResponse) GetToolCallValidResults() *ToolCallValidResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolCallValidResults); ok { - return x.ToolCallValidResults +func (x *EvaluateInstancesRequest) GetToolCallValidInput() *ToolCallValidInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolCallValidInput); ok { + return x.ToolCallValidInput } return nil } -func (x *EvaluateInstancesResponse) GetToolNameMatchResults() *ToolNameMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolNameMatchResults); ok { - return x.ToolNameMatchResults +func (x *EvaluateInstancesRequest) GetToolNameMatchInput() *ToolNameMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolNameMatchInput); ok { + return x.ToolNameMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetToolParameterKeyMatchResults() *ToolParameterKeyMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolParameterKeyMatchResults); ok { - return x.ToolParameterKeyMatchResults +func (x *EvaluateInstancesRequest) GetToolParameterKeyMatchInput() *ToolParameterKeyMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolParameterKeyMatchInput); ok { + return x.ToolParameterKeyMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetToolParameterKvMatchResults() *ToolParameterKVMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolParameterKvMatchResults); ok { - return x.ToolParameterKvMatchResults +func (x *EvaluateInstancesRequest) GetToolParameterKvMatchInput() *ToolParameterKVMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_ToolParameterKvMatchInput); ok { + return x.ToolParameterKvMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetCometResult() *CometResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_CometResult); ok { - return x.CometResult +func (x *EvaluateInstancesRequest) GetCometInput() *CometInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_CometInput); ok { + return x.CometInput } return nil } -func (x *EvaluateInstancesResponse) GetMetricxResult() *MetricxResult { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_MetricxResult); ok { - return x.MetricxResult +func (x *EvaluateInstancesRequest) GetMetricxInput() *MetricxInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_MetricxInput); ok { + return x.MetricxInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectoryExactMatchResults() *TrajectoryExactMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryExactMatchResults); ok { - return x.TrajectoryExactMatchResults +func (x *EvaluateInstancesRequest) GetTrajectoryExactMatchInput() *TrajectoryExactMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryExactMatchInput); ok { + return x.TrajectoryExactMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectoryInOrderMatchResults() *TrajectoryInOrderMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryInOrderMatchResults); ok { - return x.TrajectoryInOrderMatchResults +func (x *EvaluateInstancesRequest) GetTrajectoryInOrderMatchInput() *TrajectoryInOrderMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryInOrderMatchInput); ok { + return x.TrajectoryInOrderMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectoryAnyOrderMatchResults() *TrajectoryAnyOrderMatchResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults); ok { - return x.TrajectoryAnyOrderMatchResults +func (x *EvaluateInstancesRequest) GetTrajectoryAnyOrderMatchInput() *TrajectoryAnyOrderMatchInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput); ok { + return x.TrajectoryAnyOrderMatchInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectoryPrecisionResults() *TrajectoryPrecisionResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryPrecisionResults); ok { - return x.TrajectoryPrecisionResults +func (x *EvaluateInstancesRequest) GetTrajectoryPrecisionInput() *TrajectoryPrecisionInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryPrecisionInput); ok { + return x.TrajectoryPrecisionInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectoryRecallResults() *TrajectoryRecallResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryRecallResults); ok { - return x.TrajectoryRecallResults +func (x *EvaluateInstancesRequest) GetTrajectoryRecallInput() *TrajectoryRecallInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectoryRecallInput); ok { + return x.TrajectoryRecallInput } return nil } -func (x *EvaluateInstancesResponse) GetTrajectorySingleToolUseResults() *TrajectorySingleToolUseResults { - if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectorySingleToolUseResults); ok { - return x.TrajectorySingleToolUseResults +func (x *EvaluateInstancesRequest) GetTrajectorySingleToolUseInput() *TrajectorySingleToolUseInput { + if x, ok := x.GetMetricInputs().(*EvaluateInstancesRequest_TrajectorySingleToolUseInput); ok { + return x.TrajectorySingleToolUseInput } return nil } -type isEvaluateInstancesResponse_EvaluationResults interface { - isEvaluateInstancesResponse_EvaluationResults() +func (x *EvaluateInstancesRequest) GetLocation() string { + if x != nil { + return x.Location + } + return "" } -type EvaluateInstancesResponse_ExactMatchResults struct { - // Auto metric evaluation results. - // Results for exact match metric. - ExactMatchResults *ExactMatchResults `protobuf:"bytes,1,opt,name=exact_match_results,json=exactMatchResults,proto3,oneof"` +func (x *EvaluateInstancesRequest) GetAutoraterConfig() *AutoraterConfig { + if x != nil { + return x.AutoraterConfig + } + return nil } -type EvaluateInstancesResponse_BleuResults struct { - // Results for bleu metric. - BleuResults *BleuResults `protobuf:"bytes,2,opt,name=bleu_results,json=bleuResults,proto3,oneof"` +type isEvaluateInstancesRequest_MetricInputs interface { + isEvaluateInstancesRequest_MetricInputs() } -type EvaluateInstancesResponse_RougeResults struct { - // Results for rouge metric. - RougeResults *RougeResults `protobuf:"bytes,3,opt,name=rouge_results,json=rougeResults,proto3,oneof"` +type EvaluateInstancesRequest_ExactMatchInput struct { + // Auto metric instances. + // Instances and metric spec for exact match metric. + ExactMatchInput *ExactMatchInput `protobuf:"bytes,2,opt,name=exact_match_input,json=exactMatchInput,proto3,oneof"` } -type EvaluateInstancesResponse_FluencyResult struct { - // LLM-based metric evaluation result. - // General text generation metrics, applicable to other categories. - // Result for fluency metric. - FluencyResult *FluencyResult `protobuf:"bytes,4,opt,name=fluency_result,json=fluencyResult,proto3,oneof"` +type EvaluateInstancesRequest_BleuInput struct { + // Instances and metric spec for bleu metric. + BleuInput *BleuInput `protobuf:"bytes,3,opt,name=bleu_input,json=bleuInput,proto3,oneof"` } -type EvaluateInstancesResponse_CoherenceResult struct { - // Result for coherence metric. - CoherenceResult *CoherenceResult `protobuf:"bytes,5,opt,name=coherence_result,json=coherenceResult,proto3,oneof"` +type EvaluateInstancesRequest_RougeInput struct { + // Instances and metric spec for rouge metric. + RougeInput *RougeInput `protobuf:"bytes,4,opt,name=rouge_input,json=rougeInput,proto3,oneof"` } -type EvaluateInstancesResponse_SafetyResult struct { - // Result for safety metric. - SafetyResult *SafetyResult `protobuf:"bytes,7,opt,name=safety_result,json=safetyResult,proto3,oneof"` +type EvaluateInstancesRequest_FluencyInput struct { + // LLM-based metric instance. + // General text generation metrics, applicable to other categories. + // Input for fluency metric. + FluencyInput *FluencyInput `protobuf:"bytes,5,opt,name=fluency_input,json=fluencyInput,proto3,oneof"` } -type EvaluateInstancesResponse_GroundednessResult struct { - // Result for groundedness metric. - GroundednessResult *GroundednessResult `protobuf:"bytes,8,opt,name=groundedness_result,json=groundednessResult,proto3,oneof"` +type EvaluateInstancesRequest_CoherenceInput struct { + // Input for coherence metric. + CoherenceInput *CoherenceInput `protobuf:"bytes,6,opt,name=coherence_input,json=coherenceInput,proto3,oneof"` } -type EvaluateInstancesResponse_FulfillmentResult struct { - // Result for fulfillment metric. - FulfillmentResult *FulfillmentResult `protobuf:"bytes,11,opt,name=fulfillment_result,json=fulfillmentResult,proto3,oneof"` +type EvaluateInstancesRequest_SafetyInput struct { + // Input for safety metric. + SafetyInput *SafetyInput `protobuf:"bytes,8,opt,name=safety_input,json=safetyInput,proto3,oneof"` } -type EvaluateInstancesResponse_SummarizationQualityResult struct { - // Summarization only metrics. - // Result for summarization quality metric. - SummarizationQualityResult *SummarizationQualityResult `protobuf:"bytes,6,opt,name=summarization_quality_result,json=summarizationQualityResult,proto3,oneof"` +type EvaluateInstancesRequest_GroundednessInput struct { + // Input for groundedness metric. + GroundednessInput *GroundednessInput `protobuf:"bytes,9,opt,name=groundedness_input,json=groundednessInput,proto3,oneof"` } -type EvaluateInstancesResponse_PairwiseSummarizationQualityResult struct { - // Result for pairwise summarization quality metric. - PairwiseSummarizationQualityResult *PairwiseSummarizationQualityResult `protobuf:"bytes,22,opt,name=pairwise_summarization_quality_result,json=pairwiseSummarizationQualityResult,proto3,oneof"` +type EvaluateInstancesRequest_FulfillmentInput struct { + // Input for fulfillment metric. + FulfillmentInput *FulfillmentInput `protobuf:"bytes,12,opt,name=fulfillment_input,json=fulfillmentInput,proto3,oneof"` } -type EvaluateInstancesResponse_SummarizationHelpfulnessResult struct { - // Result for summarization helpfulness metric. - SummarizationHelpfulnessResult *SummarizationHelpfulnessResult `protobuf:"bytes,13,opt,name=summarization_helpfulness_result,json=summarizationHelpfulnessResult,proto3,oneof"` +type EvaluateInstancesRequest_SummarizationQualityInput struct { + // Input for summarization quality metric. + SummarizationQualityInput *SummarizationQualityInput `protobuf:"bytes,7,opt,name=summarization_quality_input,json=summarizationQualityInput,proto3,oneof"` } -type EvaluateInstancesResponse_SummarizationVerbosityResult struct { - // Result for summarization verbosity metric. - SummarizationVerbosityResult *SummarizationVerbosityResult `protobuf:"bytes,14,opt,name=summarization_verbosity_result,json=summarizationVerbosityResult,proto3,oneof"` +type EvaluateInstancesRequest_PairwiseSummarizationQualityInput struct { + // Input for pairwise summarization quality metric. + PairwiseSummarizationQualityInput *PairwiseSummarizationQualityInput `protobuf:"bytes,23,opt,name=pairwise_summarization_quality_input,json=pairwiseSummarizationQualityInput,proto3,oneof"` } -type EvaluateInstancesResponse_QuestionAnsweringQualityResult struct { - // Question answering only metrics. - // Result for question answering quality metric. - QuestionAnsweringQualityResult *QuestionAnsweringQualityResult `protobuf:"bytes,9,opt,name=question_answering_quality_result,json=questionAnsweringQualityResult,proto3,oneof"` +type EvaluateInstancesRequest_SummarizationHelpfulnessInput struct { + // Input for summarization helpfulness metric. + SummarizationHelpfulnessInput *SummarizationHelpfulnessInput `protobuf:"bytes,14,opt,name=summarization_helpfulness_input,json=summarizationHelpfulnessInput,proto3,oneof"` } -type EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult struct { - // Result for pairwise question answering quality metric. - PairwiseQuestionAnsweringQualityResult *PairwiseQuestionAnsweringQualityResult `protobuf:"bytes,23,opt,name=pairwise_question_answering_quality_result,json=pairwiseQuestionAnsweringQualityResult,proto3,oneof"` +type EvaluateInstancesRequest_SummarizationVerbosityInput struct { + // Input for summarization verbosity metric. + SummarizationVerbosityInput *SummarizationVerbosityInput `protobuf:"bytes,15,opt,name=summarization_verbosity_input,json=summarizationVerbosityInput,proto3,oneof"` } -type EvaluateInstancesResponse_QuestionAnsweringRelevanceResult struct { - // Result for question answering relevance metric. - QuestionAnsweringRelevanceResult *QuestionAnsweringRelevanceResult `protobuf:"bytes,15,opt,name=question_answering_relevance_result,json=questionAnsweringRelevanceResult,proto3,oneof"` +type EvaluateInstancesRequest_QuestionAnsweringQualityInput struct { + // Input for question answering quality metric. + QuestionAnsweringQualityInput *QuestionAnsweringQualityInput `protobuf:"bytes,10,opt,name=question_answering_quality_input,json=questionAnsweringQualityInput,proto3,oneof"` } -type EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult struct { - // Result for question answering helpfulness metric. - QuestionAnsweringHelpfulnessResult *QuestionAnsweringHelpfulnessResult `protobuf:"bytes,16,opt,name=question_answering_helpfulness_result,json=questionAnsweringHelpfulnessResult,proto3,oneof"` +type EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput struct { + // Input for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityInput *PairwiseQuestionAnsweringQualityInput `protobuf:"bytes,24,opt,name=pairwise_question_answering_quality_input,json=pairwiseQuestionAnsweringQualityInput,proto3,oneof"` } -type EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult struct { - // Result for question answering correctness metric. - QuestionAnsweringCorrectnessResult *QuestionAnsweringCorrectnessResult `protobuf:"bytes,17,opt,name=question_answering_correctness_result,json=questionAnsweringCorrectnessResult,proto3,oneof"` +type EvaluateInstancesRequest_QuestionAnsweringRelevanceInput struct { + // Input for question answering relevance metric. + QuestionAnsweringRelevanceInput *QuestionAnsweringRelevanceInput `protobuf:"bytes,16,opt,name=question_answering_relevance_input,json=questionAnsweringRelevanceInput,proto3,oneof"` } -type EvaluateInstancesResponse_PointwiseMetricResult struct { - // Generic metrics. - // Result for pointwise metric. - PointwiseMetricResult *PointwiseMetricResult `protobuf:"bytes,27,opt,name=pointwise_metric_result,json=pointwiseMetricResult,proto3,oneof"` +type EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput struct { + // Input for question answering helpfulness + // metric. + QuestionAnsweringHelpfulnessInput *QuestionAnsweringHelpfulnessInput `protobuf:"bytes,17,opt,name=question_answering_helpfulness_input,json=questionAnsweringHelpfulnessInput,proto3,oneof"` } -type EvaluateInstancesResponse_PairwiseMetricResult struct { - // Result for pairwise metric. - PairwiseMetricResult *PairwiseMetricResult `protobuf:"bytes,28,opt,name=pairwise_metric_result,json=pairwiseMetricResult,proto3,oneof"` +type EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput struct { + // Input for question answering correctness + // metric. + QuestionAnsweringCorrectnessInput *QuestionAnsweringCorrectnessInput `protobuf:"bytes,18,opt,name=question_answering_correctness_input,json=questionAnsweringCorrectnessInput,proto3,oneof"` } -type EvaluateInstancesResponse_ToolCallValidResults struct { - // Tool call metrics. - // - // Results for tool call valid metric. - ToolCallValidResults *ToolCallValidResults `protobuf:"bytes,18,opt,name=tool_call_valid_results,json=toolCallValidResults,proto3,oneof"` +type EvaluateInstancesRequest_PointwiseMetricInput struct { + // Input for pointwise metric. + PointwiseMetricInput *PointwiseMetricInput `protobuf:"bytes,28,opt,name=pointwise_metric_input,json=pointwiseMetricInput,proto3,oneof"` } -type EvaluateInstancesResponse_ToolNameMatchResults struct { - // Results for tool name match metric. - ToolNameMatchResults *ToolNameMatchResults `protobuf:"bytes,19,opt,name=tool_name_match_results,json=toolNameMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_PairwiseMetricInput struct { + // Input for pairwise metric. + PairwiseMetricInput *PairwiseMetricInput `protobuf:"bytes,29,opt,name=pairwise_metric_input,json=pairwiseMetricInput,proto3,oneof"` } -type EvaluateInstancesResponse_ToolParameterKeyMatchResults struct { - // Results for tool parameter key match metric. - ToolParameterKeyMatchResults *ToolParameterKeyMatchResults `protobuf:"bytes,20,opt,name=tool_parameter_key_match_results,json=toolParameterKeyMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_ToolCallValidInput struct { + // Tool call metric instances. + // Input for tool call valid metric. + ToolCallValidInput *ToolCallValidInput `protobuf:"bytes,19,opt,name=tool_call_valid_input,json=toolCallValidInput,proto3,oneof"` } -type EvaluateInstancesResponse_ToolParameterKvMatchResults struct { - // Results for tool parameter key value match metric. - ToolParameterKvMatchResults *ToolParameterKVMatchResults `protobuf:"bytes,21,opt,name=tool_parameter_kv_match_results,json=toolParameterKvMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_ToolNameMatchInput struct { + // Input for tool name match metric. + ToolNameMatchInput *ToolNameMatchInput `protobuf:"bytes,20,opt,name=tool_name_match_input,json=toolNameMatchInput,proto3,oneof"` } -type EvaluateInstancesResponse_CometResult struct { +type EvaluateInstancesRequest_ToolParameterKeyMatchInput struct { + // Input for tool parameter key match metric. + ToolParameterKeyMatchInput *ToolParameterKeyMatchInput `protobuf:"bytes,21,opt,name=tool_parameter_key_match_input,json=toolParameterKeyMatchInput,proto3,oneof"` +} + +type EvaluateInstancesRequest_ToolParameterKvMatchInput struct { + // Input for tool parameter key value match metric. + ToolParameterKvMatchInput *ToolParameterKVMatchInput `protobuf:"bytes,22,opt,name=tool_parameter_kv_match_input,json=toolParameterKvMatchInput,proto3,oneof"` +} + +type EvaluateInstancesRequest_CometInput struct { // Translation metrics. - // Result for Comet metric. - CometResult *CometResult `protobuf:"bytes,29,opt,name=comet_result,json=cometResult,proto3,oneof"` + // Input for Comet metric. + CometInput *CometInput `protobuf:"bytes,31,opt,name=comet_input,json=cometInput,proto3,oneof"` } -type EvaluateInstancesResponse_MetricxResult struct { - // Result for Metricx metric. - MetricxResult *MetricxResult `protobuf:"bytes,30,opt,name=metricx_result,json=metricxResult,proto3,oneof"` +type EvaluateInstancesRequest_MetricxInput struct { + // Input for Metricx metric. + MetricxInput *MetricxInput `protobuf:"bytes,32,opt,name=metricx_input,json=metricxInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectoryExactMatchResults struct { - // Result for trajectory exact match metric. - TrajectoryExactMatchResults *TrajectoryExactMatchResults `protobuf:"bytes,31,opt,name=trajectory_exact_match_results,json=trajectoryExactMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectoryExactMatchInput struct { + // Input for trajectory exact match metric. + TrajectoryExactMatchInput *TrajectoryExactMatchInput `protobuf:"bytes,33,opt,name=trajectory_exact_match_input,json=trajectoryExactMatchInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectoryInOrderMatchResults struct { - // Result for trajectory in order match metric. - TrajectoryInOrderMatchResults *TrajectoryInOrderMatchResults `protobuf:"bytes,32,opt,name=trajectory_in_order_match_results,json=trajectoryInOrderMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectoryInOrderMatchInput struct { + // Input for trajectory in order match metric. + TrajectoryInOrderMatchInput *TrajectoryInOrderMatchInput `protobuf:"bytes,34,opt,name=trajectory_in_order_match_input,json=trajectoryInOrderMatchInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults struct { - // Result for trajectory any order match metric. - TrajectoryAnyOrderMatchResults *TrajectoryAnyOrderMatchResults `protobuf:"bytes,33,opt,name=trajectory_any_order_match_results,json=trajectoryAnyOrderMatchResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput struct { + // Input for trajectory match any order metric. + TrajectoryAnyOrderMatchInput *TrajectoryAnyOrderMatchInput `protobuf:"bytes,35,opt,name=trajectory_any_order_match_input,json=trajectoryAnyOrderMatchInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectoryPrecisionResults struct { - // Result for trajectory precision metric. - TrajectoryPrecisionResults *TrajectoryPrecisionResults `protobuf:"bytes,35,opt,name=trajectory_precision_results,json=trajectoryPrecisionResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectoryPrecisionInput struct { + // Input for trajectory precision metric. + TrajectoryPrecisionInput *TrajectoryPrecisionInput `protobuf:"bytes,37,opt,name=trajectory_precision_input,json=trajectoryPrecisionInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectoryRecallResults struct { - // Results for trajectory recall metric. - TrajectoryRecallResults *TrajectoryRecallResults `protobuf:"bytes,36,opt,name=trajectory_recall_results,json=trajectoryRecallResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectoryRecallInput struct { + // Input for trajectory recall metric. + TrajectoryRecallInput *TrajectoryRecallInput `protobuf:"bytes,38,opt,name=trajectory_recall_input,json=trajectoryRecallInput,proto3,oneof"` } -type EvaluateInstancesResponse_TrajectorySingleToolUseResults struct { - // Results for trajectory single tool use metric. - TrajectorySingleToolUseResults *TrajectorySingleToolUseResults `protobuf:"bytes,37,opt,name=trajectory_single_tool_use_results,json=trajectorySingleToolUseResults,proto3,oneof"` +type EvaluateInstancesRequest_TrajectorySingleToolUseInput struct { + // Input for trajectory single tool use metric. + TrajectorySingleToolUseInput *TrajectorySingleToolUseInput `protobuf:"bytes,39,opt,name=trajectory_single_tool_use_input,json=trajectorySingleToolUseInput,proto3,oneof"` } -func (*EvaluateInstancesResponse_ExactMatchResults) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_ExactMatchInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_BleuResults) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_BleuInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_RougeResults) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_RougeInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_FluencyResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_FluencyInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_CoherenceResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_CoherenceInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_SafetyResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_SafetyInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_GroundednessResult) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_GroundednessInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_FulfillmentResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_FulfillmentInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_SummarizationQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_SummarizationQualityInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_PairwiseSummarizationQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_PairwiseSummarizationQualityInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_SummarizationHelpfulnessResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_SummarizationHelpfulnessInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_SummarizationVerbosityResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_SummarizationVerbosityInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_QuestionAnsweringQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_QuestionAnsweringQualityInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_PairwiseQuestionAnsweringQualityInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_QuestionAnsweringRelevanceResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_QuestionAnsweringRelevanceInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_QuestionAnsweringHelpfulnessInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_QuestionAnsweringCorrectnessInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_PointwiseMetricResult) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_PointwiseMetricInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_PairwiseMetricResult) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_PairwiseMetricInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_ToolCallValidResults) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_ToolCallValidInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_ToolNameMatchResults) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_ToolNameMatchInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_ToolParameterKeyMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_ToolParameterKeyMatchInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_ToolParameterKvMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_ToolParameterKvMatchInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_CometResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_CometInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_MetricxResult) isEvaluateInstancesResponse_EvaluationResults() {} +func (*EvaluateInstancesRequest_MetricxInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_TrajectoryExactMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_TrajectoryExactMatchInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_TrajectoryInOrderMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_TrajectoryInOrderMatchInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_TrajectoryAnyOrderMatchInput) isEvaluateInstancesRequest_MetricInputs() { } -func (*EvaluateInstancesResponse_TrajectoryPrecisionResults) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_TrajectoryPrecisionInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_TrajectoryRecallResults) isEvaluateInstancesResponse_EvaluationResults() { -} +func (*EvaluateInstancesRequest_TrajectoryRecallInput) isEvaluateInstancesRequest_MetricInputs() {} -func (*EvaluateInstancesResponse_TrajectorySingleToolUseResults) isEvaluateInstancesResponse_EvaluationResults() { +func (*EvaluateInstancesRequest_TrajectorySingleToolUseInput) isEvaluateInstancesRequest_MetricInputs() { } -// Input for exact match metric. -type ExactMatchInput struct { +// Response message for EvaluationService.EvaluateInstances. +type EvaluateInstancesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for exact match metric. - MetricSpec *ExactMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated exact match instances. - Instances []*ExactMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Evaluation results will be served in the same order as presented in + // EvaluationRequest.instances. + // + // Types that are assignable to EvaluationResults: + // + // *EvaluateInstancesResponse_ExactMatchResults + // *EvaluateInstancesResponse_BleuResults + // *EvaluateInstancesResponse_RougeResults + // *EvaluateInstancesResponse_FluencyResult + // *EvaluateInstancesResponse_CoherenceResult + // *EvaluateInstancesResponse_SafetyResult + // *EvaluateInstancesResponse_GroundednessResult + // *EvaluateInstancesResponse_FulfillmentResult + // *EvaluateInstancesResponse_SummarizationQualityResult + // *EvaluateInstancesResponse_PairwiseSummarizationQualityResult + // *EvaluateInstancesResponse_SummarizationHelpfulnessResult + // *EvaluateInstancesResponse_SummarizationVerbosityResult + // *EvaluateInstancesResponse_QuestionAnsweringQualityResult + // *EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult + // *EvaluateInstancesResponse_QuestionAnsweringRelevanceResult + // *EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult + // *EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult + // *EvaluateInstancesResponse_PointwiseMetricResult + // *EvaluateInstancesResponse_PairwiseMetricResult + // *EvaluateInstancesResponse_ToolCallValidResults + // *EvaluateInstancesResponse_ToolNameMatchResults + // *EvaluateInstancesResponse_ToolParameterKeyMatchResults + // *EvaluateInstancesResponse_ToolParameterKvMatchResults + // *EvaluateInstancesResponse_CometResult + // *EvaluateInstancesResponse_MetricxResult + // *EvaluateInstancesResponse_TrajectoryExactMatchResults + // *EvaluateInstancesResponse_TrajectoryInOrderMatchResults + // *EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults + // *EvaluateInstancesResponse_TrajectoryPrecisionResults + // *EvaluateInstancesResponse_TrajectoryRecallResults + // *EvaluateInstancesResponse_TrajectorySingleToolUseResults + EvaluationResults isEvaluateInstancesResponse_EvaluationResults `protobuf_oneof:"evaluation_results"` } -func (x *ExactMatchInput) Reset() { - *x = ExactMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[3] +func (x *EvaluateInstancesResponse) Reset() { + *x = EvaluateInstancesResponse{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ExactMatchInput) String() string { +func (x *EvaluateInstancesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExactMatchInput) ProtoMessage() {} +func (*EvaluateInstancesResponse) ProtoMessage() {} -func (x *ExactMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[3] +func (x *EvaluateInstancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1433,494 +1540,514 @@ func (x *ExactMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExactMatchInput.ProtoReflect.Descriptor instead. -func (*ExactMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{3} -} - -func (x *ExactMatchInput) GetMetricSpec() *ExactMatchSpec { - if x != nil { - return x.MetricSpec - } - return nil +// Deprecated: Use EvaluateInstancesResponse.ProtoReflect.Descriptor instead. +func (*EvaluateInstancesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{9} } -func (x *ExactMatchInput) GetInstances() []*ExactMatchInstance { - if x != nil { - return x.Instances +func (m *EvaluateInstancesResponse) GetEvaluationResults() isEvaluateInstancesResponse_EvaluationResults { + if m != nil { + return m.EvaluationResults } return nil } -// Spec for exact match instance. -type ExactMatchInstance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` +func (x *EvaluateInstancesResponse) GetExactMatchResults() *ExactMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ExactMatchResults); ok { + return x.ExactMatchResults + } + return nil } -func (x *ExactMatchInstance) Reset() { - *x = ExactMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EvaluateInstancesResponse) GetBleuResults() *BleuResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_BleuResults); ok { + return x.BleuResults + } + return nil } -func (x *ExactMatchInstance) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *EvaluateInstancesResponse) GetRougeResults() *RougeResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_RougeResults); ok { + return x.RougeResults + } + return nil } -func (*ExactMatchInstance) ProtoMessage() {} - -func (x *ExactMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EvaluateInstancesResponse) GetFluencyResult() *FluencyResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_FluencyResult); ok { + return x.FluencyResult } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ExactMatchInstance.ProtoReflect.Descriptor instead. -func (*ExactMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{4} +func (x *EvaluateInstancesResponse) GetCoherenceResult() *CoherenceResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_CoherenceResult); ok { + return x.CoherenceResult + } + return nil } -func (x *ExactMatchInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction +func (x *EvaluateInstancesResponse) GetSafetyResult() *SafetyResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SafetyResult); ok { + return x.SafetyResult } - return "" + return nil } -func (x *ExactMatchInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference +func (x *EvaluateInstancesResponse) GetGroundednessResult() *GroundednessResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_GroundednessResult); ok { + return x.GroundednessResult } - return "" + return nil } -// Spec for exact match metric - returns 1 if prediction and reference exactly -// matches, otherwise 0. -type ExactMatchSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *EvaluateInstancesResponse) GetFulfillmentResult() *FulfillmentResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_FulfillmentResult); ok { + return x.FulfillmentResult + } + return nil } -func (x *ExactMatchSpec) Reset() { - *x = ExactMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EvaluateInstancesResponse) GetSummarizationQualityResult() *SummarizationQualityResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationQualityResult); ok { + return x.SummarizationQualityResult + } + return nil } -func (x *ExactMatchSpec) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *EvaluateInstancesResponse) GetPairwiseSummarizationQualityResult() *PairwiseSummarizationQualityResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseSummarizationQualityResult); ok { + return x.PairwiseSummarizationQualityResult + } + return nil } -func (*ExactMatchSpec) ProtoMessage() {} - -func (x *ExactMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EvaluateInstancesResponse) GetSummarizationHelpfulnessResult() *SummarizationHelpfulnessResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationHelpfulnessResult); ok { + return x.SummarizationHelpfulnessResult } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ExactMatchSpec.ProtoReflect.Descriptor instead. -func (*ExactMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{5} +func (x *EvaluateInstancesResponse) GetSummarizationVerbosityResult() *SummarizationVerbosityResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_SummarizationVerbosityResult); ok { + return x.SummarizationVerbosityResult + } + return nil } -// Results for exact match metric. -type ExactMatchResults struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Output only. Exact match metric values. - ExactMatchMetricValues []*ExactMatchMetricValue `protobuf:"bytes,1,rep,name=exact_match_metric_values,json=exactMatchMetricValues,proto3" json:"exact_match_metric_values,omitempty"` +func (x *EvaluateInstancesResponse) GetQuestionAnsweringQualityResult() *QuestionAnsweringQualityResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringQualityResult); ok { + return x.QuestionAnsweringQualityResult + } + return nil } -func (x *ExactMatchResults) Reset() { - *x = ExactMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EvaluateInstancesResponse) GetPairwiseQuestionAnsweringQualityResult() *PairwiseQuestionAnsweringQualityResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult); ok { + return x.PairwiseQuestionAnsweringQualityResult + } + return nil } -func (x *ExactMatchResults) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *EvaluateInstancesResponse) GetQuestionAnsweringRelevanceResult() *QuestionAnsweringRelevanceResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringRelevanceResult); ok { + return x.QuestionAnsweringRelevanceResult + } + return nil } -func (*ExactMatchResults) ProtoMessage() {} - -func (x *ExactMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EvaluateInstancesResponse) GetQuestionAnsweringHelpfulnessResult() *QuestionAnsweringHelpfulnessResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult); ok { + return x.QuestionAnsweringHelpfulnessResult } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ExactMatchResults.ProtoReflect.Descriptor instead. -func (*ExactMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{6} +func (x *EvaluateInstancesResponse) GetQuestionAnsweringCorrectnessResult() *QuestionAnsweringCorrectnessResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult); ok { + return x.QuestionAnsweringCorrectnessResult + } + return nil } -func (x *ExactMatchResults) GetExactMatchMetricValues() []*ExactMatchMetricValue { - if x != nil { - return x.ExactMatchMetricValues +func (x *EvaluateInstancesResponse) GetPointwiseMetricResult() *PointwiseMetricResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PointwiseMetricResult); ok { + return x.PointwiseMetricResult } return nil } -// Exact match metric value for an instance. -type ExactMatchMetricValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Output only. Exact match score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` +func (x *EvaluateInstancesResponse) GetPairwiseMetricResult() *PairwiseMetricResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_PairwiseMetricResult); ok { + return x.PairwiseMetricResult + } + return nil } -func (x *ExactMatchMetricValue) Reset() { - *x = ExactMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EvaluateInstancesResponse) GetToolCallValidResults() *ToolCallValidResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolCallValidResults); ok { + return x.ToolCallValidResults + } + return nil } -func (x *ExactMatchMetricValue) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *EvaluateInstancesResponse) GetToolNameMatchResults() *ToolNameMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolNameMatchResults); ok { + return x.ToolNameMatchResults + } + return nil } -func (*ExactMatchMetricValue) ProtoMessage() {} - -func (x *ExactMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EvaluateInstancesResponse) GetToolParameterKeyMatchResults() *ToolParameterKeyMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolParameterKeyMatchResults); ok { + return x.ToolParameterKeyMatchResults } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ExactMatchMetricValue.ProtoReflect.Descriptor instead. -func (*ExactMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{7} +func (x *EvaluateInstancesResponse) GetToolParameterKvMatchResults() *ToolParameterKVMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_ToolParameterKvMatchResults); ok { + return x.ToolParameterKvMatchResults + } + return nil } -func (x *ExactMatchMetricValue) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *EvaluateInstancesResponse) GetCometResult() *CometResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_CometResult); ok { + return x.CometResult } - return 0 + return nil } -// Input for bleu metric. -type BleuInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Required. Spec for bleu score metric. - MetricSpec *BleuSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated bleu instances. - Instances []*BleuInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` +func (x *EvaluateInstancesResponse) GetMetricxResult() *MetricxResult { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_MetricxResult); ok { + return x.MetricxResult + } + return nil } -func (x *BleuInput) Reset() { - *x = BleuInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *EvaluateInstancesResponse) GetTrajectoryExactMatchResults() *TrajectoryExactMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryExactMatchResults); ok { + return x.TrajectoryExactMatchResults + } + return nil } -func (x *BleuInput) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *EvaluateInstancesResponse) GetTrajectoryInOrderMatchResults() *TrajectoryInOrderMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryInOrderMatchResults); ok { + return x.TrajectoryInOrderMatchResults + } + return nil } -func (*BleuInput) ProtoMessage() {} - -func (x *BleuInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[8] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *EvaluateInstancesResponse) GetTrajectoryAnyOrderMatchResults() *TrajectoryAnyOrderMatchResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults); ok { + return x.TrajectoryAnyOrderMatchResults } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BleuInput.ProtoReflect.Descriptor instead. -func (*BleuInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{8} +func (x *EvaluateInstancesResponse) GetTrajectoryPrecisionResults() *TrajectoryPrecisionResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryPrecisionResults); ok { + return x.TrajectoryPrecisionResults + } + return nil } -func (x *BleuInput) GetMetricSpec() *BleuSpec { - if x != nil { - return x.MetricSpec +func (x *EvaluateInstancesResponse) GetTrajectoryRecallResults() *TrajectoryRecallResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectoryRecallResults); ok { + return x.TrajectoryRecallResults } return nil } -func (x *BleuInput) GetInstances() []*BleuInstance { - if x != nil { - return x.Instances +func (x *EvaluateInstancesResponse) GetTrajectorySingleToolUseResults() *TrajectorySingleToolUseResults { + if x, ok := x.GetEvaluationResults().(*EvaluateInstancesResponse_TrajectorySingleToolUseResults); ok { + return x.TrajectorySingleToolUseResults } return nil } -// Spec for bleu instance. -type BleuInstance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` +type isEvaluateInstancesResponse_EvaluationResults interface { + isEvaluateInstancesResponse_EvaluationResults() } -func (x *BleuInstance) Reset() { - *x = BleuInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +type EvaluateInstancesResponse_ExactMatchResults struct { + // Auto metric evaluation results. + // Results for exact match metric. + ExactMatchResults *ExactMatchResults `protobuf:"bytes,1,opt,name=exact_match_results,json=exactMatchResults,proto3,oneof"` } -func (x *BleuInstance) String() string { - return protoimpl.X.MessageStringOf(x) +type EvaluateInstancesResponse_BleuResults struct { + // Results for bleu metric. + BleuResults *BleuResults `protobuf:"bytes,2,opt,name=bleu_results,json=bleuResults,proto3,oneof"` } -func (*BleuInstance) ProtoMessage() {} - -func (x *BleuInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type EvaluateInstancesResponse_RougeResults struct { + // Results for rouge metric. + RougeResults *RougeResults `protobuf:"bytes,3,opt,name=rouge_results,json=rougeResults,proto3,oneof"` } -// Deprecated: Use BleuInstance.ProtoReflect.Descriptor instead. -func (*BleuInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{9} +type EvaluateInstancesResponse_FluencyResult struct { + // LLM-based metric evaluation result. + // General text generation metrics, applicable to other categories. + // Result for fluency metric. + FluencyResult *FluencyResult `protobuf:"bytes,4,opt,name=fluency_result,json=fluencyResult,proto3,oneof"` } -func (x *BleuInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction - } - return "" +type EvaluateInstancesResponse_CoherenceResult struct { + // Result for coherence metric. + CoherenceResult *CoherenceResult `protobuf:"bytes,5,opt,name=coherence_result,json=coherenceResult,proto3,oneof"` } -func (x *BleuInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference - } - return "" +type EvaluateInstancesResponse_SafetyResult struct { + // Result for safety metric. + SafetyResult *SafetyResult `protobuf:"bytes,7,opt,name=safety_result,json=safetyResult,proto3,oneof"` } -// Spec for bleu score metric - calculates the precision of n-grams in the -// prediction as compared to reference - returns a score ranging between 0 to 1. -type BleuSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type EvaluateInstancesResponse_GroundednessResult struct { + // Result for groundedness metric. + GroundednessResult *GroundednessResult `protobuf:"bytes,8,opt,name=groundedness_result,json=groundednessResult,proto3,oneof"` +} - // Optional. Whether to use_effective_order to compute bleu score. - UseEffectiveOrder bool `protobuf:"varint,1,opt,name=use_effective_order,json=useEffectiveOrder,proto3" json:"use_effective_order,omitempty"` +type EvaluateInstancesResponse_FulfillmentResult struct { + // Result for fulfillment metric. + FulfillmentResult *FulfillmentResult `protobuf:"bytes,11,opt,name=fulfillment_result,json=fulfillmentResult,proto3,oneof"` } -func (x *BleuSpec) Reset() { - *x = BleuSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +type EvaluateInstancesResponse_SummarizationQualityResult struct { + // Summarization only metrics. + // Result for summarization quality metric. + SummarizationQualityResult *SummarizationQualityResult `protobuf:"bytes,6,opt,name=summarization_quality_result,json=summarizationQualityResult,proto3,oneof"` } -func (x *BleuSpec) String() string { - return protoimpl.X.MessageStringOf(x) +type EvaluateInstancesResponse_PairwiseSummarizationQualityResult struct { + // Result for pairwise summarization quality metric. + PairwiseSummarizationQualityResult *PairwiseSummarizationQualityResult `protobuf:"bytes,22,opt,name=pairwise_summarization_quality_result,json=pairwiseSummarizationQualityResult,proto3,oneof"` } -func (*BleuSpec) ProtoMessage() {} +type EvaluateInstancesResponse_SummarizationHelpfulnessResult struct { + // Result for summarization helpfulness metric. + SummarizationHelpfulnessResult *SummarizationHelpfulnessResult `protobuf:"bytes,13,opt,name=summarization_helpfulness_result,json=summarizationHelpfulnessResult,proto3,oneof"` +} -func (x *BleuSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[10] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type EvaluateInstancesResponse_SummarizationVerbosityResult struct { + // Result for summarization verbosity metric. + SummarizationVerbosityResult *SummarizationVerbosityResult `protobuf:"bytes,14,opt,name=summarization_verbosity_result,json=summarizationVerbosityResult,proto3,oneof"` } -// Deprecated: Use BleuSpec.ProtoReflect.Descriptor instead. -func (*BleuSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{10} +type EvaluateInstancesResponse_QuestionAnsweringQualityResult struct { + // Question answering only metrics. + // Result for question answering quality metric. + QuestionAnsweringQualityResult *QuestionAnsweringQualityResult `protobuf:"bytes,9,opt,name=question_answering_quality_result,json=questionAnsweringQualityResult,proto3,oneof"` } -func (x *BleuSpec) GetUseEffectiveOrder() bool { - if x != nil { - return x.UseEffectiveOrder - } - return false +type EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult struct { + // Result for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityResult *PairwiseQuestionAnsweringQualityResult `protobuf:"bytes,23,opt,name=pairwise_question_answering_quality_result,json=pairwiseQuestionAnsweringQualityResult,proto3,oneof"` } -// Results for bleu metric. -type BleuResults struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type EvaluateInstancesResponse_QuestionAnsweringRelevanceResult struct { + // Result for question answering relevance metric. + QuestionAnsweringRelevanceResult *QuestionAnsweringRelevanceResult `protobuf:"bytes,15,opt,name=question_answering_relevance_result,json=questionAnsweringRelevanceResult,proto3,oneof"` +} - // Output only. Bleu metric values. - BleuMetricValues []*BleuMetricValue `protobuf:"bytes,1,rep,name=bleu_metric_values,json=bleuMetricValues,proto3" json:"bleu_metric_values,omitempty"` +type EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult struct { + // Result for question answering helpfulness metric. + QuestionAnsweringHelpfulnessResult *QuestionAnsweringHelpfulnessResult `protobuf:"bytes,16,opt,name=question_answering_helpfulness_result,json=questionAnsweringHelpfulnessResult,proto3,oneof"` } -func (x *BleuResults) Reset() { - *x = BleuResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +type EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult struct { + // Result for question answering correctness metric. + QuestionAnsweringCorrectnessResult *QuestionAnsweringCorrectnessResult `protobuf:"bytes,17,opt,name=question_answering_correctness_result,json=questionAnsweringCorrectnessResult,proto3,oneof"` } -func (x *BleuResults) String() string { - return protoimpl.X.MessageStringOf(x) +type EvaluateInstancesResponse_PointwiseMetricResult struct { + // Generic metrics. + // Result for pointwise metric. + PointwiseMetricResult *PointwiseMetricResult `protobuf:"bytes,27,opt,name=pointwise_metric_result,json=pointwiseMetricResult,proto3,oneof"` } -func (*BleuResults) ProtoMessage() {} +type EvaluateInstancesResponse_PairwiseMetricResult struct { + // Result for pairwise metric. + PairwiseMetricResult *PairwiseMetricResult `protobuf:"bytes,28,opt,name=pairwise_metric_result,json=pairwiseMetricResult,proto3,oneof"` +} -func (x *BleuResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[11] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type EvaluateInstancesResponse_ToolCallValidResults struct { + // Tool call metrics. + // + // Results for tool call valid metric. + ToolCallValidResults *ToolCallValidResults `protobuf:"bytes,18,opt,name=tool_call_valid_results,json=toolCallValidResults,proto3,oneof"` } -// Deprecated: Use BleuResults.ProtoReflect.Descriptor instead. -func (*BleuResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{11} +type EvaluateInstancesResponse_ToolNameMatchResults struct { + // Results for tool name match metric. + ToolNameMatchResults *ToolNameMatchResults `protobuf:"bytes,19,opt,name=tool_name_match_results,json=toolNameMatchResults,proto3,oneof"` } -func (x *BleuResults) GetBleuMetricValues() []*BleuMetricValue { - if x != nil { - return x.BleuMetricValues - } - return nil +type EvaluateInstancesResponse_ToolParameterKeyMatchResults struct { + // Results for tool parameter key match metric. + ToolParameterKeyMatchResults *ToolParameterKeyMatchResults `protobuf:"bytes,20,opt,name=tool_parameter_key_match_results,json=toolParameterKeyMatchResults,proto3,oneof"` } -// Bleu metric value for an instance. -type BleuMetricValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type EvaluateInstancesResponse_ToolParameterKvMatchResults struct { + // Results for tool parameter key value match metric. + ToolParameterKvMatchResults *ToolParameterKVMatchResults `protobuf:"bytes,21,opt,name=tool_parameter_kv_match_results,json=toolParameterKvMatchResults,proto3,oneof"` +} - // Output only. Bleu score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` +type EvaluateInstancesResponse_CometResult struct { + // Translation metrics. + // Result for Comet metric. + CometResult *CometResult `protobuf:"bytes,29,opt,name=comet_result,json=cometResult,proto3,oneof"` } -func (x *BleuMetricValue) Reset() { - *x = BleuMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +type EvaluateInstancesResponse_MetricxResult struct { + // Result for Metricx metric. + MetricxResult *MetricxResult `protobuf:"bytes,30,opt,name=metricx_result,json=metricxResult,proto3,oneof"` } -func (x *BleuMetricValue) String() string { - return protoimpl.X.MessageStringOf(x) +type EvaluateInstancesResponse_TrajectoryExactMatchResults struct { + // Result for trajectory exact match metric. + TrajectoryExactMatchResults *TrajectoryExactMatchResults `protobuf:"bytes,31,opt,name=trajectory_exact_match_results,json=trajectoryExactMatchResults,proto3,oneof"` } -func (*BleuMetricValue) ProtoMessage() {} +type EvaluateInstancesResponse_TrajectoryInOrderMatchResults struct { + // Result for trajectory in order match metric. + TrajectoryInOrderMatchResults *TrajectoryInOrderMatchResults `protobuf:"bytes,32,opt,name=trajectory_in_order_match_results,json=trajectoryInOrderMatchResults,proto3,oneof"` +} -func (x *BleuMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[12] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults struct { + // Result for trajectory any order match metric. + TrajectoryAnyOrderMatchResults *TrajectoryAnyOrderMatchResults `protobuf:"bytes,33,opt,name=trajectory_any_order_match_results,json=trajectoryAnyOrderMatchResults,proto3,oneof"` } -// Deprecated: Use BleuMetricValue.ProtoReflect.Descriptor instead. -func (*BleuMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{12} +type EvaluateInstancesResponse_TrajectoryPrecisionResults struct { + // Result for trajectory precision metric. + TrajectoryPrecisionResults *TrajectoryPrecisionResults `protobuf:"bytes,35,opt,name=trajectory_precision_results,json=trajectoryPrecisionResults,proto3,oneof"` } -func (x *BleuMetricValue) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score - } - return 0 +type EvaluateInstancesResponse_TrajectoryRecallResults struct { + // Results for trajectory recall metric. + TrajectoryRecallResults *TrajectoryRecallResults `protobuf:"bytes,36,opt,name=trajectory_recall_results,json=trajectoryRecallResults,proto3,oneof"` } -// Input for rouge metric. -type RougeInput struct { +type EvaluateInstancesResponse_TrajectorySingleToolUseResults struct { + // Results for trajectory single tool use metric. + TrajectorySingleToolUseResults *TrajectorySingleToolUseResults `protobuf:"bytes,37,opt,name=trajectory_single_tool_use_results,json=trajectorySingleToolUseResults,proto3,oneof"` +} + +func (*EvaluateInstancesResponse_ExactMatchResults) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_BleuResults) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_RougeResults) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_FluencyResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_CoherenceResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_SafetyResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_GroundednessResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_FulfillmentResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_SummarizationQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_PairwiseSummarizationQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_SummarizationHelpfulnessResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_SummarizationVerbosityResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_QuestionAnsweringQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_PairwiseQuestionAnsweringQualityResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_QuestionAnsweringRelevanceResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_QuestionAnsweringHelpfulnessResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_QuestionAnsweringCorrectnessResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_PointwiseMetricResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_PairwiseMetricResult) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_ToolCallValidResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_ToolNameMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_ToolParameterKeyMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_ToolParameterKvMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_CometResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_MetricxResult) isEvaluateInstancesResponse_EvaluationResults() {} + +func (*EvaluateInstancesResponse_TrajectoryExactMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_TrajectoryInOrderMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_TrajectoryAnyOrderMatchResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_TrajectoryPrecisionResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_TrajectoryRecallResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +func (*EvaluateInstancesResponse_TrajectorySingleToolUseResults) isEvaluateInstancesResponse_EvaluationResults() { +} + +// Input for exact match metric. +type ExactMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for rouge score metric. - MetricSpec *RougeSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated rouge instances. - Instances []*RougeInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for exact match metric. + MetricSpec *ExactMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated exact match instances. + Instances []*ExactMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *RougeInput) Reset() { - *x = RougeInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[13] +func (x *ExactMatchInput) Reset() { + *x = ExactMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RougeInput) String() string { +func (x *ExactMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RougeInput) ProtoMessage() {} +func (*ExactMatchInput) ProtoMessage() {} -func (x *RougeInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[13] +func (x *ExactMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1931,27 +2058,27 @@ func (x *RougeInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RougeInput.ProtoReflect.Descriptor instead. -func (*RougeInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{13} +// Deprecated: Use ExactMatchInput.ProtoReflect.Descriptor instead. +func (*ExactMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{10} } -func (x *RougeInput) GetMetricSpec() *RougeSpec { +func (x *ExactMatchInput) GetMetricSpec() *ExactMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *RougeInput) GetInstances() []*RougeInstance { +func (x *ExactMatchInput) GetInstances() []*ExactMatchInstance { if x != nil { return x.Instances } return nil } -// Spec for rouge instance. -type RougeInstance struct { +// Spec for exact match instance. +type ExactMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1962,21 +2089,21 @@ type RougeInstance struct { Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` } -func (x *RougeInstance) Reset() { - *x = RougeInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[14] +func (x *ExactMatchInstance) Reset() { + *x = ExactMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RougeInstance) String() string { +func (x *ExactMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RougeInstance) ProtoMessage() {} +func (*ExactMatchInstance) ProtoMessage() {} -func (x *RougeInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[14] +func (x *ExactMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1987,55 +2114,48 @@ func (x *RougeInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RougeInstance.ProtoReflect.Descriptor instead. -func (*RougeInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{14} +// Deprecated: Use ExactMatchInstance.ProtoReflect.Descriptor instead. +func (*ExactMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{11} } -func (x *RougeInstance) GetPrediction() string { +func (x *ExactMatchInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *RougeInstance) GetReference() string { +func (x *ExactMatchInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -// Spec for rouge score metric - calculates the recall of n-grams in prediction -// as compared to reference - returns a score ranging between 0 and 1. -type RougeSpec struct { +// Spec for exact match metric - returns 1 if prediction and reference exactly +// matches, otherwise 0. +type ExactMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Optional. Supported rouge types are rougen[1-9], rougeL, and rougeLsum. - RougeType string `protobuf:"bytes,1,opt,name=rouge_type,json=rougeType,proto3" json:"rouge_type,omitempty"` - // Optional. Whether to use stemmer to compute rouge score. - UseStemmer bool `protobuf:"varint,2,opt,name=use_stemmer,json=useStemmer,proto3" json:"use_stemmer,omitempty"` - // Optional. Whether to split summaries while using rougeLsum. - SplitSummaries bool `protobuf:"varint,3,opt,name=split_summaries,json=splitSummaries,proto3" json:"split_summaries,omitempty"` } -func (x *RougeSpec) Reset() { - *x = RougeSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[15] +func (x *ExactMatchSpec) Reset() { + *x = ExactMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RougeSpec) String() string { +func (x *ExactMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RougeSpec) ProtoMessage() {} +func (*ExactMatchSpec) ProtoMessage() {} -func (x *RougeSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[15] +func (x *ExactMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2046,57 +2166,36 @@ func (x *RougeSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RougeSpec.ProtoReflect.Descriptor instead. -func (*RougeSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{15} -} - -func (x *RougeSpec) GetRougeType() string { - if x != nil { - return x.RougeType - } - return "" +// Deprecated: Use ExactMatchSpec.ProtoReflect.Descriptor instead. +func (*ExactMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{12} } -func (x *RougeSpec) GetUseStemmer() bool { - if x != nil { - return x.UseStemmer - } - return false -} - -func (x *RougeSpec) GetSplitSummaries() bool { - if x != nil { - return x.SplitSummaries - } - return false -} - -// Results for rouge metric. -type RougeResults struct { +// Results for exact match metric. +type ExactMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Rouge metric values. - RougeMetricValues []*RougeMetricValue `protobuf:"bytes,1,rep,name=rouge_metric_values,json=rougeMetricValues,proto3" json:"rouge_metric_values,omitempty"` + // Output only. Exact match metric values. + ExactMatchMetricValues []*ExactMatchMetricValue `protobuf:"bytes,1,rep,name=exact_match_metric_values,json=exactMatchMetricValues,proto3" json:"exact_match_metric_values,omitempty"` } -func (x *RougeResults) Reset() { - *x = RougeResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[16] +func (x *ExactMatchResults) Reset() { + *x = ExactMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RougeResults) String() string { +func (x *ExactMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RougeResults) ProtoMessage() {} +func (*ExactMatchResults) ProtoMessage() {} -func (x *RougeResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[16] +func (x *ExactMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2107,43 +2206,43 @@ func (x *RougeResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RougeResults.ProtoReflect.Descriptor instead. -func (*RougeResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{16} +// Deprecated: Use ExactMatchResults.ProtoReflect.Descriptor instead. +func (*ExactMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{13} } -func (x *RougeResults) GetRougeMetricValues() []*RougeMetricValue { +func (x *ExactMatchResults) GetExactMatchMetricValues() []*ExactMatchMetricValue { if x != nil { - return x.RougeMetricValues + return x.ExactMatchMetricValues } return nil } -// Rouge metric value for an instance. -type RougeMetricValue struct { +// Exact match metric value for an instance. +type ExactMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Rouge score. + // Output only. Exact match score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *RougeMetricValue) Reset() { - *x = RougeMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[17] +func (x *ExactMatchMetricValue) Reset() { + *x = ExactMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RougeMetricValue) String() string { +func (x *ExactMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RougeMetricValue) ProtoMessage() {} +func (*ExactMatchMetricValue) ProtoMessage() {} -func (x *RougeMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[17] +func (x *ExactMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2154,45 +2253,45 @@ func (x *RougeMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RougeMetricValue.ProtoReflect.Descriptor instead. -func (*RougeMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{17} +// Deprecated: Use ExactMatchMetricValue.ProtoReflect.Descriptor instead. +func (*ExactMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{14} } -func (x *RougeMetricValue) GetScore() float32 { +func (x *ExactMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Input for coherence metric. -type CoherenceInput struct { +// Input for bleu metric. +type BleuInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for coherence score metric. - MetricSpec *CoherenceSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Coherence instance. - Instance *CoherenceInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for bleu score metric. + MetricSpec *BleuSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated bleu instances. + Instances []*BleuInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *CoherenceInput) Reset() { - *x = CoherenceInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[18] +func (x *BleuInput) Reset() { + *x = BleuInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CoherenceInput) String() string { +func (x *BleuInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CoherenceInput) ProtoMessage() {} +func (*BleuInput) ProtoMessage() {} -func (x *CoherenceInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[18] +func (x *BleuInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2203,50 +2302,52 @@ func (x *CoherenceInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CoherenceInput.ProtoReflect.Descriptor instead. -func (*CoherenceInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{18} +// Deprecated: Use BleuInput.ProtoReflect.Descriptor instead. +func (*BleuInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{15} } -func (x *CoherenceInput) GetMetricSpec() *CoherenceSpec { +func (x *BleuInput) GetMetricSpec() *BleuSpec { if x != nil { return x.MetricSpec } return nil } -func (x *CoherenceInput) GetInstance() *CoherenceInstance { +func (x *BleuInput) GetInstances() []*BleuInstance { if x != nil { - return x.Instance + return x.Instances } return nil } -// Spec for coherence instance. -type CoherenceInstance struct { +// Spec for bleu instance. +type BleuInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Required. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` } -func (x *CoherenceInstance) Reset() { - *x = CoherenceInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[19] +func (x *BleuInstance) Reset() { + *x = BleuInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CoherenceInstance) String() string { +func (x *BleuInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CoherenceInstance) ProtoMessage() {} +func (*BleuInstance) ProtoMessage() {} -func (x *CoherenceInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[19] +func (x *BleuInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2257,43 +2358,51 @@ func (x *CoherenceInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CoherenceInstance.ProtoReflect.Descriptor instead. -func (*CoherenceInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{19} +// Deprecated: Use BleuInstance.ProtoReflect.Descriptor instead. +func (*BleuInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{16} } -func (x *CoherenceInstance) GetPrediction() string { +func (x *BleuInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -// Spec for coherence score metric. -type CoherenceSpec struct { +func (x *BleuInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference + } + return "" +} + +// Spec for bleu score metric - calculates the precision of n-grams in the +// prediction as compared to reference - returns a score ranging between 0 to 1. +type BleuSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Which version to use for evaluation. - Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // Optional. Whether to use_effective_order to compute bleu score. + UseEffectiveOrder bool `protobuf:"varint,1,opt,name=use_effective_order,json=useEffectiveOrder,proto3" json:"use_effective_order,omitempty"` } -func (x *CoherenceSpec) Reset() { - *x = CoherenceSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[20] +func (x *BleuSpec) Reset() { + *x = BleuSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CoherenceSpec) String() string { +func (x *BleuSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CoherenceSpec) ProtoMessage() {} +func (*BleuSpec) ProtoMessage() {} -func (x *CoherenceSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[20] +func (x *BleuSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2304,47 +2413,43 @@ func (x *CoherenceSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CoherenceSpec.ProtoReflect.Descriptor instead. -func (*CoherenceSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{20} +// Deprecated: Use BleuSpec.ProtoReflect.Descriptor instead. +func (*BleuSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{17} } -func (x *CoherenceSpec) GetVersion() int32 { +func (x *BleuSpec) GetUseEffectiveOrder() bool { if x != nil { - return x.Version + return x.UseEffectiveOrder } - return 0 + return false } -// Spec for coherence result. -type CoherenceResult struct { +// Results for bleu metric. +type BleuResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Coherence score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for coherence score. - Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for coherence score. - Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` + // Output only. Bleu metric values. + BleuMetricValues []*BleuMetricValue `protobuf:"bytes,1,rep,name=bleu_metric_values,json=bleuMetricValues,proto3" json:"bleu_metric_values,omitempty"` } -func (x *CoherenceResult) Reset() { - *x = CoherenceResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[21] +func (x *BleuResults) Reset() { + *x = BleuResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CoherenceResult) String() string { +func (x *BleuResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CoherenceResult) ProtoMessage() {} +func (*BleuResults) ProtoMessage() {} -func (x *CoherenceResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[21] +func (x *BleuResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2355,59 +2460,43 @@ func (x *CoherenceResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CoherenceResult.ProtoReflect.Descriptor instead. -func (*CoherenceResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{21} -} - -func (x *CoherenceResult) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score - } - return 0 +// Deprecated: Use BleuResults.ProtoReflect.Descriptor instead. +func (*BleuResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{18} } -func (x *CoherenceResult) GetExplanation() string { +func (x *BleuResults) GetBleuMetricValues() []*BleuMetricValue { if x != nil { - return x.Explanation - } - return "" -} - -func (x *CoherenceResult) GetConfidence() float32 { - if x != nil && x.Confidence != nil { - return *x.Confidence + return x.BleuMetricValues } - return 0 + return nil } -// Input for fluency metric. -type FluencyInput struct { +// Bleu metric value for an instance. +type BleuMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for fluency score metric. - MetricSpec *FluencySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Fluency instance. - Instance *FluencyInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Output only. Bleu score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *FluencyInput) Reset() { - *x = FluencyInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[22] +func (x *BleuMetricValue) Reset() { + *x = BleuMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FluencyInput) String() string { +func (x *BleuMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FluencyInput) ProtoMessage() {} +func (*BleuMetricValue) ProtoMessage() {} -func (x *FluencyInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[22] +func (x *BleuMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2418,50 +2507,45 @@ func (x *FluencyInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FluencyInput.ProtoReflect.Descriptor instead. -func (*FluencyInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{22} -} - -func (x *FluencyInput) GetMetricSpec() *FluencySpec { - if x != nil { - return x.MetricSpec - } - return nil +// Deprecated: Use BleuMetricValue.ProtoReflect.Descriptor instead. +func (*BleuMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{19} } -func (x *FluencyInput) GetInstance() *FluencyInstance { - if x != nil { - return x.Instance +func (x *BleuMetricValue) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return nil + return 0 } -// Spec for fluency instance. -type FluencyInstance struct { +// Input for rouge metric. +type RougeInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Required. Spec for rouge score metric. + MetricSpec *RougeSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated rouge instances. + Instances []*RougeInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *FluencyInstance) Reset() { - *x = FluencyInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[23] +func (x *RougeInput) Reset() { + *x = RougeInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FluencyInstance) String() string { +func (x *RougeInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FluencyInstance) ProtoMessage() {} +func (*RougeInput) ProtoMessage() {} -func (x *FluencyInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[23] +func (x *RougeInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2472,43 +2556,52 @@ func (x *FluencyInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FluencyInstance.ProtoReflect.Descriptor instead. -func (*FluencyInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{23} +// Deprecated: Use RougeInput.ProtoReflect.Descriptor instead. +func (*RougeInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{20} } -func (x *FluencyInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction +func (x *RougeInput) GetMetricSpec() *RougeSpec { + if x != nil { + return x.MetricSpec } - return "" + return nil } -// Spec for fluency score metric. -type FluencySpec struct { +func (x *RougeInput) GetInstances() []*RougeInstance { + if x != nil { + return x.Instances + } + return nil +} + +// Spec for rouge instance. +type RougeInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Which version to use for evaluation. - Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Required. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` } -func (x *FluencySpec) Reset() { - *x = FluencySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[24] +func (x *RougeInstance) Reset() { + *x = RougeInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FluencySpec) String() string { +func (x *RougeInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FluencySpec) ProtoMessage() {} +func (*RougeInstance) ProtoMessage() {} -func (x *FluencySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[24] +func (x *RougeInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2519,47 +2612,55 @@ func (x *FluencySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FluencySpec.ProtoReflect.Descriptor instead. -func (*FluencySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{24} +// Deprecated: Use RougeInstance.ProtoReflect.Descriptor instead. +func (*RougeInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{21} } -func (x *FluencySpec) GetVersion() int32 { - if x != nil { - return x.Version +func (x *RougeInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } - return 0 + return "" } -// Spec for fluency result. -type FluencyResult struct { +func (x *RougeInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference + } + return "" +} + +// Spec for rouge score metric - calculates the recall of n-grams in prediction +// as compared to reference - returns a score ranging between 0 and 1. +type RougeSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Fluency score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for fluency score. - Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for fluency score. - Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` + // Optional. Supported rouge types are rougen[1-9], rougeL, and rougeLsum. + RougeType string `protobuf:"bytes,1,opt,name=rouge_type,json=rougeType,proto3" json:"rouge_type,omitempty"` + // Optional. Whether to use stemmer to compute rouge score. + UseStemmer bool `protobuf:"varint,2,opt,name=use_stemmer,json=useStemmer,proto3" json:"use_stemmer,omitempty"` + // Optional. Whether to split summaries while using rougeLsum. + SplitSummaries bool `protobuf:"varint,3,opt,name=split_summaries,json=splitSummaries,proto3" json:"split_summaries,omitempty"` } -func (x *FluencyResult) Reset() { - *x = FluencyResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[25] +func (x *RougeSpec) Reset() { + *x = RougeSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FluencyResult) String() string { +func (x *RougeSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FluencyResult) ProtoMessage() {} +func (*RougeSpec) ProtoMessage() {} -func (x *FluencyResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[25] +func (x *RougeSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2570,59 +2671,57 @@ func (x *FluencyResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FluencyResult.ProtoReflect.Descriptor instead. -func (*FluencyResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{25} +// Deprecated: Use RougeSpec.ProtoReflect.Descriptor instead. +func (*RougeSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{22} } -func (x *FluencyResult) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *RougeSpec) GetRougeType() string { + if x != nil { + return x.RougeType } - return 0 + return "" } -func (x *FluencyResult) GetExplanation() string { +func (x *RougeSpec) GetUseStemmer() bool { if x != nil { - return x.Explanation + return x.UseStemmer } - return "" + return false } -func (x *FluencyResult) GetConfidence() float32 { - if x != nil && x.Confidence != nil { - return *x.Confidence +func (x *RougeSpec) GetSplitSummaries() bool { + if x != nil { + return x.SplitSummaries } - return 0 + return false } -// Input for safety metric. -type SafetyInput struct { +// Results for rouge metric. +type RougeResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for safety metric. - MetricSpec *SafetySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Safety instance. - Instance *SafetyInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Output only. Rouge metric values. + RougeMetricValues []*RougeMetricValue `protobuf:"bytes,1,rep,name=rouge_metric_values,json=rougeMetricValues,proto3" json:"rouge_metric_values,omitempty"` } -func (x *SafetyInput) Reset() { - *x = SafetyInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[26] +func (x *RougeResults) Reset() { + *x = RougeResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SafetyInput) String() string { +func (x *RougeResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SafetyInput) ProtoMessage() {} +func (*RougeResults) ProtoMessage() {} -func (x *SafetyInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[26] +func (x *RougeResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2633,50 +2732,43 @@ func (x *SafetyInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SafetyInput.ProtoReflect.Descriptor instead. -func (*SafetyInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{26} -} - -func (x *SafetyInput) GetMetricSpec() *SafetySpec { - if x != nil { - return x.MetricSpec - } - return nil +// Deprecated: Use RougeResults.ProtoReflect.Descriptor instead. +func (*RougeResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{23} } -func (x *SafetyInput) GetInstance() *SafetyInstance { +func (x *RougeResults) GetRougeMetricValues() []*RougeMetricValue { if x != nil { - return x.Instance + return x.RougeMetricValues } return nil } -// Spec for safety instance. -type SafetyInstance struct { +// Rouge metric value for an instance. +type RougeMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Output only. Rouge score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *SafetyInstance) Reset() { - *x = SafetyInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[27] +func (x *RougeMetricValue) Reset() { + *x = RougeMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SafetyInstance) String() string { +func (x *RougeMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SafetyInstance) ProtoMessage() {} +func (*RougeMetricValue) ProtoMessage() {} -func (x *SafetyInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[27] +func (x *RougeMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2687,43 +2779,45 @@ func (x *SafetyInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SafetyInstance.ProtoReflect.Descriptor instead. -func (*SafetyInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{27} +// Deprecated: Use RougeMetricValue.ProtoReflect.Descriptor instead. +func (*RougeMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{24} } -func (x *SafetyInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction +func (x *RougeMetricValue) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return "" + return 0 } -// Spec for safety metric. -type SafetySpec struct { +// Input for coherence metric. +type CoherenceInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Which version to use for evaluation. - Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // Required. Spec for coherence score metric. + MetricSpec *CoherenceSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Coherence instance. + Instance *CoherenceInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *SafetySpec) Reset() { - *x = SafetySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[28] +func (x *CoherenceInput) Reset() { + *x = CoherenceInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SafetySpec) String() string { +func (x *CoherenceInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SafetySpec) ProtoMessage() {} +func (*CoherenceInput) ProtoMessage() {} -func (x *SafetySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[28] +func (x *CoherenceInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2734,47 +2828,148 @@ func (x *SafetySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SafetySpec.ProtoReflect.Descriptor instead. -func (*SafetySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{28} +// Deprecated: Use CoherenceInput.ProtoReflect.Descriptor instead. +func (*CoherenceInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{25} } -func (x *SafetySpec) GetVersion() int32 { +func (x *CoherenceInput) GetMetricSpec() *CoherenceSpec { + if x != nil { + return x.MetricSpec + } + return nil +} + +func (x *CoherenceInput) GetInstance() *CoherenceInstance { + if x != nil { + return x.Instance + } + return nil +} + +// Spec for coherence instance. +type CoherenceInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` +} + +func (x *CoherenceInstance) Reset() { + *x = CoherenceInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CoherenceInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoherenceInstance) ProtoMessage() {} + +func (x *CoherenceInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoherenceInstance.ProtoReflect.Descriptor instead. +func (*CoherenceInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{26} +} + +func (x *CoherenceInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction + } + return "" +} + +// Spec for coherence score metric. +type CoherenceSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Which version to use for evaluation. + Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *CoherenceSpec) Reset() { + *x = CoherenceSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CoherenceSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoherenceSpec) ProtoMessage() {} + +func (x *CoherenceSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoherenceSpec.ProtoReflect.Descriptor instead. +func (*CoherenceSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{27} +} + +func (x *CoherenceSpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for safety result. -type SafetyResult struct { +// Spec for coherence result. +type CoherenceResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Safety score. + // Output only. Coherence score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for safety score. + // Output only. Explanation for coherence score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for safety score. + // Output only. Confidence for coherence score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *SafetyResult) Reset() { - *x = SafetyResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[29] +func (x *CoherenceResult) Reset() { + *x = CoherenceResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SafetyResult) String() string { +func (x *CoherenceResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SafetyResult) ProtoMessage() {} +func (*CoherenceResult) ProtoMessage() {} -func (x *SafetyResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[29] +func (x *CoherenceResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2785,59 +2980,59 @@ func (x *SafetyResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SafetyResult.ProtoReflect.Descriptor instead. -func (*SafetyResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{29} +// Deprecated: Use CoherenceResult.ProtoReflect.Descriptor instead. +func (*CoherenceResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{28} } -func (x *SafetyResult) GetScore() float32 { +func (x *CoherenceResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *SafetyResult) GetExplanation() string { +func (x *CoherenceResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *SafetyResult) GetConfidence() float32 { +func (x *CoherenceResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for groundedness metric. -type GroundednessInput struct { +// Input for fluency metric. +type FluencyInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for groundedness metric. - MetricSpec *GroundednessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Groundedness instance. - Instance *GroundednessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for fluency score metric. + MetricSpec *FluencySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Fluency instance. + Instance *FluencyInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *GroundednessInput) Reset() { - *x = GroundednessInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[30] +func (x *FluencyInput) Reset() { + *x = FluencyInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GroundednessInput) String() string { +func (x *FluencyInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroundednessInput) ProtoMessage() {} +func (*FluencyInput) ProtoMessage() {} -func (x *GroundednessInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[30] +func (x *FluencyInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2848,53 +3043,50 @@ func (x *GroundednessInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroundednessInput.ProtoReflect.Descriptor instead. -func (*GroundednessInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{30} +// Deprecated: Use FluencyInput.ProtoReflect.Descriptor instead. +func (*FluencyInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{29} } -func (x *GroundednessInput) GetMetricSpec() *GroundednessSpec { +func (x *FluencyInput) GetMetricSpec() *FluencySpec { if x != nil { return x.MetricSpec } return nil } -func (x *GroundednessInput) GetInstance() *GroundednessInstance { +func (x *FluencyInput) GetInstance() *FluencyInstance { if x != nil { return x.Instance } return nil } -// Spec for groundedness instance. -type GroundednessInstance struct { +// Spec for fluency instance. +type FluencyInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Background information provided in context used to compare - // against the prediction. - Context *string `protobuf:"bytes,2,opt,name=context,proto3,oneof" json:"context,omitempty"` } -func (x *GroundednessInstance) Reset() { - *x = GroundednessInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[31] +func (x *FluencyInstance) Reset() { + *x = FluencyInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GroundednessInstance) String() string { +func (x *FluencyInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroundednessInstance) ProtoMessage() {} +func (*FluencyInstance) ProtoMessage() {} -func (x *GroundednessInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[31] +func (x *FluencyInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2905,27 +3097,20 @@ func (x *GroundednessInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroundednessInstance.ProtoReflect.Descriptor instead. -func (*GroundednessInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{31} +// Deprecated: Use FluencyInstance.ProtoReflect.Descriptor instead. +func (*FluencyInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{30} } -func (x *GroundednessInstance) GetPrediction() string { +func (x *FluencyInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *GroundednessInstance) GetContext() string { - if x != nil && x.Context != nil { - return *x.Context - } - return "" -} - -// Spec for groundedness metric. -type GroundednessSpec struct { +// Spec for fluency score metric. +type FluencySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2934,21 +3119,21 @@ type GroundednessSpec struct { Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *GroundednessSpec) Reset() { - *x = GroundednessSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[32] +func (x *FluencySpec) Reset() { + *x = FluencySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GroundednessSpec) String() string { +func (x *FluencySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroundednessSpec) ProtoMessage() {} +func (*FluencySpec) ProtoMessage() {} -func (x *GroundednessSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[32] +func (x *FluencySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2959,47 +3144,47 @@ func (x *GroundednessSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroundednessSpec.ProtoReflect.Descriptor instead. -func (*GroundednessSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{32} +// Deprecated: Use FluencySpec.ProtoReflect.Descriptor instead. +func (*FluencySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{31} } -func (x *GroundednessSpec) GetVersion() int32 { +func (x *FluencySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for groundedness result. -type GroundednessResult struct { +// Spec for fluency result. +type FluencyResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Groundedness score. + // Output only. Fluency score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for groundedness score. + // Output only. Explanation for fluency score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for groundedness score. + // Output only. Confidence for fluency score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *GroundednessResult) Reset() { - *x = GroundednessResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[33] +func (x *FluencyResult) Reset() { + *x = FluencyResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GroundednessResult) String() string { +func (x *FluencyResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroundednessResult) ProtoMessage() {} +func (*FluencyResult) ProtoMessage() {} -func (x *GroundednessResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[33] +func (x *FluencyResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3010,59 +3195,59 @@ func (x *GroundednessResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroundednessResult.ProtoReflect.Descriptor instead. -func (*GroundednessResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{33} +// Deprecated: Use FluencyResult.ProtoReflect.Descriptor instead. +func (*FluencyResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{32} } -func (x *GroundednessResult) GetScore() float32 { +func (x *FluencyResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *GroundednessResult) GetExplanation() string { +func (x *FluencyResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *GroundednessResult) GetConfidence() float32 { +func (x *FluencyResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for fulfillment metric. -type FulfillmentInput struct { +// Input for safety metric. +type SafetyInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for fulfillment score metric. - MetricSpec *FulfillmentSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Fulfillment instance. - Instance *FulfillmentInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for safety metric. + MetricSpec *SafetySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Safety instance. + Instance *SafetyInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *FulfillmentInput) Reset() { - *x = FulfillmentInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[34] +func (x *SafetyInput) Reset() { + *x = SafetyInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FulfillmentInput) String() string { +func (x *SafetyInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FulfillmentInput) ProtoMessage() {} +func (*SafetyInput) ProtoMessage() {} -func (x *FulfillmentInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[34] +func (x *SafetyInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3073,52 +3258,50 @@ func (x *FulfillmentInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FulfillmentInput.ProtoReflect.Descriptor instead. -func (*FulfillmentInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{34} +// Deprecated: Use SafetyInput.ProtoReflect.Descriptor instead. +func (*SafetyInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{33} } -func (x *FulfillmentInput) GetMetricSpec() *FulfillmentSpec { +func (x *SafetyInput) GetMetricSpec() *SafetySpec { if x != nil { return x.MetricSpec } return nil } -func (x *FulfillmentInput) GetInstance() *FulfillmentInstance { +func (x *SafetyInput) GetInstance() *SafetyInstance { if x != nil { return x.Instance } return nil } -// Spec for fulfillment instance. -type FulfillmentInstance struct { +// Spec for safety instance. +type SafetyInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Inference instruction prompt to compare prediction with. - Instruction *string `protobuf:"bytes,2,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *FulfillmentInstance) Reset() { - *x = FulfillmentInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[35] +func (x *SafetyInstance) Reset() { + *x = SafetyInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FulfillmentInstance) String() string { +func (x *SafetyInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FulfillmentInstance) ProtoMessage() {} +func (*SafetyInstance) ProtoMessage() {} -func (x *FulfillmentInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[35] +func (x *SafetyInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3129,27 +3312,20 @@ func (x *FulfillmentInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FulfillmentInstance.ProtoReflect.Descriptor instead. -func (*FulfillmentInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{35} +// Deprecated: Use SafetyInstance.ProtoReflect.Descriptor instead. +func (*SafetyInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{34} } -func (x *FulfillmentInstance) GetPrediction() string { +func (x *SafetyInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *FulfillmentInstance) GetInstruction() string { - if x != nil && x.Instruction != nil { - return *x.Instruction - } - return "" -} - -// Spec for fulfillment metric. -type FulfillmentSpec struct { +// Spec for safety metric. +type SafetySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3158,21 +3334,21 @@ type FulfillmentSpec struct { Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *FulfillmentSpec) Reset() { - *x = FulfillmentSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[36] +func (x *SafetySpec) Reset() { + *x = SafetySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FulfillmentSpec) String() string { +func (x *SafetySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FulfillmentSpec) ProtoMessage() {} +func (*SafetySpec) ProtoMessage() {} -func (x *FulfillmentSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[36] +func (x *SafetySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3183,47 +3359,47 @@ func (x *FulfillmentSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FulfillmentSpec.ProtoReflect.Descriptor instead. -func (*FulfillmentSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{36} +// Deprecated: Use SafetySpec.ProtoReflect.Descriptor instead. +func (*SafetySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{35} } -func (x *FulfillmentSpec) GetVersion() int32 { +func (x *SafetySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for fulfillment result. -type FulfillmentResult struct { +// Spec for safety result. +type SafetyResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Fulfillment score. + // Output only. Safety score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for fulfillment score. + // Output only. Explanation for safety score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for fulfillment score. + // Output only. Confidence for safety score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *FulfillmentResult) Reset() { - *x = FulfillmentResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[37] +func (x *SafetyResult) Reset() { + *x = SafetyResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *FulfillmentResult) String() string { +func (x *SafetyResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FulfillmentResult) ProtoMessage() {} +func (*SafetyResult) ProtoMessage() {} -func (x *FulfillmentResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[37] +func (x *SafetyResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3234,59 +3410,59 @@ func (x *FulfillmentResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FulfillmentResult.ProtoReflect.Descriptor instead. -func (*FulfillmentResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{37} +// Deprecated: Use SafetyResult.ProtoReflect.Descriptor instead. +func (*SafetyResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{36} } -func (x *FulfillmentResult) GetScore() float32 { +func (x *SafetyResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *FulfillmentResult) GetExplanation() string { +func (x *SafetyResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *FulfillmentResult) GetConfidence() float32 { +func (x *SafetyResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for summarization quality metric. -type SummarizationQualityInput struct { +// Input for groundedness metric. +type GroundednessInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for summarization quality score metric. - MetricSpec *SummarizationQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Summarization quality instance. - Instance *SummarizationQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for groundedness metric. + MetricSpec *GroundednessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Groundedness instance. + Instance *GroundednessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *SummarizationQualityInput) Reset() { - *x = SummarizationQualityInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[38] +func (x *GroundednessInput) Reset() { + *x = GroundednessInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationQualityInput) String() string { +func (x *GroundednessInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationQualityInput) ProtoMessage() {} +func (*GroundednessInput) ProtoMessage() {} -func (x *SummarizationQualityInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[38] +func (x *GroundednessInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3297,56 +3473,53 @@ func (x *SummarizationQualityInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationQualityInput.ProtoReflect.Descriptor instead. -func (*SummarizationQualityInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{38} +// Deprecated: Use GroundednessInput.ProtoReflect.Descriptor instead. +func (*GroundednessInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{37} } -func (x *SummarizationQualityInput) GetMetricSpec() *SummarizationQualitySpec { +func (x *GroundednessInput) GetMetricSpec() *GroundednessSpec { if x != nil { return x.MetricSpec } return nil } -func (x *SummarizationQualityInput) GetInstance() *SummarizationQualityInstance { +func (x *GroundednessInput) GetInstance() *GroundednessInstance { if x != nil { return x.Instance } return nil } -// Spec for summarization quality instance. -type SummarizationQualityInstance struct { +// Spec for groundedness instance. +type GroundednessInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Optional. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Required. Text to be summarized. - Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. Summarization prompt for LLM. - Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` + // Required. Background information provided in context used to compare + // against the prediction. + Context *string `protobuf:"bytes,2,opt,name=context,proto3,oneof" json:"context,omitempty"` } -func (x *SummarizationQualityInstance) Reset() { - *x = SummarizationQualityInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[39] +func (x *GroundednessInstance) Reset() { + *x = GroundednessInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationQualityInstance) String() string { +func (x *GroundednessInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationQualityInstance) ProtoMessage() {} +func (*GroundednessInstance) ProtoMessage() {} -func (x *SummarizationQualityInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[39] +func (x *GroundednessInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3357,67 +3530,50 @@ func (x *SummarizationQualityInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationQualityInstance.ProtoReflect.Descriptor instead. -func (*SummarizationQualityInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{39} +// Deprecated: Use GroundednessInstance.ProtoReflect.Descriptor instead. +func (*GroundednessInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{38} } -func (x *SummarizationQualityInstance) GetPrediction() string { +func (x *GroundednessInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *SummarizationQualityInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference - } - return "" -} - -func (x *SummarizationQualityInstance) GetContext() string { +func (x *GroundednessInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *SummarizationQualityInstance) GetInstruction() string { - if x != nil && x.Instruction != nil { - return *x.Instruction - } - return "" -} - -// Spec for summarization quality score metric. -type SummarizationQualitySpec struct { +// Spec for groundedness metric. +type GroundednessSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Whether to use instance.reference to compute summarization - // quality. - UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. - Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *SummarizationQualitySpec) Reset() { - *x = SummarizationQualitySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[40] +func (x *GroundednessSpec) Reset() { + *x = GroundednessSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationQualitySpec) String() string { +func (x *GroundednessSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationQualitySpec) ProtoMessage() {} +func (*GroundednessSpec) ProtoMessage() {} -func (x *SummarizationQualitySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[40] +func (x *GroundednessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3428,54 +3584,47 @@ func (x *SummarizationQualitySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationQualitySpec.ProtoReflect.Descriptor instead. -func (*SummarizationQualitySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{40} -} - -func (x *SummarizationQualitySpec) GetUseReference() bool { - if x != nil { - return x.UseReference - } - return false +// Deprecated: Use GroundednessSpec.ProtoReflect.Descriptor instead. +func (*GroundednessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{39} } -func (x *SummarizationQualitySpec) GetVersion() int32 { +func (x *GroundednessSpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for summarization quality result. -type SummarizationQualityResult struct { +// Spec for groundedness result. +type GroundednessResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Summarization Quality score. + // Output only. Groundedness score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for summarization quality score. + // Output only. Explanation for groundedness score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for summarization quality score. + // Output only. Confidence for groundedness score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *SummarizationQualityResult) Reset() { - *x = SummarizationQualityResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[41] +func (x *GroundednessResult) Reset() { + *x = GroundednessResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationQualityResult) String() string { +func (x *GroundednessResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationQualityResult) ProtoMessage() {} +func (*GroundednessResult) ProtoMessage() {} -func (x *SummarizationQualityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[41] +func (x *GroundednessResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3486,59 +3635,59 @@ func (x *SummarizationQualityResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationQualityResult.ProtoReflect.Descriptor instead. -func (*SummarizationQualityResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{41} +// Deprecated: Use GroundednessResult.ProtoReflect.Descriptor instead. +func (*GroundednessResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{40} } -func (x *SummarizationQualityResult) GetScore() float32 { +func (x *GroundednessResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *SummarizationQualityResult) GetExplanation() string { +func (x *GroundednessResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *SummarizationQualityResult) GetConfidence() float32 { +func (x *GroundednessResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for pairwise summarization quality metric. -type PairwiseSummarizationQualityInput struct { +// Input for fulfillment metric. +type FulfillmentInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for pairwise summarization quality score metric. - MetricSpec *PairwiseSummarizationQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Pairwise summarization quality instance. - Instance *PairwiseSummarizationQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for fulfillment score metric. + MetricSpec *FulfillmentSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Fulfillment instance. + Instance *FulfillmentInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *PairwiseSummarizationQualityInput) Reset() { - *x = PairwiseSummarizationQualityInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[42] +func (x *FulfillmentInput) Reset() { + *x = FulfillmentInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseSummarizationQualityInput) String() string { +func (x *FulfillmentInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseSummarizationQualityInput) ProtoMessage() {} +func (*FulfillmentInput) ProtoMessage() {} -func (x *PairwiseSummarizationQualityInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[42] +func (x *FulfillmentInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3549,58 +3698,52 @@ func (x *PairwiseSummarizationQualityInput) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PairwiseSummarizationQualityInput.ProtoReflect.Descriptor instead. -func (*PairwiseSummarizationQualityInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{42} +// Deprecated: Use FulfillmentInput.ProtoReflect.Descriptor instead. +func (*FulfillmentInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{41} } -func (x *PairwiseSummarizationQualityInput) GetMetricSpec() *PairwiseSummarizationQualitySpec { +func (x *FulfillmentInput) GetMetricSpec() *FulfillmentSpec { if x != nil { return x.MetricSpec } return nil } -func (x *PairwiseSummarizationQualityInput) GetInstance() *PairwiseSummarizationQualityInstance { +func (x *FulfillmentInput) GetInstance() *FulfillmentInstance { if x != nil { return x.Instance } return nil } -// Spec for pairwise summarization quality instance. -type PairwiseSummarizationQualityInstance struct { +// Spec for fulfillment instance. +type FulfillmentInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the candidate model. + // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Output of the baseline model. - BaselinePrediction *string `protobuf:"bytes,2,opt,name=baseline_prediction,json=baselinePrediction,proto3,oneof" json:"baseline_prediction,omitempty"` - // Optional. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,3,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Required. Text to be summarized. - Context *string `protobuf:"bytes,4,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. Summarization prompt for LLM. - Instruction *string `protobuf:"bytes,5,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` + // Required. Inference instruction prompt to compare prediction with. + Instruction *string `protobuf:"bytes,2,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *PairwiseSummarizationQualityInstance) Reset() { - *x = PairwiseSummarizationQualityInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[43] +func (x *FulfillmentInstance) Reset() { + *x = FulfillmentInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseSummarizationQualityInstance) String() string { +func (x *FulfillmentInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseSummarizationQualityInstance) ProtoMessage() {} +func (*FulfillmentInstance) ProtoMessage() {} -func (x *PairwiseSummarizationQualityInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[43] +func (x *FulfillmentInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3611,74 +3754,50 @@ func (x *PairwiseSummarizationQualityInstance) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PairwiseSummarizationQualityInstance.ProtoReflect.Descriptor instead. -func (*PairwiseSummarizationQualityInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{43} +// Deprecated: Use FulfillmentInstance.ProtoReflect.Descriptor instead. +func (*FulfillmentInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{42} } -func (x *PairwiseSummarizationQualityInstance) GetPrediction() string { +func (x *FulfillmentInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *PairwiseSummarizationQualityInstance) GetBaselinePrediction() string { - if x != nil && x.BaselinePrediction != nil { - return *x.BaselinePrediction - } - return "" -} - -func (x *PairwiseSummarizationQualityInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference - } - return "" -} - -func (x *PairwiseSummarizationQualityInstance) GetContext() string { - if x != nil && x.Context != nil { - return *x.Context - } - return "" -} - -func (x *PairwiseSummarizationQualityInstance) GetInstruction() string { +func (x *FulfillmentInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for pairwise summarization quality score metric. -type PairwiseSummarizationQualitySpec struct { +// Spec for fulfillment metric. +type FulfillmentSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Whether to use instance.reference to compute pairwise - // summarization quality. - UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. - Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *PairwiseSummarizationQualitySpec) Reset() { - *x = PairwiseSummarizationQualitySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[44] +func (x *FulfillmentSpec) Reset() { + *x = FulfillmentSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseSummarizationQualitySpec) String() string { +func (x *FulfillmentSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseSummarizationQualitySpec) ProtoMessage() {} +func (*FulfillmentSpec) ProtoMessage() {} -func (x *PairwiseSummarizationQualitySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[44] +func (x *FulfillmentSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3689,54 +3808,47 @@ func (x *PairwiseSummarizationQualitySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PairwiseSummarizationQualitySpec.ProtoReflect.Descriptor instead. -func (*PairwiseSummarizationQualitySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{44} -} - -func (x *PairwiseSummarizationQualitySpec) GetUseReference() bool { - if x != nil { - return x.UseReference - } - return false +// Deprecated: Use FulfillmentSpec.ProtoReflect.Descriptor instead. +func (*FulfillmentSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{43} } -func (x *PairwiseSummarizationQualitySpec) GetVersion() int32 { +func (x *FulfillmentSpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for pairwise summarization quality result. -type PairwiseSummarizationQualityResult struct { +// Spec for fulfillment result. +type FulfillmentResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Pairwise summarization prediction choice. - PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` - // Output only. Explanation for summarization quality score. + // Output only. Fulfillment score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Output only. Explanation for fulfillment score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for summarization quality score. + // Output only. Confidence for fulfillment score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *PairwiseSummarizationQualityResult) Reset() { - *x = PairwiseSummarizationQualityResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[45] +func (x *FulfillmentResult) Reset() { + *x = FulfillmentResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseSummarizationQualityResult) String() string { +func (x *FulfillmentResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseSummarizationQualityResult) ProtoMessage() {} +func (*FulfillmentResult) ProtoMessage() {} -func (x *PairwiseSummarizationQualityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[45] +func (x *FulfillmentResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3747,59 +3859,59 @@ func (x *PairwiseSummarizationQualityResult) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PairwiseSummarizationQualityResult.ProtoReflect.Descriptor instead. -func (*PairwiseSummarizationQualityResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{45} +// Deprecated: Use FulfillmentResult.ProtoReflect.Descriptor instead. +func (*FulfillmentResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{44} } -func (x *PairwiseSummarizationQualityResult) GetPairwiseChoice() PairwiseChoice { - if x != nil { - return x.PairwiseChoice +func (x *FulfillmentResult) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED + return 0 } -func (x *PairwiseSummarizationQualityResult) GetExplanation() string { +func (x *FulfillmentResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *PairwiseSummarizationQualityResult) GetConfidence() float32 { +func (x *FulfillmentResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for summarization helpfulness metric. -type SummarizationHelpfulnessInput struct { +// Input for summarization quality metric. +type SummarizationQualityInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for summarization helpfulness score metric. - MetricSpec *SummarizationHelpfulnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Summarization helpfulness instance. - Instance *SummarizationHelpfulnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for summarization quality score metric. + MetricSpec *SummarizationQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Summarization quality instance. + Instance *SummarizationQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *SummarizationHelpfulnessInput) Reset() { - *x = SummarizationHelpfulnessInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[46] +func (x *SummarizationQualityInput) Reset() { + *x = SummarizationQualityInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationHelpfulnessInput) String() string { +func (x *SummarizationQualityInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationHelpfulnessInput) ProtoMessage() {} +func (*SummarizationQualityInput) ProtoMessage() {} -func (x *SummarizationHelpfulnessInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[46] +func (x *SummarizationQualityInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3810,27 +3922,27 @@ func (x *SummarizationHelpfulnessInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationHelpfulnessInput.ProtoReflect.Descriptor instead. -func (*SummarizationHelpfulnessInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{46} +// Deprecated: Use SummarizationQualityInput.ProtoReflect.Descriptor instead. +func (*SummarizationQualityInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{45} } -func (x *SummarizationHelpfulnessInput) GetMetricSpec() *SummarizationHelpfulnessSpec { +func (x *SummarizationQualityInput) GetMetricSpec() *SummarizationQualitySpec { if x != nil { return x.MetricSpec } return nil } -func (x *SummarizationHelpfulnessInput) GetInstance() *SummarizationHelpfulnessInstance { +func (x *SummarizationQualityInput) GetInstance() *SummarizationQualityInstance { if x != nil { return x.Instance } return nil } -// Spec for summarization helpfulness instance. -type SummarizationHelpfulnessInstance struct { +// Spec for summarization quality instance. +type SummarizationQualityInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -3841,25 +3953,25 @@ type SummarizationHelpfulnessInstance struct { Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` // Required. Text to be summarized. Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Optional. Summarization prompt for LLM. + // Required. Summarization prompt for LLM. Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *SummarizationHelpfulnessInstance) Reset() { - *x = SummarizationHelpfulnessInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[47] +func (x *SummarizationQualityInstance) Reset() { + *x = SummarizationQualityInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationHelpfulnessInstance) String() string { +func (x *SummarizationQualityInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationHelpfulnessInstance) ProtoMessage() {} +func (*SummarizationQualityInstance) ProtoMessage() {} -func (x *SummarizationHelpfulnessInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[47] +func (x *SummarizationQualityInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3870,67 +3982,67 @@ func (x *SummarizationHelpfulnessInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationHelpfulnessInstance.ProtoReflect.Descriptor instead. -func (*SummarizationHelpfulnessInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{47} +// Deprecated: Use SummarizationQualityInstance.ProtoReflect.Descriptor instead. +func (*SummarizationQualityInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{46} } -func (x *SummarizationHelpfulnessInstance) GetPrediction() string { +func (x *SummarizationQualityInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *SummarizationHelpfulnessInstance) GetReference() string { +func (x *SummarizationQualityInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *SummarizationHelpfulnessInstance) GetContext() string { +func (x *SummarizationQualityInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *SummarizationHelpfulnessInstance) GetInstruction() string { +func (x *SummarizationQualityInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for summarization helpfulness score metric. -type SummarizationHelpfulnessSpec struct { +// Spec for summarization quality score metric. +type SummarizationQualitySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether to use instance.reference to compute summarization - // helpfulness. + // quality. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *SummarizationHelpfulnessSpec) Reset() { - *x = SummarizationHelpfulnessSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[48] +func (x *SummarizationQualitySpec) Reset() { + *x = SummarizationQualitySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationHelpfulnessSpec) String() string { +func (x *SummarizationQualitySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationHelpfulnessSpec) ProtoMessage() {} +func (*SummarizationQualitySpec) ProtoMessage() {} -func (x *SummarizationHelpfulnessSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[48] +func (x *SummarizationQualitySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3941,54 +4053,54 @@ func (x *SummarizationHelpfulnessSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationHelpfulnessSpec.ProtoReflect.Descriptor instead. -func (*SummarizationHelpfulnessSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{48} +// Deprecated: Use SummarizationQualitySpec.ProtoReflect.Descriptor instead. +func (*SummarizationQualitySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{47} } -func (x *SummarizationHelpfulnessSpec) GetUseReference() bool { +func (x *SummarizationQualitySpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *SummarizationHelpfulnessSpec) GetVersion() int32 { +func (x *SummarizationQualitySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for summarization helpfulness result. -type SummarizationHelpfulnessResult struct { +// Spec for summarization quality result. +type SummarizationQualityResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Summarization Helpfulness score. + // Output only. Summarization Quality score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for summarization helpfulness score. + // Output only. Explanation for summarization quality score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for summarization helpfulness score. + // Output only. Confidence for summarization quality score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *SummarizationHelpfulnessResult) Reset() { - *x = SummarizationHelpfulnessResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[49] +func (x *SummarizationQualityResult) Reset() { + *x = SummarizationQualityResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationHelpfulnessResult) String() string { +func (x *SummarizationQualityResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationHelpfulnessResult) ProtoMessage() {} +func (*SummarizationQualityResult) ProtoMessage() {} -func (x *SummarizationHelpfulnessResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[49] +func (x *SummarizationQualityResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3999,59 +4111,59 @@ func (x *SummarizationHelpfulnessResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationHelpfulnessResult.ProtoReflect.Descriptor instead. -func (*SummarizationHelpfulnessResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{49} +// Deprecated: Use SummarizationQualityResult.ProtoReflect.Descriptor instead. +func (*SummarizationQualityResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{48} } -func (x *SummarizationHelpfulnessResult) GetScore() float32 { +func (x *SummarizationQualityResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *SummarizationHelpfulnessResult) GetExplanation() string { +func (x *SummarizationQualityResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *SummarizationHelpfulnessResult) GetConfidence() float32 { +func (x *SummarizationQualityResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for summarization verbosity metric. -type SummarizationVerbosityInput struct { +// Input for pairwise summarization quality metric. +type PairwiseSummarizationQualityInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for summarization verbosity score metric. - MetricSpec *SummarizationVerbositySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Summarization verbosity instance. - Instance *SummarizationVerbosityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for pairwise summarization quality score metric. + MetricSpec *PairwiseSummarizationQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Pairwise summarization quality instance. + Instance *PairwiseSummarizationQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *SummarizationVerbosityInput) Reset() { - *x = SummarizationVerbosityInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[50] +func (x *PairwiseSummarizationQualityInput) Reset() { + *x = PairwiseSummarizationQualityInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationVerbosityInput) String() string { +func (x *PairwiseSummarizationQualityInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationVerbosityInput) ProtoMessage() {} +func (*PairwiseSummarizationQualityInput) ProtoMessage() {} -func (x *SummarizationVerbosityInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[50] +func (x *PairwiseSummarizationQualityInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4062,56 +4174,58 @@ func (x *SummarizationVerbosityInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationVerbosityInput.ProtoReflect.Descriptor instead. -func (*SummarizationVerbosityInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{50} +// Deprecated: Use PairwiseSummarizationQualityInput.ProtoReflect.Descriptor instead. +func (*PairwiseSummarizationQualityInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{49} } -func (x *SummarizationVerbosityInput) GetMetricSpec() *SummarizationVerbositySpec { +func (x *PairwiseSummarizationQualityInput) GetMetricSpec() *PairwiseSummarizationQualitySpec { if x != nil { return x.MetricSpec } return nil } -func (x *SummarizationVerbosityInput) GetInstance() *SummarizationVerbosityInstance { +func (x *PairwiseSummarizationQualityInput) GetInstance() *PairwiseSummarizationQualityInstance { if x != nil { return x.Instance } return nil } -// Spec for summarization verbosity instance. -type SummarizationVerbosityInstance struct { +// Spec for pairwise summarization quality instance. +type PairwiseSummarizationQualityInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the evaluated model. + // Required. Output of the candidate model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Required. Output of the baseline model. + BaselinePrediction *string `protobuf:"bytes,2,opt,name=baseline_prediction,json=baselinePrediction,proto3,oneof" json:"baseline_prediction,omitempty"` // Optional. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + Reference *string `protobuf:"bytes,3,opt,name=reference,proto3,oneof" json:"reference,omitempty"` // Required. Text to be summarized. - Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Optional. Summarization prompt for LLM. - Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` + Context *string `protobuf:"bytes,4,opt,name=context,proto3,oneof" json:"context,omitempty"` + // Required. Summarization prompt for LLM. + Instruction *string `protobuf:"bytes,5,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *SummarizationVerbosityInstance) Reset() { - *x = SummarizationVerbosityInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[51] +func (x *PairwiseSummarizationQualityInstance) Reset() { + *x = PairwiseSummarizationQualityInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationVerbosityInstance) String() string { +func (x *PairwiseSummarizationQualityInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationVerbosityInstance) ProtoMessage() {} +func (*PairwiseSummarizationQualityInstance) ProtoMessage() {} -func (x *SummarizationVerbosityInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[51] +func (x *PairwiseSummarizationQualityInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4122,67 +4236,74 @@ func (x *SummarizationVerbosityInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationVerbosityInstance.ProtoReflect.Descriptor instead. -func (*SummarizationVerbosityInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{51} +// Deprecated: Use PairwiseSummarizationQualityInstance.ProtoReflect.Descriptor instead. +func (*PairwiseSummarizationQualityInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{50} } -func (x *SummarizationVerbosityInstance) GetPrediction() string { +func (x *PairwiseSummarizationQualityInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *SummarizationVerbosityInstance) GetReference() string { +func (x *PairwiseSummarizationQualityInstance) GetBaselinePrediction() string { + if x != nil && x.BaselinePrediction != nil { + return *x.BaselinePrediction + } + return "" +} + +func (x *PairwiseSummarizationQualityInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *SummarizationVerbosityInstance) GetContext() string { +func (x *PairwiseSummarizationQualityInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *SummarizationVerbosityInstance) GetInstruction() string { +func (x *PairwiseSummarizationQualityInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for summarization verbosity score metric. -type SummarizationVerbositySpec struct { +// Spec for pairwise summarization quality score metric. +type PairwiseSummarizationQualitySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Whether to use instance.reference to compute summarization - // verbosity. + // Optional. Whether to use instance.reference to compute pairwise + // summarization quality. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *SummarizationVerbositySpec) Reset() { - *x = SummarizationVerbositySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[52] +func (x *PairwiseSummarizationQualitySpec) Reset() { + *x = PairwiseSummarizationQualitySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationVerbositySpec) String() string { +func (x *PairwiseSummarizationQualitySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationVerbositySpec) ProtoMessage() {} +func (*PairwiseSummarizationQualitySpec) ProtoMessage() {} -func (x *SummarizationVerbositySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[52] +func (x *PairwiseSummarizationQualitySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4193,54 +4314,54 @@ func (x *SummarizationVerbositySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationVerbositySpec.ProtoReflect.Descriptor instead. -func (*SummarizationVerbositySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{52} +// Deprecated: Use PairwiseSummarizationQualitySpec.ProtoReflect.Descriptor instead. +func (*PairwiseSummarizationQualitySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{51} } -func (x *SummarizationVerbositySpec) GetUseReference() bool { +func (x *PairwiseSummarizationQualitySpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *SummarizationVerbositySpec) GetVersion() int32 { +func (x *PairwiseSummarizationQualitySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for summarization verbosity result. -type SummarizationVerbosityResult struct { - state protoimpl.MessageState +// Spec for pairwise summarization quality result. +type PairwiseSummarizationQualityResult struct { + state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Summarization Verbosity score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for summarization verbosity score. + // Output only. Pairwise summarization prediction choice. + PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` + // Output only. Explanation for summarization quality score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for summarization verbosity score. + // Output only. Confidence for summarization quality score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *SummarizationVerbosityResult) Reset() { - *x = SummarizationVerbosityResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[53] +func (x *PairwiseSummarizationQualityResult) Reset() { + *x = PairwiseSummarizationQualityResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *SummarizationVerbosityResult) String() string { +func (x *PairwiseSummarizationQualityResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SummarizationVerbosityResult) ProtoMessage() {} +func (*PairwiseSummarizationQualityResult) ProtoMessage() {} -func (x *SummarizationVerbosityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[53] +func (x *PairwiseSummarizationQualityResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4251,59 +4372,59 @@ func (x *SummarizationVerbosityResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SummarizationVerbosityResult.ProtoReflect.Descriptor instead. -func (*SummarizationVerbosityResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{53} +// Deprecated: Use PairwiseSummarizationQualityResult.ProtoReflect.Descriptor instead. +func (*PairwiseSummarizationQualityResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{52} } -func (x *SummarizationVerbosityResult) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *PairwiseSummarizationQualityResult) GetPairwiseChoice() PairwiseChoice { + if x != nil { + return x.PairwiseChoice } - return 0 + return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED } -func (x *SummarizationVerbosityResult) GetExplanation() string { +func (x *PairwiseSummarizationQualityResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *SummarizationVerbosityResult) GetConfidence() float32 { +func (x *PairwiseSummarizationQualityResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for question answering quality metric. -type QuestionAnsweringQualityInput struct { +// Input for summarization helpfulness metric. +type SummarizationHelpfulnessInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for question answering quality score metric. - MetricSpec *QuestionAnsweringQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Question answering quality instance. - Instance *QuestionAnsweringQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for summarization helpfulness score metric. + MetricSpec *SummarizationHelpfulnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Summarization helpfulness instance. + Instance *SummarizationHelpfulnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *QuestionAnsweringQualityInput) Reset() { - *x = QuestionAnsweringQualityInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[54] +func (x *SummarizationHelpfulnessInput) Reset() { + *x = SummarizationHelpfulnessInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringQualityInput) String() string { +func (x *SummarizationHelpfulnessInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringQualityInput) ProtoMessage() {} +func (*SummarizationHelpfulnessInput) ProtoMessage() {} -func (x *QuestionAnsweringQualityInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[54] +func (x *SummarizationHelpfulnessInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4314,27 +4435,27 @@ func (x *QuestionAnsweringQualityInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringQualityInput.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringQualityInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{54} +// Deprecated: Use SummarizationHelpfulnessInput.ProtoReflect.Descriptor instead. +func (*SummarizationHelpfulnessInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{53} } -func (x *QuestionAnsweringQualityInput) GetMetricSpec() *QuestionAnsweringQualitySpec { +func (x *SummarizationHelpfulnessInput) GetMetricSpec() *SummarizationHelpfulnessSpec { if x != nil { return x.MetricSpec } return nil } -func (x *QuestionAnsweringQualityInput) GetInstance() *QuestionAnsweringQualityInstance { +func (x *SummarizationHelpfulnessInput) GetInstance() *SummarizationHelpfulnessInstance { if x != nil { return x.Instance } return nil } -// Spec for question answering quality instance. -type QuestionAnsweringQualityInstance struct { +// Spec for summarization helpfulness instance. +type SummarizationHelpfulnessInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4343,27 +4464,27 @@ type QuestionAnsweringQualityInstance struct { Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` // Optional. Ground truth used to compare against the prediction. Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Required. Text to answer the question. + // Required. Text to be summarized. Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. Question Answering prompt for LLM. + // Optional. Summarization prompt for LLM. Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *QuestionAnsweringQualityInstance) Reset() { - *x = QuestionAnsweringQualityInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[55] +func (x *SummarizationHelpfulnessInstance) Reset() { + *x = SummarizationHelpfulnessInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringQualityInstance) String() string { +func (x *SummarizationHelpfulnessInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringQualityInstance) ProtoMessage() {} +func (*SummarizationHelpfulnessInstance) ProtoMessage() {} -func (x *QuestionAnsweringQualityInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[55] +func (x *SummarizationHelpfulnessInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4374,67 +4495,67 @@ func (x *QuestionAnsweringQualityInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringQualityInstance.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringQualityInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{55} +// Deprecated: Use SummarizationHelpfulnessInstance.ProtoReflect.Descriptor instead. +func (*SummarizationHelpfulnessInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{54} } -func (x *QuestionAnsweringQualityInstance) GetPrediction() string { +func (x *SummarizationHelpfulnessInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *QuestionAnsweringQualityInstance) GetReference() string { +func (x *SummarizationHelpfulnessInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *QuestionAnsweringQualityInstance) GetContext() string { +func (x *SummarizationHelpfulnessInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *QuestionAnsweringQualityInstance) GetInstruction() string { +func (x *SummarizationHelpfulnessInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for question answering quality score metric. -type QuestionAnsweringQualitySpec struct { +// Spec for summarization helpfulness score metric. +type SummarizationHelpfulnessSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Whether to use instance.reference to compute question answering - // quality. + // Optional. Whether to use instance.reference to compute summarization + // helpfulness. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *QuestionAnsweringQualitySpec) Reset() { - *x = QuestionAnsweringQualitySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[56] +func (x *SummarizationHelpfulnessSpec) Reset() { + *x = SummarizationHelpfulnessSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringQualitySpec) String() string { +func (x *SummarizationHelpfulnessSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringQualitySpec) ProtoMessage() {} +func (*SummarizationHelpfulnessSpec) ProtoMessage() {} -func (x *QuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[56] +func (x *SummarizationHelpfulnessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4445,54 +4566,54 @@ func (x *QuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringQualitySpec.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringQualitySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{56} +// Deprecated: Use SummarizationHelpfulnessSpec.ProtoReflect.Descriptor instead. +func (*SummarizationHelpfulnessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{55} } -func (x *QuestionAnsweringQualitySpec) GetUseReference() bool { +func (x *SummarizationHelpfulnessSpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *QuestionAnsweringQualitySpec) GetVersion() int32 { +func (x *SummarizationHelpfulnessSpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for question answering quality result. -type QuestionAnsweringQualityResult struct { +// Spec for summarization helpfulness result. +type SummarizationHelpfulnessResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Question Answering Quality score. + // Output only. Summarization Helpfulness score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for question answering quality score. + // Output only. Explanation for summarization helpfulness score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for question answering quality score. + // Output only. Confidence for summarization helpfulness score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *QuestionAnsweringQualityResult) Reset() { - *x = QuestionAnsweringQualityResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[57] +func (x *SummarizationHelpfulnessResult) Reset() { + *x = SummarizationHelpfulnessResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringQualityResult) String() string { +func (x *SummarizationHelpfulnessResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringQualityResult) ProtoMessage() {} +func (*SummarizationHelpfulnessResult) ProtoMessage() {} -func (x *QuestionAnsweringQualityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[57] +func (x *SummarizationHelpfulnessResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4503,59 +4624,59 @@ func (x *QuestionAnsweringQualityResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringQualityResult.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringQualityResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{57} +// Deprecated: Use SummarizationHelpfulnessResult.ProtoReflect.Descriptor instead. +func (*SummarizationHelpfulnessResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{56} } -func (x *QuestionAnsweringQualityResult) GetScore() float32 { +func (x *SummarizationHelpfulnessResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *QuestionAnsweringQualityResult) GetExplanation() string { +func (x *SummarizationHelpfulnessResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *QuestionAnsweringQualityResult) GetConfidence() float32 { +func (x *SummarizationHelpfulnessResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for pairwise question answering quality metric. -type PairwiseQuestionAnsweringQualityInput struct { +// Input for summarization verbosity metric. +type SummarizationVerbosityInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for pairwise question answering quality score metric. - MetricSpec *PairwiseQuestionAnsweringQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Pairwise question answering quality instance. - Instance *PairwiseQuestionAnsweringQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for summarization verbosity score metric. + MetricSpec *SummarizationVerbositySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Summarization verbosity instance. + Instance *SummarizationVerbosityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *PairwiseQuestionAnsweringQualityInput) Reset() { - *x = PairwiseQuestionAnsweringQualityInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[58] +func (x *SummarizationVerbosityInput) Reset() { + *x = SummarizationVerbosityInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseQuestionAnsweringQualityInput) String() string { +func (x *SummarizationVerbosityInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseQuestionAnsweringQualityInput) ProtoMessage() {} +func (*SummarizationVerbosityInput) ProtoMessage() {} -func (x *PairwiseQuestionAnsweringQualityInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[58] +func (x *SummarizationVerbosityInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4566,58 +4687,56 @@ func (x *PairwiseQuestionAnsweringQualityInput) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PairwiseQuestionAnsweringQualityInput.ProtoReflect.Descriptor instead. -func (*PairwiseQuestionAnsweringQualityInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{58} +// Deprecated: Use SummarizationVerbosityInput.ProtoReflect.Descriptor instead. +func (*SummarizationVerbosityInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{57} } -func (x *PairwiseQuestionAnsweringQualityInput) GetMetricSpec() *PairwiseQuestionAnsweringQualitySpec { +func (x *SummarizationVerbosityInput) GetMetricSpec() *SummarizationVerbositySpec { if x != nil { return x.MetricSpec } return nil } -func (x *PairwiseQuestionAnsweringQualityInput) GetInstance() *PairwiseQuestionAnsweringQualityInstance { +func (x *SummarizationVerbosityInput) GetInstance() *SummarizationVerbosityInstance { if x != nil { return x.Instance } return nil } -// Spec for pairwise question answering quality instance. -type PairwiseQuestionAnsweringQualityInstance struct { +// Spec for summarization verbosity instance. +type SummarizationVerbosityInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the candidate model. + // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Output of the baseline model. - BaselinePrediction *string `protobuf:"bytes,2,opt,name=baseline_prediction,json=baselinePrediction,proto3,oneof" json:"baseline_prediction,omitempty"` // Optional. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,3,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Required. Text to answer the question. - Context *string `protobuf:"bytes,4,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. Question Answering prompt for LLM. - Instruction *string `protobuf:"bytes,5,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Required. Text to be summarized. + Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` + // Optional. Summarization prompt for LLM. + Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *PairwiseQuestionAnsweringQualityInstance) Reset() { - *x = PairwiseQuestionAnsweringQualityInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[59] +func (x *SummarizationVerbosityInstance) Reset() { + *x = SummarizationVerbosityInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseQuestionAnsweringQualityInstance) String() string { +func (x *SummarizationVerbosityInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseQuestionAnsweringQualityInstance) ProtoMessage() {} +func (*SummarizationVerbosityInstance) ProtoMessage() {} -func (x *PairwiseQuestionAnsweringQualityInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[59] +func (x *SummarizationVerbosityInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4628,74 +4747,67 @@ func (x *PairwiseQuestionAnsweringQualityInstance) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PairwiseQuestionAnsweringQualityInstance.ProtoReflect.Descriptor instead. -func (*PairwiseQuestionAnsweringQualityInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{59} -} - -func (x *PairwiseQuestionAnsweringQualityInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction - } - return "" +// Deprecated: Use SummarizationVerbosityInstance.ProtoReflect.Descriptor instead. +func (*SummarizationVerbosityInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{58} } -func (x *PairwiseQuestionAnsweringQualityInstance) GetBaselinePrediction() string { - if x != nil && x.BaselinePrediction != nil { - return *x.BaselinePrediction +func (x *SummarizationVerbosityInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } return "" } -func (x *PairwiseQuestionAnsweringQualityInstance) GetReference() string { +func (x *SummarizationVerbosityInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *PairwiseQuestionAnsweringQualityInstance) GetContext() string { +func (x *SummarizationVerbosityInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *PairwiseQuestionAnsweringQualityInstance) GetInstruction() string { +func (x *SummarizationVerbosityInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for pairwise question answering quality score metric. -type PairwiseQuestionAnsweringQualitySpec struct { +// Spec for summarization verbosity score metric. +type SummarizationVerbositySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional. Whether to use instance.reference to compute question answering - // quality. + // Optional. Whether to use instance.reference to compute summarization + // verbosity. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *PairwiseQuestionAnsweringQualitySpec) Reset() { - *x = PairwiseQuestionAnsweringQualitySpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[60] +func (x *SummarizationVerbositySpec) Reset() { + *x = SummarizationVerbositySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseQuestionAnsweringQualitySpec) String() string { +func (x *SummarizationVerbositySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseQuestionAnsweringQualitySpec) ProtoMessage() {} +func (*SummarizationVerbositySpec) ProtoMessage() {} -func (x *PairwiseQuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[60] +func (x *SummarizationVerbositySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4706,54 +4818,54 @@ func (x *PairwiseQuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PairwiseQuestionAnsweringQualitySpec.ProtoReflect.Descriptor instead. -func (*PairwiseQuestionAnsweringQualitySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{60} +// Deprecated: Use SummarizationVerbositySpec.ProtoReflect.Descriptor instead. +func (*SummarizationVerbositySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{59} } -func (x *PairwiseQuestionAnsweringQualitySpec) GetUseReference() bool { +func (x *SummarizationVerbositySpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *PairwiseQuestionAnsweringQualitySpec) GetVersion() int32 { +func (x *SummarizationVerbositySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for pairwise question answering quality result. -type PairwiseQuestionAnsweringQualityResult struct { +// Spec for summarization verbosity result. +type SummarizationVerbosityResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Pairwise question answering prediction choice. - PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` - // Output only. Explanation for question answering quality score. + // Output only. Summarization Verbosity score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Output only. Explanation for summarization verbosity score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for question answering quality score. + // Output only. Confidence for summarization verbosity score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *PairwiseQuestionAnsweringQualityResult) Reset() { - *x = PairwiseQuestionAnsweringQualityResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[61] +func (x *SummarizationVerbosityResult) Reset() { + *x = SummarizationVerbosityResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseQuestionAnsweringQualityResult) String() string { +func (x *SummarizationVerbosityResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseQuestionAnsweringQualityResult) ProtoMessage() {} +func (*SummarizationVerbosityResult) ProtoMessage() {} -func (x *PairwiseQuestionAnsweringQualityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[61] +func (x *SummarizationVerbosityResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4764,59 +4876,59 @@ func (x *PairwiseQuestionAnsweringQualityResult) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PairwiseQuestionAnsweringQualityResult.ProtoReflect.Descriptor instead. -func (*PairwiseQuestionAnsweringQualityResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{61} +// Deprecated: Use SummarizationVerbosityResult.ProtoReflect.Descriptor instead. +func (*SummarizationVerbosityResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{60} } -func (x *PairwiseQuestionAnsweringQualityResult) GetPairwiseChoice() PairwiseChoice { - if x != nil { - return x.PairwiseChoice +func (x *SummarizationVerbosityResult) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED + return 0 } -func (x *PairwiseQuestionAnsweringQualityResult) GetExplanation() string { +func (x *SummarizationVerbosityResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *PairwiseQuestionAnsweringQualityResult) GetConfidence() float32 { +func (x *SummarizationVerbosityResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for question answering relevance metric. -type QuestionAnsweringRelevanceInput struct { +// Input for question answering quality metric. +type QuestionAnsweringQualityInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for question answering relevance score metric. - MetricSpec *QuestionAnsweringRelevanceSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Question answering relevance instance. - Instance *QuestionAnsweringRelevanceInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for question answering quality score metric. + MetricSpec *QuestionAnsweringQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Question answering quality instance. + Instance *QuestionAnsweringQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *QuestionAnsweringRelevanceInput) Reset() { - *x = QuestionAnsweringRelevanceInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[62] +func (x *QuestionAnsweringQualityInput) Reset() { + *x = QuestionAnsweringQualityInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringRelevanceInput) String() string { +func (x *QuestionAnsweringQualityInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringRelevanceInput) ProtoMessage() {} +func (*QuestionAnsweringQualityInput) ProtoMessage() {} -func (x *QuestionAnsweringRelevanceInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[62] +func (x *QuestionAnsweringQualityInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4827,27 +4939,27 @@ func (x *QuestionAnsweringRelevanceInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringRelevanceInput.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringRelevanceInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{62} +// Deprecated: Use QuestionAnsweringQualityInput.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringQualityInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{61} } -func (x *QuestionAnsweringRelevanceInput) GetMetricSpec() *QuestionAnsweringRelevanceSpec { +func (x *QuestionAnsweringQualityInput) GetMetricSpec() *QuestionAnsweringQualitySpec { if x != nil { return x.MetricSpec } return nil } -func (x *QuestionAnsweringRelevanceInput) GetInstance() *QuestionAnsweringRelevanceInstance { +func (x *QuestionAnsweringQualityInput) GetInstance() *QuestionAnsweringQualityInstance { if x != nil { return x.Instance } return nil } -// Spec for question answering relevance instance. -type QuestionAnsweringRelevanceInstance struct { +// Spec for question answering quality instance. +type QuestionAnsweringQualityInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4856,27 +4968,27 @@ type QuestionAnsweringRelevanceInstance struct { Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` // Optional. Ground truth used to compare against the prediction. Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Optional. Text provided as context to answer the question. + // Required. Text to answer the question. Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. The question asked and other instruction in the inference prompt. + // Required. Question Answering prompt for LLM. Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *QuestionAnsweringRelevanceInstance) Reset() { - *x = QuestionAnsweringRelevanceInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[63] +func (x *QuestionAnsweringQualityInstance) Reset() { + *x = QuestionAnsweringQualityInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringRelevanceInstance) String() string { +func (x *QuestionAnsweringQualityInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringRelevanceInstance) ProtoMessage() {} +func (*QuestionAnsweringQualityInstance) ProtoMessage() {} -func (x *QuestionAnsweringRelevanceInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[63] +func (x *QuestionAnsweringQualityInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4887,67 +4999,67 @@ func (x *QuestionAnsweringRelevanceInstance) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringRelevanceInstance.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringRelevanceInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{63} +// Deprecated: Use QuestionAnsweringQualityInstance.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringQualityInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{62} } -func (x *QuestionAnsweringRelevanceInstance) GetPrediction() string { +func (x *QuestionAnsweringQualityInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *QuestionAnsweringRelevanceInstance) GetReference() string { +func (x *QuestionAnsweringQualityInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *QuestionAnsweringRelevanceInstance) GetContext() string { +func (x *QuestionAnsweringQualityInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *QuestionAnsweringRelevanceInstance) GetInstruction() string { +func (x *QuestionAnsweringQualityInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for question answering relevance metric. -type QuestionAnsweringRelevanceSpec struct { +// Spec for question answering quality score metric. +type QuestionAnsweringQualitySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether to use instance.reference to compute question answering - // relevance. + // quality. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *QuestionAnsweringRelevanceSpec) Reset() { - *x = QuestionAnsweringRelevanceSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[64] +func (x *QuestionAnsweringQualitySpec) Reset() { + *x = QuestionAnsweringQualitySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringRelevanceSpec) String() string { +func (x *QuestionAnsweringQualitySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringRelevanceSpec) ProtoMessage() {} +func (*QuestionAnsweringQualitySpec) ProtoMessage() {} -func (x *QuestionAnsweringRelevanceSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[64] +func (x *QuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4958,54 +5070,54 @@ func (x *QuestionAnsweringRelevanceSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringRelevanceSpec.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringRelevanceSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{64} +// Deprecated: Use QuestionAnsweringQualitySpec.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringQualitySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{63} } -func (x *QuestionAnsweringRelevanceSpec) GetUseReference() bool { +func (x *QuestionAnsweringQualitySpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *QuestionAnsweringRelevanceSpec) GetVersion() int32 { +func (x *QuestionAnsweringQualitySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for question answering relevance result. -type QuestionAnsweringRelevanceResult struct { +// Spec for question answering quality result. +type QuestionAnsweringQualityResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Question Answering Relevance score. + // Output only. Question Answering Quality score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for question answering relevance score. + // Output only. Explanation for question answering quality score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for question answering relevance score. + // Output only. Confidence for question answering quality score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *QuestionAnsweringRelevanceResult) Reset() { - *x = QuestionAnsweringRelevanceResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[65] +func (x *QuestionAnsweringQualityResult) Reset() { + *x = QuestionAnsweringQualityResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringRelevanceResult) String() string { +func (x *QuestionAnsweringQualityResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringRelevanceResult) ProtoMessage() {} +func (*QuestionAnsweringQualityResult) ProtoMessage() {} -func (x *QuestionAnsweringRelevanceResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[65] +func (x *QuestionAnsweringQualityResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5016,59 +5128,59 @@ func (x *QuestionAnsweringRelevanceResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringRelevanceResult.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringRelevanceResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{65} +// Deprecated: Use QuestionAnsweringQualityResult.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringQualityResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{64} } -func (x *QuestionAnsweringRelevanceResult) GetScore() float32 { +func (x *QuestionAnsweringQualityResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *QuestionAnsweringRelevanceResult) GetExplanation() string { +func (x *QuestionAnsweringQualityResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *QuestionAnsweringRelevanceResult) GetConfidence() float32 { +func (x *QuestionAnsweringQualityResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for question answering helpfulness metric. -type QuestionAnsweringHelpfulnessInput struct { +// Input for pairwise question answering quality metric. +type PairwiseQuestionAnsweringQualityInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for question answering helpfulness score metric. - MetricSpec *QuestionAnsweringHelpfulnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Question answering helpfulness instance. - Instance *QuestionAnsweringHelpfulnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for pairwise question answering quality score metric. + MetricSpec *PairwiseQuestionAnsweringQualitySpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Pairwise question answering quality instance. + Instance *PairwiseQuestionAnsweringQualityInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *QuestionAnsweringHelpfulnessInput) Reset() { - *x = QuestionAnsweringHelpfulnessInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[66] +func (x *PairwiseQuestionAnsweringQualityInput) Reset() { + *x = PairwiseQuestionAnsweringQualityInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringHelpfulnessInput) String() string { +func (x *PairwiseQuestionAnsweringQualityInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringHelpfulnessInput) ProtoMessage() {} +func (*PairwiseQuestionAnsweringQualityInput) ProtoMessage() {} -func (x *QuestionAnsweringHelpfulnessInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[66] +func (x *PairwiseQuestionAnsweringQualityInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5079,56 +5191,58 @@ func (x *QuestionAnsweringHelpfulnessInput) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringHelpfulnessInput.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringHelpfulnessInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{66} +// Deprecated: Use PairwiseQuestionAnsweringQualityInput.ProtoReflect.Descriptor instead. +func (*PairwiseQuestionAnsweringQualityInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{65} } -func (x *QuestionAnsweringHelpfulnessInput) GetMetricSpec() *QuestionAnsweringHelpfulnessSpec { +func (x *PairwiseQuestionAnsweringQualityInput) GetMetricSpec() *PairwiseQuestionAnsweringQualitySpec { if x != nil { return x.MetricSpec } return nil } -func (x *QuestionAnsweringHelpfulnessInput) GetInstance() *QuestionAnsweringHelpfulnessInstance { +func (x *PairwiseQuestionAnsweringQualityInput) GetInstance() *PairwiseQuestionAnsweringQualityInstance { if x != nil { return x.Instance } return nil } -// Spec for question answering helpfulness instance. -type QuestionAnsweringHelpfulnessInstance struct { +// Spec for pairwise question answering quality instance. +type PairwiseQuestionAnsweringQualityInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Output of the evaluated model. + // Required. Output of the candidate model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Required. Output of the baseline model. + BaselinePrediction *string `protobuf:"bytes,2,opt,name=baseline_prediction,json=baselinePrediction,proto3,oneof" json:"baseline_prediction,omitempty"` // Optional. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Optional. Text provided as context to answer the question. - Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` - // Required. The question asked and other instruction in the inference prompt. - Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` + Reference *string `protobuf:"bytes,3,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Required. Text to answer the question. + Context *string `protobuf:"bytes,4,opt,name=context,proto3,oneof" json:"context,omitempty"` + // Required. Question Answering prompt for LLM. + Instruction *string `protobuf:"bytes,5,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *QuestionAnsweringHelpfulnessInstance) Reset() { - *x = QuestionAnsweringHelpfulnessInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[67] +func (x *PairwiseQuestionAnsweringQualityInstance) Reset() { + *x = PairwiseQuestionAnsweringQualityInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringHelpfulnessInstance) String() string { +func (x *PairwiseQuestionAnsweringQualityInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringHelpfulnessInstance) ProtoMessage() {} +func (*PairwiseQuestionAnsweringQualityInstance) ProtoMessage() {} -func (x *QuestionAnsweringHelpfulnessInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[67] +func (x *PairwiseQuestionAnsweringQualityInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5139,67 +5253,74 @@ func (x *QuestionAnsweringHelpfulnessInstance) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringHelpfulnessInstance.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringHelpfulnessInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{67} +// Deprecated: Use PairwiseQuestionAnsweringQualityInstance.ProtoReflect.Descriptor instead. +func (*PairwiseQuestionAnsweringQualityInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{66} } -func (x *QuestionAnsweringHelpfulnessInstance) GetPrediction() string { +func (x *PairwiseQuestionAnsweringQualityInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *QuestionAnsweringHelpfulnessInstance) GetReference() string { +func (x *PairwiseQuestionAnsweringQualityInstance) GetBaselinePrediction() string { + if x != nil && x.BaselinePrediction != nil { + return *x.BaselinePrediction + } + return "" +} + +func (x *PairwiseQuestionAnsweringQualityInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *QuestionAnsweringHelpfulnessInstance) GetContext() string { +func (x *PairwiseQuestionAnsweringQualityInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *QuestionAnsweringHelpfulnessInstance) GetInstruction() string { +func (x *PairwiseQuestionAnsweringQualityInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for question answering helpfulness metric. -type QuestionAnsweringHelpfulnessSpec struct { +// Spec for pairwise question answering quality score metric. +type PairwiseQuestionAnsweringQualitySpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether to use instance.reference to compute question answering - // helpfulness. + // quality. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *QuestionAnsweringHelpfulnessSpec) Reset() { - *x = QuestionAnsweringHelpfulnessSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[68] +func (x *PairwiseQuestionAnsweringQualitySpec) Reset() { + *x = PairwiseQuestionAnsweringQualitySpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringHelpfulnessSpec) String() string { +func (x *PairwiseQuestionAnsweringQualitySpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringHelpfulnessSpec) ProtoMessage() {} +func (*PairwiseQuestionAnsweringQualitySpec) ProtoMessage() {} -func (x *QuestionAnsweringHelpfulnessSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[68] +func (x *PairwiseQuestionAnsweringQualitySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5210,54 +5331,54 @@ func (x *QuestionAnsweringHelpfulnessSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringHelpfulnessSpec.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringHelpfulnessSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{68} +// Deprecated: Use PairwiseQuestionAnsweringQualitySpec.ProtoReflect.Descriptor instead. +func (*PairwiseQuestionAnsweringQualitySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{67} } -func (x *QuestionAnsweringHelpfulnessSpec) GetUseReference() bool { +func (x *PairwiseQuestionAnsweringQualitySpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *QuestionAnsweringHelpfulnessSpec) GetVersion() int32 { +func (x *PairwiseQuestionAnsweringQualitySpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for question answering helpfulness result. -type QuestionAnsweringHelpfulnessResult struct { +// Spec for pairwise question answering quality result. +type PairwiseQuestionAnsweringQualityResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Question Answering Helpfulness score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for question answering helpfulness score. + // Output only. Pairwise question answering prediction choice. + PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` + // Output only. Explanation for question answering quality score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for question answering helpfulness score. + // Output only. Confidence for question answering quality score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *QuestionAnsweringHelpfulnessResult) Reset() { - *x = QuestionAnsweringHelpfulnessResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[69] +func (x *PairwiseQuestionAnsweringQualityResult) Reset() { + *x = PairwiseQuestionAnsweringQualityResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringHelpfulnessResult) String() string { +func (x *PairwiseQuestionAnsweringQualityResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringHelpfulnessResult) ProtoMessage() {} +func (*PairwiseQuestionAnsweringQualityResult) ProtoMessage() {} -func (x *QuestionAnsweringHelpfulnessResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[69] +func (x *PairwiseQuestionAnsweringQualityResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5268,59 +5389,59 @@ func (x *QuestionAnsweringHelpfulnessResult) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringHelpfulnessResult.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringHelpfulnessResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{69} +// Deprecated: Use PairwiseQuestionAnsweringQualityResult.ProtoReflect.Descriptor instead. +func (*PairwiseQuestionAnsweringQualityResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{68} } -func (x *QuestionAnsweringHelpfulnessResult) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *PairwiseQuestionAnsweringQualityResult) GetPairwiseChoice() PairwiseChoice { + if x != nil { + return x.PairwiseChoice } - return 0 + return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED } -func (x *QuestionAnsweringHelpfulnessResult) GetExplanation() string { +func (x *PairwiseQuestionAnsweringQualityResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *QuestionAnsweringHelpfulnessResult) GetConfidence() float32 { +func (x *PairwiseQuestionAnsweringQualityResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for question answering correctness metric. -type QuestionAnsweringCorrectnessInput struct { +// Input for question answering relevance metric. +type QuestionAnsweringRelevanceInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for question answering correctness score metric. - MetricSpec *QuestionAnsweringCorrectnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Question answering correctness instance. - Instance *QuestionAnsweringCorrectnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for question answering relevance score metric. + MetricSpec *QuestionAnsweringRelevanceSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Question answering relevance instance. + Instance *QuestionAnsweringRelevanceInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *QuestionAnsweringCorrectnessInput) Reset() { - *x = QuestionAnsweringCorrectnessInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[70] +func (x *QuestionAnsweringRelevanceInput) Reset() { + *x = QuestionAnsweringRelevanceInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringCorrectnessInput) String() string { +func (x *QuestionAnsweringRelevanceInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringCorrectnessInput) ProtoMessage() {} +func (*QuestionAnsweringRelevanceInput) ProtoMessage() {} -func (x *QuestionAnsweringCorrectnessInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[70] +func (x *QuestionAnsweringRelevanceInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5331,27 +5452,27 @@ func (x *QuestionAnsweringCorrectnessInput) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringCorrectnessInput.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringCorrectnessInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{70} +// Deprecated: Use QuestionAnsweringRelevanceInput.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringRelevanceInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{69} } -func (x *QuestionAnsweringCorrectnessInput) GetMetricSpec() *QuestionAnsweringCorrectnessSpec { +func (x *QuestionAnsweringRelevanceInput) GetMetricSpec() *QuestionAnsweringRelevanceSpec { if x != nil { return x.MetricSpec } return nil } -func (x *QuestionAnsweringCorrectnessInput) GetInstance() *QuestionAnsweringCorrectnessInstance { +func (x *QuestionAnsweringRelevanceInput) GetInstance() *QuestionAnsweringRelevanceInstance { if x != nil { return x.Instance } return nil } -// Spec for question answering correctness instance. -type QuestionAnsweringCorrectnessInstance struct { +// Spec for question answering relevance instance. +type QuestionAnsweringRelevanceInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5366,21 +5487,21 @@ type QuestionAnsweringCorrectnessInstance struct { Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *QuestionAnsweringCorrectnessInstance) Reset() { - *x = QuestionAnsweringCorrectnessInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[71] +func (x *QuestionAnsweringRelevanceInstance) Reset() { + *x = QuestionAnsweringRelevanceInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringCorrectnessInstance) String() string { +func (x *QuestionAnsweringRelevanceInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringCorrectnessInstance) ProtoMessage() {} +func (*QuestionAnsweringRelevanceInstance) ProtoMessage() {} -func (x *QuestionAnsweringCorrectnessInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[71] +func (x *QuestionAnsweringRelevanceInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5391,67 +5512,67 @@ func (x *QuestionAnsweringCorrectnessInstance) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringCorrectnessInstance.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringCorrectnessInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{71} +// Deprecated: Use QuestionAnsweringRelevanceInstance.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringRelevanceInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{70} } -func (x *QuestionAnsweringCorrectnessInstance) GetPrediction() string { +func (x *QuestionAnsweringRelevanceInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *QuestionAnsweringCorrectnessInstance) GetReference() string { +func (x *QuestionAnsweringRelevanceInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *QuestionAnsweringCorrectnessInstance) GetContext() string { +func (x *QuestionAnsweringRelevanceInstance) GetContext() string { if x != nil && x.Context != nil { return *x.Context } return "" } -func (x *QuestionAnsweringCorrectnessInstance) GetInstruction() string { +func (x *QuestionAnsweringRelevanceInstance) GetInstruction() string { if x != nil && x.Instruction != nil { return *x.Instruction } return "" } -// Spec for question answering correctness metric. -type QuestionAnsweringCorrectnessSpec struct { +// Spec for question answering relevance metric. +type QuestionAnsweringRelevanceSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Whether to use instance.reference to compute question answering - // correctness. + // relevance. UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` // Optional. Which version to use for evaluation. Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *QuestionAnsweringCorrectnessSpec) Reset() { - *x = QuestionAnsweringCorrectnessSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[72] +func (x *QuestionAnsweringRelevanceSpec) Reset() { + *x = QuestionAnsweringRelevanceSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringCorrectnessSpec) String() string { +func (x *QuestionAnsweringRelevanceSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringCorrectnessSpec) ProtoMessage() {} +func (*QuestionAnsweringRelevanceSpec) ProtoMessage() {} -func (x *QuestionAnsweringCorrectnessSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[72] +func (x *QuestionAnsweringRelevanceSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5462,54 +5583,54 @@ func (x *QuestionAnsweringCorrectnessSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringCorrectnessSpec.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringCorrectnessSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{72} +// Deprecated: Use QuestionAnsweringRelevanceSpec.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringRelevanceSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{71} } -func (x *QuestionAnsweringCorrectnessSpec) GetUseReference() bool { +func (x *QuestionAnsweringRelevanceSpec) GetUseReference() bool { if x != nil { return x.UseReference } return false } -func (x *QuestionAnsweringCorrectnessSpec) GetVersion() int32 { +func (x *QuestionAnsweringRelevanceSpec) GetVersion() int32 { if x != nil { return x.Version } return 0 } -// Spec for question answering correctness result. -type QuestionAnsweringCorrectnessResult struct { +// Spec for question answering relevance result. +type QuestionAnsweringRelevanceResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Question Answering Correctness score. + // Output only. Question Answering Relevance score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for question answering correctness score. + // Output only. Explanation for question answering relevance score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - // Output only. Confidence for question answering correctness score. + // Output only. Confidence for question answering relevance score. Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *QuestionAnsweringCorrectnessResult) Reset() { - *x = QuestionAnsweringCorrectnessResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[73] +func (x *QuestionAnsweringRelevanceResult) Reset() { + *x = QuestionAnsweringRelevanceResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *QuestionAnsweringCorrectnessResult) String() string { +func (x *QuestionAnsweringRelevanceResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuestionAnsweringCorrectnessResult) ProtoMessage() {} +func (*QuestionAnsweringRelevanceResult) ProtoMessage() {} -func (x *QuestionAnsweringCorrectnessResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[73] +func (x *QuestionAnsweringRelevanceResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5520,59 +5641,59 @@ func (x *QuestionAnsweringCorrectnessResult) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use QuestionAnsweringCorrectnessResult.ProtoReflect.Descriptor instead. -func (*QuestionAnsweringCorrectnessResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{73} +// Deprecated: Use QuestionAnsweringRelevanceResult.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringRelevanceResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{72} } -func (x *QuestionAnsweringCorrectnessResult) GetScore() float32 { +func (x *QuestionAnsweringRelevanceResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *QuestionAnsweringCorrectnessResult) GetExplanation() string { +func (x *QuestionAnsweringRelevanceResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -func (x *QuestionAnsweringCorrectnessResult) GetConfidence() float32 { +func (x *QuestionAnsweringRelevanceResult) GetConfidence() float32 { if x != nil && x.Confidence != nil { return *x.Confidence } return 0 } -// Input for pointwise metric. -type PointwiseMetricInput struct { +// Input for question answering helpfulness metric. +type QuestionAnsweringHelpfulnessInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for pointwise metric. - MetricSpec *PointwiseMetricSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Pointwise metric instance. - Instance *PointwiseMetricInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for question answering helpfulness score metric. + MetricSpec *QuestionAnsweringHelpfulnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Question answering helpfulness instance. + Instance *QuestionAnsweringHelpfulnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *PointwiseMetricInput) Reset() { - *x = PointwiseMetricInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[74] +func (x *QuestionAnsweringHelpfulnessInput) Reset() { + *x = QuestionAnsweringHelpfulnessInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PointwiseMetricInput) String() string { +func (x *QuestionAnsweringHelpfulnessInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PointwiseMetricInput) ProtoMessage() {} +func (*QuestionAnsweringHelpfulnessInput) ProtoMessage() {} -func (x *PointwiseMetricInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[74] +func (x *QuestionAnsweringHelpfulnessInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5583,55 +5704,56 @@ func (x *PointwiseMetricInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PointwiseMetricInput.ProtoReflect.Descriptor instead. -func (*PointwiseMetricInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{74} +// Deprecated: Use QuestionAnsweringHelpfulnessInput.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringHelpfulnessInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{73} } -func (x *PointwiseMetricInput) GetMetricSpec() *PointwiseMetricSpec { +func (x *QuestionAnsweringHelpfulnessInput) GetMetricSpec() *QuestionAnsweringHelpfulnessSpec { if x != nil { return x.MetricSpec } return nil } -func (x *PointwiseMetricInput) GetInstance() *PointwiseMetricInstance { +func (x *QuestionAnsweringHelpfulnessInput) GetInstance() *QuestionAnsweringHelpfulnessInstance { if x != nil { return x.Instance } return nil } -// Pointwise metric instance. Usually one instance corresponds to one row in an -// evaluation dataset. -type PointwiseMetricInstance struct { +// Spec for question answering helpfulness instance. +type QuestionAnsweringHelpfulnessInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Instance for pointwise metric. - // - // Types that are assignable to Instance: - // - // *PointwiseMetricInstance_JsonInstance - Instance isPointwiseMetricInstance_Instance `protobuf_oneof:"instance"` + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Optional. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Optional. Text provided as context to answer the question. + Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` + // Required. The question asked and other instruction in the inference prompt. + Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *PointwiseMetricInstance) Reset() { - *x = PointwiseMetricInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[75] +func (x *QuestionAnsweringHelpfulnessInstance) Reset() { + *x = QuestionAnsweringHelpfulnessInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PointwiseMetricInstance) String() string { +func (x *QuestionAnsweringHelpfulnessInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PointwiseMetricInstance) ProtoMessage() {} +func (*QuestionAnsweringHelpfulnessInstance) ProtoMessage() {} -func (x *PointwiseMetricInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[75] +func (x *QuestionAnsweringHelpfulnessInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5642,65 +5764,67 @@ func (x *PointwiseMetricInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PointwiseMetricInstance.ProtoReflect.Descriptor instead. -func (*PointwiseMetricInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{75} +// Deprecated: Use QuestionAnsweringHelpfulnessInstance.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringHelpfulnessInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{74} } -func (m *PointwiseMetricInstance) GetInstance() isPointwiseMetricInstance_Instance { - if m != nil { - return m.Instance +func (x *QuestionAnsweringHelpfulnessInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } - return nil + return "" } -func (x *PointwiseMetricInstance) GetJsonInstance() string { - if x, ok := x.GetInstance().(*PointwiseMetricInstance_JsonInstance); ok { - return x.JsonInstance +func (x *QuestionAnsweringHelpfulnessInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference } return "" } -type isPointwiseMetricInstance_Instance interface { - isPointwiseMetricInstance_Instance() +func (x *QuestionAnsweringHelpfulnessInstance) GetContext() string { + if x != nil && x.Context != nil { + return *x.Context + } + return "" } -type PointwiseMetricInstance_JsonInstance struct { - // Instance specified as a json string. String key-value pairs are expected - // in the json_instance to render - // PointwiseMetricSpec.instance_prompt_template. - JsonInstance string `protobuf:"bytes,1,opt,name=json_instance,json=jsonInstance,proto3,oneof"` +func (x *QuestionAnsweringHelpfulnessInstance) GetInstruction() string { + if x != nil && x.Instruction != nil { + return *x.Instruction + } + return "" } -func (*PointwiseMetricInstance_JsonInstance) isPointwiseMetricInstance_Instance() {} - -// Spec for pointwise metric. -type PointwiseMetricSpec struct { +// Spec for question answering helpfulness metric. +type QuestionAnsweringHelpfulnessSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Metric prompt template for pointwise metric. - MetricPromptTemplate *string `protobuf:"bytes,1,opt,name=metric_prompt_template,json=metricPromptTemplate,proto3,oneof" json:"metric_prompt_template,omitempty"` - // Optional. System instructions for pointwise metric. - SystemInstruction *string `protobuf:"bytes,2,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` + // Optional. Whether to use instance.reference to compute question answering + // helpfulness. + UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` + // Optional. Which version to use for evaluation. + Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *PointwiseMetricSpec) Reset() { - *x = PointwiseMetricSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76] +func (x *QuestionAnsweringHelpfulnessSpec) Reset() { + *x = QuestionAnsweringHelpfulnessSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PointwiseMetricSpec) String() string { +func (x *QuestionAnsweringHelpfulnessSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PointwiseMetricSpec) ProtoMessage() {} +func (*QuestionAnsweringHelpfulnessSpec) ProtoMessage() {} -func (x *PointwiseMetricSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76] +func (x *QuestionAnsweringHelpfulnessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5711,52 +5835,54 @@ func (x *PointwiseMetricSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PointwiseMetricSpec.ProtoReflect.Descriptor instead. -func (*PointwiseMetricSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{76} +// Deprecated: Use QuestionAnsweringHelpfulnessSpec.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringHelpfulnessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{75} } -func (x *PointwiseMetricSpec) GetMetricPromptTemplate() string { - if x != nil && x.MetricPromptTemplate != nil { - return *x.MetricPromptTemplate +func (x *QuestionAnsweringHelpfulnessSpec) GetUseReference() bool { + if x != nil { + return x.UseReference } - return "" + return false } -func (x *PointwiseMetricSpec) GetSystemInstruction() string { - if x != nil && x.SystemInstruction != nil { - return *x.SystemInstruction +func (x *QuestionAnsweringHelpfulnessSpec) GetVersion() int32 { + if x != nil { + return x.Version } - return "" + return 0 } -// Spec for pointwise metric result. -type PointwiseMetricResult struct { +// Spec for question answering helpfulness result. +type QuestionAnsweringHelpfulnessResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Pointwise metric score. + // Output only. Question Answering Helpfulness score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` - // Output only. Explanation for pointwise metric score. + // Output only. Explanation for question answering helpfulness score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` + // Output only. Confidence for question answering helpfulness score. + Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *PointwiseMetricResult) Reset() { - *x = PointwiseMetricResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[77] +func (x *QuestionAnsweringHelpfulnessResult) Reset() { + *x = QuestionAnsweringHelpfulnessResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PointwiseMetricResult) String() string { +func (x *QuestionAnsweringHelpfulnessResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PointwiseMetricResult) ProtoMessage() {} +func (*QuestionAnsweringHelpfulnessResult) ProtoMessage() {} -func (x *PointwiseMetricResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[77] +func (x *QuestionAnsweringHelpfulnessResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5767,52 +5893,59 @@ func (x *PointwiseMetricResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PointwiseMetricResult.ProtoReflect.Descriptor instead. -func (*PointwiseMetricResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{77} +// Deprecated: Use QuestionAnsweringHelpfulnessResult.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringHelpfulnessResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{76} } -func (x *PointwiseMetricResult) GetScore() float32 { +func (x *QuestionAnsweringHelpfulnessResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -func (x *PointwiseMetricResult) GetExplanation() string { +func (x *QuestionAnsweringHelpfulnessResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -// Input for pairwise metric. -type PairwiseMetricInput struct { +func (x *QuestionAnsweringHelpfulnessResult) GetConfidence() float32 { + if x != nil && x.Confidence != nil { + return *x.Confidence + } + return 0 +} + +// Input for question answering correctness metric. +type QuestionAnsweringCorrectnessInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for pairwise metric. - MetricSpec *PairwiseMetricSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Pairwise metric instance. - Instance *PairwiseMetricInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for question answering correctness score metric. + MetricSpec *QuestionAnsweringCorrectnessSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Question answering correctness instance. + Instance *QuestionAnsweringCorrectnessInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *PairwiseMetricInput) Reset() { - *x = PairwiseMetricInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[78] +func (x *QuestionAnsweringCorrectnessInput) Reset() { + *x = QuestionAnsweringCorrectnessInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseMetricInput) String() string { +func (x *QuestionAnsweringCorrectnessInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseMetricInput) ProtoMessage() {} +func (*QuestionAnsweringCorrectnessInput) ProtoMessage() {} -func (x *PairwiseMetricInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[78] +func (x *QuestionAnsweringCorrectnessInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5823,55 +5956,56 @@ func (x *PairwiseMetricInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PairwiseMetricInput.ProtoReflect.Descriptor instead. -func (*PairwiseMetricInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{78} +// Deprecated: Use QuestionAnsweringCorrectnessInput.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringCorrectnessInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{77} } -func (x *PairwiseMetricInput) GetMetricSpec() *PairwiseMetricSpec { +func (x *QuestionAnsweringCorrectnessInput) GetMetricSpec() *QuestionAnsweringCorrectnessSpec { if x != nil { return x.MetricSpec } return nil } -func (x *PairwiseMetricInput) GetInstance() *PairwiseMetricInstance { +func (x *QuestionAnsweringCorrectnessInput) GetInstance() *QuestionAnsweringCorrectnessInstance { if x != nil { return x.Instance } return nil } -// Pairwise metric instance. Usually one instance corresponds to one row in an -// evaluation dataset. -type PairwiseMetricInstance struct { +// Spec for question answering correctness instance. +type QuestionAnsweringCorrectnessInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Instance for pairwise metric. - // - // Types that are assignable to Instance: - // - // *PairwiseMetricInstance_JsonInstance - Instance isPairwiseMetricInstance_Instance `protobuf_oneof:"instance"` + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Optional. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Optional. Text provided as context to answer the question. + Context *string `protobuf:"bytes,3,opt,name=context,proto3,oneof" json:"context,omitempty"` + // Required. The question asked and other instruction in the inference prompt. + Instruction *string `protobuf:"bytes,4,opt,name=instruction,proto3,oneof" json:"instruction,omitempty"` } -func (x *PairwiseMetricInstance) Reset() { - *x = PairwiseMetricInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[79] +func (x *QuestionAnsweringCorrectnessInstance) Reset() { + *x = QuestionAnsweringCorrectnessInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseMetricInstance) String() string { +func (x *QuestionAnsweringCorrectnessInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseMetricInstance) ProtoMessage() {} +func (*QuestionAnsweringCorrectnessInstance) ProtoMessage() {} -func (x *PairwiseMetricInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[79] +func (x *QuestionAnsweringCorrectnessInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5882,69 +6016,67 @@ func (x *PairwiseMetricInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PairwiseMetricInstance.ProtoReflect.Descriptor instead. -func (*PairwiseMetricInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{79} +// Deprecated: Use QuestionAnsweringCorrectnessInstance.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringCorrectnessInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{78} } -func (m *PairwiseMetricInstance) GetInstance() isPairwiseMetricInstance_Instance { - if m != nil { - return m.Instance +func (x *QuestionAnsweringCorrectnessInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } - return nil + return "" } -func (x *PairwiseMetricInstance) GetJsonInstance() string { - if x, ok := x.GetInstance().(*PairwiseMetricInstance_JsonInstance); ok { - return x.JsonInstance +func (x *QuestionAnsweringCorrectnessInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference } return "" } -type isPairwiseMetricInstance_Instance interface { - isPairwiseMetricInstance_Instance() +func (x *QuestionAnsweringCorrectnessInstance) GetContext() string { + if x != nil && x.Context != nil { + return *x.Context + } + return "" } -type PairwiseMetricInstance_JsonInstance struct { - // Instance specified as a json string. String key-value pairs are expected - // in the json_instance to render - // PairwiseMetricSpec.instance_prompt_template. - JsonInstance string `protobuf:"bytes,1,opt,name=json_instance,json=jsonInstance,proto3,oneof"` +func (x *QuestionAnsweringCorrectnessInstance) GetInstruction() string { + if x != nil && x.Instruction != nil { + return *x.Instruction + } + return "" } -func (*PairwiseMetricInstance_JsonInstance) isPairwiseMetricInstance_Instance() {} - -// Spec for pairwise metric. -type PairwiseMetricSpec struct { +// Spec for question answering correctness metric. +type QuestionAnsweringCorrectnessSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Metric prompt template for pairwise metric. - MetricPromptTemplate *string `protobuf:"bytes,1,opt,name=metric_prompt_template,json=metricPromptTemplate,proto3,oneof" json:"metric_prompt_template,omitempty"` - // Optional. The field name of the candidate response. - CandidateResponseFieldName string `protobuf:"bytes,2,opt,name=candidate_response_field_name,json=candidateResponseFieldName,proto3" json:"candidate_response_field_name,omitempty"` - // Optional. The field name of the baseline response. - BaselineResponseFieldName string `protobuf:"bytes,3,opt,name=baseline_response_field_name,json=baselineResponseFieldName,proto3" json:"baseline_response_field_name,omitempty"` - // Optional. System instructions for pairwise metric. - SystemInstruction *string `protobuf:"bytes,4,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` + // Optional. Whether to use instance.reference to compute question answering + // correctness. + UseReference bool `protobuf:"varint,1,opt,name=use_reference,json=useReference,proto3" json:"use_reference,omitempty"` + // Optional. Which version to use for evaluation. + Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *PairwiseMetricSpec) Reset() { - *x = PairwiseMetricSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80] +func (x *QuestionAnsweringCorrectnessSpec) Reset() { + *x = QuestionAnsweringCorrectnessSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseMetricSpec) String() string { +func (x *QuestionAnsweringCorrectnessSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseMetricSpec) ProtoMessage() {} +func (*QuestionAnsweringCorrectnessSpec) ProtoMessage() {} -func (x *PairwiseMetricSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80] +func (x *QuestionAnsweringCorrectnessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5955,66 +6087,54 @@ func (x *PairwiseMetricSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PairwiseMetricSpec.ProtoReflect.Descriptor instead. -func (*PairwiseMetricSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{80} -} - -func (x *PairwiseMetricSpec) GetMetricPromptTemplate() string { - if x != nil && x.MetricPromptTemplate != nil { - return *x.MetricPromptTemplate - } - return "" +// Deprecated: Use QuestionAnsweringCorrectnessSpec.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringCorrectnessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{79} } -func (x *PairwiseMetricSpec) GetCandidateResponseFieldName() string { +func (x *QuestionAnsweringCorrectnessSpec) GetUseReference() bool { if x != nil { - return x.CandidateResponseFieldName + return x.UseReference } - return "" + return false } -func (x *PairwiseMetricSpec) GetBaselineResponseFieldName() string { +func (x *QuestionAnsweringCorrectnessSpec) GetVersion() int32 { if x != nil { - return x.BaselineResponseFieldName - } - return "" -} - -func (x *PairwiseMetricSpec) GetSystemInstruction() string { - if x != nil && x.SystemInstruction != nil { - return *x.SystemInstruction + return x.Version } - return "" + return 0 } -// Spec for pairwise metric result. -type PairwiseMetricResult struct { +// Spec for question answering correctness result. +type QuestionAnsweringCorrectnessResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Pairwise metric choice. - PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` - // Output only. Explanation for pairwise metric score. + // Output only. Question Answering Correctness score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Output only. Explanation for question answering correctness score. Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` + // Output only. Confidence for question answering correctness score. + Confidence *float32 `protobuf:"fixed32,3,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` } -func (x *PairwiseMetricResult) Reset() { - *x = PairwiseMetricResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[81] +func (x *QuestionAnsweringCorrectnessResult) Reset() { + *x = QuestionAnsweringCorrectnessResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PairwiseMetricResult) String() string { +func (x *QuestionAnsweringCorrectnessResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PairwiseMetricResult) ProtoMessage() {} +func (*QuestionAnsweringCorrectnessResult) ProtoMessage() {} -func (x *PairwiseMetricResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[81] +func (x *QuestionAnsweringCorrectnessResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6025,52 +6145,59 @@ func (x *PairwiseMetricResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PairwiseMetricResult.ProtoReflect.Descriptor instead. -func (*PairwiseMetricResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{81} +// Deprecated: Use QuestionAnsweringCorrectnessResult.ProtoReflect.Descriptor instead. +func (*QuestionAnsweringCorrectnessResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{80} } -func (x *PairwiseMetricResult) GetPairwiseChoice() PairwiseChoice { - if x != nil { - return x.PairwiseChoice +func (x *QuestionAnsweringCorrectnessResult) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED + return 0 } -func (x *PairwiseMetricResult) GetExplanation() string { +func (x *QuestionAnsweringCorrectnessResult) GetExplanation() string { if x != nil { return x.Explanation } return "" } -// Input for tool call valid metric. -type ToolCallValidInput struct { +func (x *QuestionAnsweringCorrectnessResult) GetConfidence() float32 { + if x != nil && x.Confidence != nil { + return *x.Confidence + } + return 0 +} + +// Input for pointwise metric. +type PointwiseMetricInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for tool call valid metric. - MetricSpec *ToolCallValidSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated tool call valid instances. - Instances []*ToolCallValidInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for pointwise metric. + MetricSpec *PointwiseMetricSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Pointwise metric instance. + Instance *PointwiseMetricInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *ToolCallValidInput) Reset() { - *x = ToolCallValidInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[82] +func (x *PointwiseMetricInput) Reset() { + *x = PointwiseMetricInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCallValidInput) String() string { +func (x *PointwiseMetricInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCallValidInput) ProtoMessage() {} +func (*PointwiseMetricInput) ProtoMessage() {} -func (x *ToolCallValidInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[82] +func (x *PointwiseMetricInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6081,47 +6208,55 @@ func (x *ToolCallValidInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCallValidInput.ProtoReflect.Descriptor instead. -func (*ToolCallValidInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{82} +// Deprecated: Use PointwiseMetricInput.ProtoReflect.Descriptor instead. +func (*PointwiseMetricInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{81} } -func (x *ToolCallValidInput) GetMetricSpec() *ToolCallValidSpec { +func (x *PointwiseMetricInput) GetMetricSpec() *PointwiseMetricSpec { if x != nil { return x.MetricSpec } return nil } -func (x *ToolCallValidInput) GetInstances() []*ToolCallValidInstance { +func (x *PointwiseMetricInput) GetInstance() *PointwiseMetricInstance { if x != nil { - return x.Instances + return x.Instance } return nil } -// Spec for tool call valid metric. -type ToolCallValidSpec struct { +// Pointwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +type PointwiseMetricInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Instance for pointwise metric. + // + // Types that are assignable to Instance: + // + // *PointwiseMetricInstance_JsonInstance + Instance isPointwiseMetricInstance_Instance `protobuf_oneof:"instance"` } -func (x *ToolCallValidSpec) Reset() { - *x = ToolCallValidSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[83] +func (x *PointwiseMetricInstance) Reset() { + *x = PointwiseMetricInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCallValidSpec) String() string { +func (x *PointwiseMetricInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCallValidSpec) ProtoMessage() {} +func (*PointwiseMetricInstance) ProtoMessage() {} -func (x *ToolCallValidSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[83] +func (x *PointwiseMetricInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6132,38 +6267,65 @@ func (x *ToolCallValidSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCallValidSpec.ProtoReflect.Descriptor instead. -func (*ToolCallValidSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{83} +// Deprecated: Use PointwiseMetricInstance.ProtoReflect.Descriptor instead. +func (*PointwiseMetricInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{82} } -// Spec for tool call valid instance. -type ToolCallValidInstance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (m *PointwiseMetricInstance) GetInstance() isPointwiseMetricInstance_Instance { + if m != nil { + return m.Instance + } + return nil +} - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` +func (x *PointwiseMetricInstance) GetJsonInstance() string { + if x, ok := x.GetInstance().(*PointwiseMetricInstance_JsonInstance); ok { + return x.JsonInstance + } + return "" } -func (x *ToolCallValidInstance) Reset() { - *x = ToolCallValidInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84] +type isPointwiseMetricInstance_Instance interface { + isPointwiseMetricInstance_Instance() +} + +type PointwiseMetricInstance_JsonInstance struct { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PointwiseMetricSpec.instance_prompt_template. + JsonInstance string `protobuf:"bytes,1,opt,name=json_instance,json=jsonInstance,proto3,oneof"` +} + +func (*PointwiseMetricInstance_JsonInstance) isPointwiseMetricInstance_Instance() {} + +// Spec for pointwise metric. +type PointwiseMetricSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Metric prompt template for pointwise metric. + MetricPromptTemplate *string `protobuf:"bytes,1,opt,name=metric_prompt_template,json=metricPromptTemplate,proto3,oneof" json:"metric_prompt_template,omitempty"` + // Optional. System instructions for pointwise metric. + SystemInstruction *string `protobuf:"bytes,2,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` +} + +func (x *PointwiseMetricSpec) Reset() { + *x = PointwiseMetricSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCallValidInstance) String() string { +func (x *PointwiseMetricSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCallValidInstance) ProtoMessage() {} +func (*PointwiseMetricSpec) ProtoMessage() {} -func (x *ToolCallValidInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84] +func (x *PointwiseMetricSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6174,50 +6336,52 @@ func (x *ToolCallValidInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCallValidInstance.ProtoReflect.Descriptor instead. -func (*ToolCallValidInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{84} +// Deprecated: Use PointwiseMetricSpec.ProtoReflect.Descriptor instead. +func (*PointwiseMetricSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{83} } -func (x *ToolCallValidInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction +func (x *PointwiseMetricSpec) GetMetricPromptTemplate() string { + if x != nil && x.MetricPromptTemplate != nil { + return *x.MetricPromptTemplate } return "" } -func (x *ToolCallValidInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference +func (x *PointwiseMetricSpec) GetSystemInstruction() string { + if x != nil && x.SystemInstruction != nil { + return *x.SystemInstruction } return "" } -// Results for tool call valid metric. -type ToolCallValidResults struct { +// Spec for pointwise metric result. +type PointwiseMetricResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool call valid metric values. - ToolCallValidMetricValues []*ToolCallValidMetricValue `protobuf:"bytes,1,rep,name=tool_call_valid_metric_values,json=toolCallValidMetricValues,proto3" json:"tool_call_valid_metric_values,omitempty"` + // Output only. Pointwise metric score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Output only. Explanation for pointwise metric score. + Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` } -func (x *ToolCallValidResults) Reset() { - *x = ToolCallValidResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[85] +func (x *PointwiseMetricResult) Reset() { + *x = PointwiseMetricResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCallValidResults) String() string { +func (x *PointwiseMetricResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCallValidResults) ProtoMessage() {} +func (*PointwiseMetricResult) ProtoMessage() {} -func (x *ToolCallValidResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[85] +func (x *PointwiseMetricResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6228,43 +6392,52 @@ func (x *ToolCallValidResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCallValidResults.ProtoReflect.Descriptor instead. -func (*ToolCallValidResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{85} +// Deprecated: Use PointwiseMetricResult.ProtoReflect.Descriptor instead. +func (*PointwiseMetricResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{84} } -func (x *ToolCallValidResults) GetToolCallValidMetricValues() []*ToolCallValidMetricValue { +func (x *PointwiseMetricResult) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +func (x *PointwiseMetricResult) GetExplanation() string { if x != nil { - return x.ToolCallValidMetricValues + return x.Explanation } - return nil + return "" } -// Tool call valid metric value for an instance. -type ToolCallValidMetricValue struct { +// Input for pairwise metric. +type PairwiseMetricInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool call valid score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Required. Spec for pairwise metric. + MetricSpec *PairwiseMetricSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Pairwise metric instance. + Instance *PairwiseMetricInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *ToolCallValidMetricValue) Reset() { - *x = ToolCallValidMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86] +func (x *PairwiseMetricInput) Reset() { + *x = PairwiseMetricInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCallValidMetricValue) String() string { +func (x *PairwiseMetricInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCallValidMetricValue) ProtoMessage() {} +func (*PairwiseMetricInput) ProtoMessage() {} -func (x *ToolCallValidMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86] +func (x *PairwiseMetricInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6275,45 +6448,55 @@ func (x *ToolCallValidMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCallValidMetricValue.ProtoReflect.Descriptor instead. -func (*ToolCallValidMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{86} +// Deprecated: Use PairwiseMetricInput.ProtoReflect.Descriptor instead. +func (*PairwiseMetricInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{85} } -func (x *ToolCallValidMetricValue) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *PairwiseMetricInput) GetMetricSpec() *PairwiseMetricSpec { + if x != nil { + return x.MetricSpec } - return 0 + return nil } -// Input for tool name match metric. -type ToolNameMatchInput struct { +func (x *PairwiseMetricInput) GetInstance() *PairwiseMetricInstance { + if x != nil { + return x.Instance + } + return nil +} + +// Pairwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +type PairwiseMetricInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for tool name match metric. - MetricSpec *ToolNameMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated tool name match instances. - Instances []*ToolNameMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Instance for pairwise metric. + // + // Types that are assignable to Instance: + // + // *PairwiseMetricInstance_JsonInstance + Instance isPairwiseMetricInstance_Instance `protobuf_oneof:"instance"` } -func (x *ToolNameMatchInput) Reset() { - *x = ToolNameMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[87] +func (x *PairwiseMetricInstance) Reset() { + *x = PairwiseMetricInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolNameMatchInput) String() string { +func (x *PairwiseMetricInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolNameMatchInput) ProtoMessage() {} +func (*PairwiseMetricInstance) ProtoMessage() {} -func (x *ToolNameMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[87] +func (x *PairwiseMetricInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6324,47 +6507,69 @@ func (x *ToolNameMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolNameMatchInput.ProtoReflect.Descriptor instead. -func (*ToolNameMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{87} +// Deprecated: Use PairwiseMetricInstance.ProtoReflect.Descriptor instead. +func (*PairwiseMetricInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{86} } -func (x *ToolNameMatchInput) GetMetricSpec() *ToolNameMatchSpec { - if x != nil { - return x.MetricSpec +func (m *PairwiseMetricInstance) GetInstance() isPairwiseMetricInstance_Instance { + if m != nil { + return m.Instance } return nil } -func (x *ToolNameMatchInput) GetInstances() []*ToolNameMatchInstance { - if x != nil { - return x.Instances +func (x *PairwiseMetricInstance) GetJsonInstance() string { + if x, ok := x.GetInstance().(*PairwiseMetricInstance_JsonInstance); ok { + return x.JsonInstance } - return nil + return "" } -// Spec for tool name match metric. -type ToolNameMatchSpec struct { +type isPairwiseMetricInstance_Instance interface { + isPairwiseMetricInstance_Instance() +} + +type PairwiseMetricInstance_JsonInstance struct { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PairwiseMetricSpec.instance_prompt_template. + JsonInstance string `protobuf:"bytes,1,opt,name=json_instance,json=jsonInstance,proto3,oneof"` +} + +func (*PairwiseMetricInstance_JsonInstance) isPairwiseMetricInstance_Instance() {} + +// Spec for pairwise metric. +type PairwiseMetricSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Required. Metric prompt template for pairwise metric. + MetricPromptTemplate *string `protobuf:"bytes,1,opt,name=metric_prompt_template,json=metricPromptTemplate,proto3,oneof" json:"metric_prompt_template,omitempty"` + // Optional. The field name of the candidate response. + CandidateResponseFieldName string `protobuf:"bytes,2,opt,name=candidate_response_field_name,json=candidateResponseFieldName,proto3" json:"candidate_response_field_name,omitempty"` + // Optional. The field name of the baseline response. + BaselineResponseFieldName string `protobuf:"bytes,3,opt,name=baseline_response_field_name,json=baselineResponseFieldName,proto3" json:"baseline_response_field_name,omitempty"` + // Optional. System instructions for pairwise metric. + SystemInstruction *string `protobuf:"bytes,4,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` } -func (x *ToolNameMatchSpec) Reset() { - *x = ToolNameMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[88] +func (x *PairwiseMetricSpec) Reset() { + *x = PairwiseMetricSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolNameMatchSpec) String() string { +func (x *PairwiseMetricSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolNameMatchSpec) ProtoMessage() {} +func (*PairwiseMetricSpec) ProtoMessage() {} -func (x *ToolNameMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[88] +func (x *PairwiseMetricSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6375,92 +6580,66 @@ func (x *ToolNameMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolNameMatchSpec.ProtoReflect.Descriptor instead. -func (*ToolNameMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{88} +// Deprecated: Use PairwiseMetricSpec.ProtoReflect.Descriptor instead. +func (*PairwiseMetricSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{87} } -// Spec for tool name match instance. -type ToolNameMatchInstance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Required. Output of the evaluated model. - Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Required. Ground truth used to compare against the prediction. - Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` -} - -func (x *ToolNameMatchInstance) Reset() { - *x = ToolNameMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ToolNameMatchInstance) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PairwiseMetricSpec) GetMetricPromptTemplate() string { + if x != nil && x.MetricPromptTemplate != nil { + return *x.MetricPromptTemplate + } + return "" } -func (*ToolNameMatchInstance) ProtoMessage() {} - -func (x *ToolNameMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[89] +func (x *PairwiseMetricSpec) GetCandidateResponseFieldName() string { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.CandidateResponseFieldName } - return mi.MessageOf(x) -} - -// Deprecated: Use ToolNameMatchInstance.ProtoReflect.Descriptor instead. -func (*ToolNameMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{89} + return "" } -func (x *ToolNameMatchInstance) GetPrediction() string { - if x != nil && x.Prediction != nil { - return *x.Prediction +func (x *PairwiseMetricSpec) GetBaselineResponseFieldName() string { + if x != nil { + return x.BaselineResponseFieldName } return "" } -func (x *ToolNameMatchInstance) GetReference() string { - if x != nil && x.Reference != nil { - return *x.Reference +func (x *PairwiseMetricSpec) GetSystemInstruction() string { + if x != nil && x.SystemInstruction != nil { + return *x.SystemInstruction } return "" } -// Results for tool name match metric. -type ToolNameMatchResults struct { +// Spec for pairwise metric result. +type PairwiseMetricResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool name match metric values. - ToolNameMatchMetricValues []*ToolNameMatchMetricValue `protobuf:"bytes,1,rep,name=tool_name_match_metric_values,json=toolNameMatchMetricValues,proto3" json:"tool_name_match_metric_values,omitempty"` + // Output only. Pairwise metric choice. + PairwiseChoice PairwiseChoice `protobuf:"varint,1,opt,name=pairwise_choice,json=pairwiseChoice,proto3,enum=google.cloud.aiplatform.v1beta1.PairwiseChoice" json:"pairwise_choice,omitempty"` + // Output only. Explanation for pairwise metric score. + Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` } -func (x *ToolNameMatchResults) Reset() { - *x = ToolNameMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[90] +func (x *PairwiseMetricResult) Reset() { + *x = PairwiseMetricResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolNameMatchResults) String() string { +func (x *PairwiseMetricResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolNameMatchResults) ProtoMessage() {} +func (*PairwiseMetricResult) ProtoMessage() {} -func (x *ToolNameMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[90] +func (x *PairwiseMetricResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6471,92 +6650,52 @@ func (x *ToolNameMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolNameMatchResults.ProtoReflect.Descriptor instead. -func (*ToolNameMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{90} +// Deprecated: Use PairwiseMetricResult.ProtoReflect.Descriptor instead. +func (*PairwiseMetricResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{88} } -func (x *ToolNameMatchResults) GetToolNameMatchMetricValues() []*ToolNameMatchMetricValue { +func (x *PairwiseMetricResult) GetPairwiseChoice() PairwiseChoice { if x != nil { - return x.ToolNameMatchMetricValues + return x.PairwiseChoice } - return nil -} - -// Tool name match metric value for an instance. -type ToolNameMatchMetricValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Output only. Tool name match score. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` -} - -func (x *ToolNameMatchMetricValue) Reset() { - *x = ToolNameMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ToolNameMatchMetricValue) String() string { - return protoimpl.X.MessageStringOf(x) + return PairwiseChoice_PAIRWISE_CHOICE_UNSPECIFIED } -func (*ToolNameMatchMetricValue) ProtoMessage() {} - -func (x *ToolNameMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[91] +func (x *PairwiseMetricResult) GetExplanation() string { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ToolNameMatchMetricValue.ProtoReflect.Descriptor instead. -func (*ToolNameMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{91} -} - -func (x *ToolNameMatchMetricValue) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score + return x.Explanation } - return 0 + return "" } -// Input for tool parameter key match metric. -type ToolParameterKeyMatchInput struct { +// Input for tool call valid metric. +type ToolCallValidInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for tool parameter key match metric. - MetricSpec *ToolParameterKeyMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated tool parameter key match instances. - Instances []*ToolParameterKeyMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for tool call valid metric. + MetricSpec *ToolCallValidSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated tool call valid instances. + Instances []*ToolCallValidInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *ToolParameterKeyMatchInput) Reset() { - *x = ToolParameterKeyMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[92] +func (x *ToolCallValidInput) Reset() { + *x = ToolCallValidInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKeyMatchInput) String() string { +func (x *ToolCallValidInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKeyMatchInput) ProtoMessage() {} +func (*ToolCallValidInput) ProtoMessage() {} -func (x *ToolParameterKeyMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[92] +func (x *ToolCallValidInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6567,47 +6706,47 @@ func (x *ToolParameterKeyMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKeyMatchInput.ProtoReflect.Descriptor instead. -func (*ToolParameterKeyMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{92} +// Deprecated: Use ToolCallValidInput.ProtoReflect.Descriptor instead. +func (*ToolCallValidInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{89} } -func (x *ToolParameterKeyMatchInput) GetMetricSpec() *ToolParameterKeyMatchSpec { +func (x *ToolCallValidInput) GetMetricSpec() *ToolCallValidSpec { if x != nil { return x.MetricSpec } return nil } -func (x *ToolParameterKeyMatchInput) GetInstances() []*ToolParameterKeyMatchInstance { +func (x *ToolCallValidInput) GetInstances() []*ToolCallValidInstance { if x != nil { return x.Instances } return nil } -// Spec for tool parameter key match metric. -type ToolParameterKeyMatchSpec struct { +// Spec for tool call valid metric. +type ToolCallValidSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ToolParameterKeyMatchSpec) Reset() { - *x = ToolParameterKeyMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[93] +func (x *ToolCallValidSpec) Reset() { + *x = ToolCallValidSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKeyMatchSpec) String() string { +func (x *ToolCallValidSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKeyMatchSpec) ProtoMessage() {} +func (*ToolCallValidSpec) ProtoMessage() {} -func (x *ToolParameterKeyMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[93] +func (x *ToolCallValidSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6618,13 +6757,13 @@ func (x *ToolParameterKeyMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKeyMatchSpec.ProtoReflect.Descriptor instead. -func (*ToolParameterKeyMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{93} +// Deprecated: Use ToolCallValidSpec.ProtoReflect.Descriptor instead. +func (*ToolCallValidSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{90} } -// Spec for tool parameter key match instance. -type ToolParameterKeyMatchInstance struct { +// Spec for tool call valid instance. +type ToolCallValidInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6635,21 +6774,21 @@ type ToolParameterKeyMatchInstance struct { Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` } -func (x *ToolParameterKeyMatchInstance) Reset() { - *x = ToolParameterKeyMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[94] +func (x *ToolCallValidInstance) Reset() { + *x = ToolCallValidInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKeyMatchInstance) String() string { +func (x *ToolCallValidInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKeyMatchInstance) ProtoMessage() {} +func (*ToolCallValidInstance) ProtoMessage() {} -func (x *ToolParameterKeyMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[94] +func (x *ToolCallValidInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6660,50 +6799,50 @@ func (x *ToolParameterKeyMatchInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKeyMatchInstance.ProtoReflect.Descriptor instead. -func (*ToolParameterKeyMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{94} +// Deprecated: Use ToolCallValidInstance.ProtoReflect.Descriptor instead. +func (*ToolCallValidInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{91} } -func (x *ToolParameterKeyMatchInstance) GetPrediction() string { +func (x *ToolCallValidInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *ToolParameterKeyMatchInstance) GetReference() string { +func (x *ToolCallValidInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -// Results for tool parameter key match metric. -type ToolParameterKeyMatchResults struct { +// Results for tool call valid metric. +type ToolCallValidResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool parameter key match metric values. - ToolParameterKeyMatchMetricValues []*ToolParameterKeyMatchMetricValue `protobuf:"bytes,1,rep,name=tool_parameter_key_match_metric_values,json=toolParameterKeyMatchMetricValues,proto3" json:"tool_parameter_key_match_metric_values,omitempty"` + // Output only. Tool call valid metric values. + ToolCallValidMetricValues []*ToolCallValidMetricValue `protobuf:"bytes,1,rep,name=tool_call_valid_metric_values,json=toolCallValidMetricValues,proto3" json:"tool_call_valid_metric_values,omitempty"` } -func (x *ToolParameterKeyMatchResults) Reset() { - *x = ToolParameterKeyMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[95] +func (x *ToolCallValidResults) Reset() { + *x = ToolCallValidResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKeyMatchResults) String() string { +func (x *ToolCallValidResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKeyMatchResults) ProtoMessage() {} +func (*ToolCallValidResults) ProtoMessage() {} -func (x *ToolParameterKeyMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[95] +func (x *ToolCallValidResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6714,43 +6853,43 @@ func (x *ToolParameterKeyMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKeyMatchResults.ProtoReflect.Descriptor instead. -func (*ToolParameterKeyMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{95} +// Deprecated: Use ToolCallValidResults.ProtoReflect.Descriptor instead. +func (*ToolCallValidResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{92} } -func (x *ToolParameterKeyMatchResults) GetToolParameterKeyMatchMetricValues() []*ToolParameterKeyMatchMetricValue { +func (x *ToolCallValidResults) GetToolCallValidMetricValues() []*ToolCallValidMetricValue { if x != nil { - return x.ToolParameterKeyMatchMetricValues + return x.ToolCallValidMetricValues } return nil } -// Tool parameter key match metric value for an instance. -type ToolParameterKeyMatchMetricValue struct { +// Tool call valid metric value for an instance. +type ToolCallValidMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool parameter key match score. + // Output only. Tool call valid score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *ToolParameterKeyMatchMetricValue) Reset() { - *x = ToolParameterKeyMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[96] +func (x *ToolCallValidMetricValue) Reset() { + *x = ToolCallValidMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKeyMatchMetricValue) String() string { +func (x *ToolCallValidMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKeyMatchMetricValue) ProtoMessage() {} +func (*ToolCallValidMetricValue) ProtoMessage() {} -func (x *ToolParameterKeyMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[96] +func (x *ToolCallValidMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6761,45 +6900,45 @@ func (x *ToolParameterKeyMatchMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKeyMatchMetricValue.ProtoReflect.Descriptor instead. -func (*ToolParameterKeyMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{96} +// Deprecated: Use ToolCallValidMetricValue.ProtoReflect.Descriptor instead. +func (*ToolCallValidMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{93} } -func (x *ToolParameterKeyMatchMetricValue) GetScore() float32 { +func (x *ToolCallValidMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Input for tool parameter key value match metric. -type ToolParameterKVMatchInput struct { +// Input for tool name match metric. +type ToolNameMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for tool parameter key value match metric. - MetricSpec *ToolParameterKVMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated tool parameter key value match instances. - Instances []*ToolParameterKVMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for tool name match metric. + MetricSpec *ToolNameMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated tool name match instances. + Instances []*ToolNameMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *ToolParameterKVMatchInput) Reset() { - *x = ToolParameterKVMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[97] +func (x *ToolNameMatchInput) Reset() { + *x = ToolNameMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKVMatchInput) String() string { +func (x *ToolNameMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKVMatchInput) ProtoMessage() {} +func (*ToolNameMatchInput) ProtoMessage() {} -func (x *ToolParameterKVMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[97] +func (x *ToolNameMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6810,50 +6949,47 @@ func (x *ToolParameterKVMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKVMatchInput.ProtoReflect.Descriptor instead. -func (*ToolParameterKVMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{97} +// Deprecated: Use ToolNameMatchInput.ProtoReflect.Descriptor instead. +func (*ToolNameMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{94} } -func (x *ToolParameterKVMatchInput) GetMetricSpec() *ToolParameterKVMatchSpec { +func (x *ToolNameMatchInput) GetMetricSpec() *ToolNameMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *ToolParameterKVMatchInput) GetInstances() []*ToolParameterKVMatchInstance { +func (x *ToolNameMatchInput) GetInstances() []*ToolNameMatchInstance { if x != nil { return x.Instances } return nil } -// Spec for tool parameter key value match metric. -type ToolParameterKVMatchSpec struct { +// Spec for tool name match metric. +type ToolNameMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Optional. Whether to use STRICT string match on parameter values. - UseStrictStringMatch bool `protobuf:"varint,1,opt,name=use_strict_string_match,json=useStrictStringMatch,proto3" json:"use_strict_string_match,omitempty"` } -func (x *ToolParameterKVMatchSpec) Reset() { - *x = ToolParameterKVMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[98] +func (x *ToolNameMatchSpec) Reset() { + *x = ToolNameMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKVMatchSpec) String() string { +func (x *ToolNameMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKVMatchSpec) ProtoMessage() {} +func (*ToolNameMatchSpec) ProtoMessage() {} -func (x *ToolParameterKVMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[98] +func (x *ToolNameMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6864,20 +7000,13 @@ func (x *ToolParameterKVMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKVMatchSpec.ProtoReflect.Descriptor instead. -func (*ToolParameterKVMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{98} -} - -func (x *ToolParameterKVMatchSpec) GetUseStrictStringMatch() bool { - if x != nil { - return x.UseStrictStringMatch - } - return false +// Deprecated: Use ToolNameMatchSpec.ProtoReflect.Descriptor instead. +func (*ToolNameMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{95} } -// Spec for tool parameter key value match instance. -type ToolParameterKVMatchInstance struct { +// Spec for tool name match instance. +type ToolNameMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6888,21 +7017,21 @@ type ToolParameterKVMatchInstance struct { Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` } -func (x *ToolParameterKVMatchInstance) Reset() { - *x = ToolParameterKVMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[99] +func (x *ToolNameMatchInstance) Reset() { + *x = ToolNameMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKVMatchInstance) String() string { +func (x *ToolNameMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKVMatchInstance) ProtoMessage() {} +func (*ToolNameMatchInstance) ProtoMessage() {} -func (x *ToolParameterKVMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[99] +func (x *ToolNameMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6913,50 +7042,50 @@ func (x *ToolParameterKVMatchInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKVMatchInstance.ProtoReflect.Descriptor instead. -func (*ToolParameterKVMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{99} +// Deprecated: Use ToolNameMatchInstance.ProtoReflect.Descriptor instead. +func (*ToolNameMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{96} } -func (x *ToolParameterKVMatchInstance) GetPrediction() string { +func (x *ToolNameMatchInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *ToolParameterKVMatchInstance) GetReference() string { +func (x *ToolNameMatchInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -// Results for tool parameter key value match metric. -type ToolParameterKVMatchResults struct { +// Results for tool name match metric. +type ToolNameMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool parameter key value match metric values. - ToolParameterKvMatchMetricValues []*ToolParameterKVMatchMetricValue `protobuf:"bytes,1,rep,name=tool_parameter_kv_match_metric_values,json=toolParameterKvMatchMetricValues,proto3" json:"tool_parameter_kv_match_metric_values,omitempty"` + // Output only. Tool name match metric values. + ToolNameMatchMetricValues []*ToolNameMatchMetricValue `protobuf:"bytes,1,rep,name=tool_name_match_metric_values,json=toolNameMatchMetricValues,proto3" json:"tool_name_match_metric_values,omitempty"` } -func (x *ToolParameterKVMatchResults) Reset() { - *x = ToolParameterKVMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[100] +func (x *ToolNameMatchResults) Reset() { + *x = ToolNameMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKVMatchResults) String() string { +func (x *ToolNameMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKVMatchResults) ProtoMessage() {} +func (*ToolNameMatchResults) ProtoMessage() {} -func (x *ToolParameterKVMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[100] +func (x *ToolNameMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6967,43 +7096,43 @@ func (x *ToolParameterKVMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKVMatchResults.ProtoReflect.Descriptor instead. -func (*ToolParameterKVMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{100} +// Deprecated: Use ToolNameMatchResults.ProtoReflect.Descriptor instead. +func (*ToolNameMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{97} } -func (x *ToolParameterKVMatchResults) GetToolParameterKvMatchMetricValues() []*ToolParameterKVMatchMetricValue { +func (x *ToolNameMatchResults) GetToolNameMatchMetricValues() []*ToolNameMatchMetricValue { if x != nil { - return x.ToolParameterKvMatchMetricValues + return x.ToolNameMatchMetricValues } return nil } -// Tool parameter key value match metric value for an instance. -type ToolParameterKVMatchMetricValue struct { +// Tool name match metric value for an instance. +type ToolNameMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Tool parameter key value match score. + // Output only. Tool name match score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *ToolParameterKVMatchMetricValue) Reset() { - *x = ToolParameterKVMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[101] +func (x *ToolNameMatchMetricValue) Reset() { + *x = ToolNameMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolParameterKVMatchMetricValue) String() string { +func (x *ToolNameMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolParameterKVMatchMetricValue) ProtoMessage() {} +func (*ToolNameMatchMetricValue) ProtoMessage() {} -func (x *ToolParameterKVMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[101] +func (x *ToolNameMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7014,45 +7143,45 @@ func (x *ToolParameterKVMatchMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolParameterKVMatchMetricValue.ProtoReflect.Descriptor instead. -func (*ToolParameterKVMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{101} +// Deprecated: Use ToolNameMatchMetricValue.ProtoReflect.Descriptor instead. +func (*ToolNameMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{98} } -func (x *ToolParameterKVMatchMetricValue) GetScore() float32 { +func (x *ToolNameMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Input for Comet metric. -type CometInput struct { +// Input for tool parameter key match metric. +type ToolParameterKeyMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for comet metric. - MetricSpec *CometSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Comet instance. - Instance *CometInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for tool parameter key match metric. + MetricSpec *ToolParameterKeyMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated tool parameter key match instances. + Instances []*ToolParameterKeyMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *CometInput) Reset() { - *x = CometInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[102] +func (x *ToolParameterKeyMatchInput) Reset() { + *x = ToolParameterKeyMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CometInput) String() string { +func (x *ToolParameterKeyMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CometInput) ProtoMessage() {} +func (*ToolParameterKeyMatchInput) ProtoMessage() {} -func (x *CometInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[102] +func (x *ToolParameterKeyMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7063,55 +7192,47 @@ func (x *CometInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CometInput.ProtoReflect.Descriptor instead. -func (*CometInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{102} +// Deprecated: Use ToolParameterKeyMatchInput.ProtoReflect.Descriptor instead. +func (*ToolParameterKeyMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{99} } -func (x *CometInput) GetMetricSpec() *CometSpec { +func (x *ToolParameterKeyMatchInput) GetMetricSpec() *ToolParameterKeyMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *CometInput) GetInstance() *CometInstance { +func (x *ToolParameterKeyMatchInput) GetInstances() []*ToolParameterKeyMatchInstance { if x != nil { - return x.Instance + return x.Instances } return nil } -// Spec for Comet metric. -type CometSpec struct { +// Spec for tool parameter key match metric. +type ToolParameterKeyMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Required. Which version to use for evaluation. - Version *CometSpec_CometVersion `protobuf:"varint,1,opt,name=version,proto3,enum=google.cloud.aiplatform.v1beta1.CometSpec_CometVersion,oneof" json:"version,omitempty"` - // Optional. Source language in BCP-47 format. - SourceLanguage string `protobuf:"bytes,2,opt,name=source_language,json=sourceLanguage,proto3" json:"source_language,omitempty"` - // Optional. Target language in BCP-47 format. Covers both prediction and - // reference. - TargetLanguage string `protobuf:"bytes,3,opt,name=target_language,json=targetLanguage,proto3" json:"target_language,omitempty"` } -func (x *CometSpec) Reset() { - *x = CometSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[103] +func (x *ToolParameterKeyMatchSpec) Reset() { + *x = ToolParameterKeyMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CometSpec) String() string { +func (x *ToolParameterKeyMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CometSpec) ProtoMessage() {} +func (*ToolParameterKeyMatchSpec) ProtoMessage() {} -func (x *CometSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[103] +func (x *ToolParameterKeyMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7122,62 +7243,38 @@ func (x *CometSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CometSpec.ProtoReflect.Descriptor instead. -func (*CometSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{103} -} - -func (x *CometSpec) GetVersion() CometSpec_CometVersion { - if x != nil && x.Version != nil { - return *x.Version - } - return CometSpec_COMET_VERSION_UNSPECIFIED -} - -func (x *CometSpec) GetSourceLanguage() string { - if x != nil { - return x.SourceLanguage - } - return "" -} - -func (x *CometSpec) GetTargetLanguage() string { - if x != nil { - return x.TargetLanguage - } - return "" +// Deprecated: Use ToolParameterKeyMatchSpec.ProtoReflect.Descriptor instead. +func (*ToolParameterKeyMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{100} } -// Spec for Comet instance - The fields used for evaluation are dependent on the -// comet version. -type CometInstance struct { +// Spec for tool parameter key match instance. +type ToolParameterKeyMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Optional. Ground truth used to compare against the prediction. + // Required. Ground truth used to compare against the prediction. Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Optional. Source text in original language. - Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` } -func (x *CometInstance) Reset() { - *x = CometInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[104] +func (x *ToolParameterKeyMatchInstance) Reset() { + *x = ToolParameterKeyMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CometInstance) String() string { +func (x *ToolParameterKeyMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CometInstance) ProtoMessage() {} +func (*ToolParameterKeyMatchInstance) ProtoMessage() {} -func (x *CometInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[104] +func (x *ToolParameterKeyMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7188,58 +7285,97 @@ func (x *CometInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CometInstance.ProtoReflect.Descriptor instead. -func (*CometInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{104} +// Deprecated: Use ToolParameterKeyMatchInstance.ProtoReflect.Descriptor instead. +func (*ToolParameterKeyMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{101} } -func (x *CometInstance) GetPrediction() string { +func (x *ToolParameterKeyMatchInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *CometInstance) GetReference() string { +func (x *ToolParameterKeyMatchInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *CometInstance) GetSource() string { - if x != nil && x.Source != nil { - return *x.Source +// Results for tool parameter key match metric. +type ToolParameterKeyMatchResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Tool parameter key match metric values. + ToolParameterKeyMatchMetricValues []*ToolParameterKeyMatchMetricValue `protobuf:"bytes,1,rep,name=tool_parameter_key_match_metric_values,json=toolParameterKeyMatchMetricValues,proto3" json:"tool_parameter_key_match_metric_values,omitempty"` +} + +func (x *ToolParameterKeyMatchResults) Reset() { + *x = ToolParameterKeyMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ToolParameterKeyMatchResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToolParameterKeyMatchResults) ProtoMessage() {} + +func (x *ToolParameterKeyMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[102] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -// Spec for Comet result - calculates the comet score for the given instance -// using the version specified in the spec. -type CometResult struct { +// Deprecated: Use ToolParameterKeyMatchResults.ProtoReflect.Descriptor instead. +func (*ToolParameterKeyMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{102} +} + +func (x *ToolParameterKeyMatchResults) GetToolParameterKeyMatchMetricValues() []*ToolParameterKeyMatchMetricValue { + if x != nil { + return x.ToolParameterKeyMatchMetricValues + } + return nil +} + +// Tool parameter key match metric value for an instance. +type ToolParameterKeyMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Comet score. Range depends on version. + // Output only. Tool parameter key match score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *CometResult) Reset() { - *x = CometResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[105] +func (x *ToolParameterKeyMatchMetricValue) Reset() { + *x = ToolParameterKeyMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CometResult) String() string { +func (x *ToolParameterKeyMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CometResult) ProtoMessage() {} +func (*ToolParameterKeyMatchMetricValue) ProtoMessage() {} -func (x *CometResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[105] +func (x *ToolParameterKeyMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7250,45 +7386,45 @@ func (x *CometResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CometResult.ProtoReflect.Descriptor instead. -func (*CometResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{105} +// Deprecated: Use ToolParameterKeyMatchMetricValue.ProtoReflect.Descriptor instead. +func (*ToolParameterKeyMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{103} } -func (x *CometResult) GetScore() float32 { +func (x *ToolParameterKeyMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Input for MetricX metric. -type MetricxInput struct { +// Input for tool parameter key value match metric. +type ToolParameterKVMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for Metricx metric. - MetricSpec *MetricxSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Metricx instance. - Instance *MetricxInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. Spec for tool parameter key value match metric. + MetricSpec *ToolParameterKVMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated tool parameter key value match instances. + Instances []*ToolParameterKVMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *MetricxInput) Reset() { - *x = MetricxInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[106] +func (x *ToolParameterKVMatchInput) Reset() { + *x = ToolParameterKVMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *MetricxInput) String() string { +func (x *ToolParameterKVMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricxInput) ProtoMessage() {} +func (*ToolParameterKVMatchInput) ProtoMessage() {} -func (x *MetricxInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[106] +func (x *ToolParameterKVMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7299,55 +7435,50 @@ func (x *MetricxInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricxInput.ProtoReflect.Descriptor instead. -func (*MetricxInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{106} +// Deprecated: Use ToolParameterKVMatchInput.ProtoReflect.Descriptor instead. +func (*ToolParameterKVMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{104} } -func (x *MetricxInput) GetMetricSpec() *MetricxSpec { +func (x *ToolParameterKVMatchInput) GetMetricSpec() *ToolParameterKVMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *MetricxInput) GetInstance() *MetricxInstance { +func (x *ToolParameterKVMatchInput) GetInstances() []*ToolParameterKVMatchInstance { if x != nil { - return x.Instance + return x.Instances } return nil } -// Spec for MetricX metric. -type MetricxSpec struct { +// Spec for tool parameter key value match metric. +type ToolParameterKVMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Which version to use for evaluation. - Version *MetricxSpec_MetricxVersion `protobuf:"varint,1,opt,name=version,proto3,enum=google.cloud.aiplatform.v1beta1.MetricxSpec_MetricxVersion,oneof" json:"version,omitempty"` - // Optional. Source language in BCP-47 format. - SourceLanguage string `protobuf:"bytes,2,opt,name=source_language,json=sourceLanguage,proto3" json:"source_language,omitempty"` - // Optional. Target language in BCP-47 format. Covers both prediction and - // reference. - TargetLanguage string `protobuf:"bytes,3,opt,name=target_language,json=targetLanguage,proto3" json:"target_language,omitempty"` + // Optional. Whether to use STRICT string match on parameter values. + UseStrictStringMatch bool `protobuf:"varint,1,opt,name=use_strict_string_match,json=useStrictStringMatch,proto3" json:"use_strict_string_match,omitempty"` } -func (x *MetricxSpec) Reset() { - *x = MetricxSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[107] +func (x *ToolParameterKVMatchSpec) Reset() { + *x = ToolParameterKVMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *MetricxSpec) String() string { +func (x *ToolParameterKVMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricxSpec) ProtoMessage() {} +func (*ToolParameterKVMatchSpec) ProtoMessage() {} -func (x *MetricxSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[107] +func (x *ToolParameterKVMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7358,62 +7489,45 @@ func (x *MetricxSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricxSpec.ProtoReflect.Descriptor instead. -func (*MetricxSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{107} -} - -func (x *MetricxSpec) GetVersion() MetricxSpec_MetricxVersion { - if x != nil && x.Version != nil { - return *x.Version - } - return MetricxSpec_METRICX_VERSION_UNSPECIFIED -} - -func (x *MetricxSpec) GetSourceLanguage() string { - if x != nil { - return x.SourceLanguage - } - return "" +// Deprecated: Use ToolParameterKVMatchSpec.ProtoReflect.Descriptor instead. +func (*ToolParameterKVMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{105} } -func (x *MetricxSpec) GetTargetLanguage() string { +func (x *ToolParameterKVMatchSpec) GetUseStrictStringMatch() bool { if x != nil { - return x.TargetLanguage + return x.UseStrictStringMatch } - return "" + return false } -// Spec for MetricX instance - The fields used for evaluation are dependent on -// the MetricX version. -type MetricxInstance struct { +// Spec for tool parameter key value match instance. +type ToolParameterKVMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Output of the evaluated model. Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` - // Optional. Ground truth used to compare against the prediction. + // Required. Ground truth used to compare against the prediction. Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` - // Optional. Source text in original language. - Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` } -func (x *MetricxInstance) Reset() { - *x = MetricxInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[108] +func (x *ToolParameterKVMatchInstance) Reset() { + *x = ToolParameterKVMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *MetricxInstance) String() string { +func (x *ToolParameterKVMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricxInstance) ProtoMessage() {} +func (*ToolParameterKVMatchInstance) ProtoMessage() {} -func (x *MetricxInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[108] +func (x *ToolParameterKVMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7424,58 +7538,50 @@ func (x *MetricxInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricxInstance.ProtoReflect.Descriptor instead. -func (*MetricxInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{108} +// Deprecated: Use ToolParameterKVMatchInstance.ProtoReflect.Descriptor instead. +func (*ToolParameterKVMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{106} } -func (x *MetricxInstance) GetPrediction() string { +func (x *ToolParameterKVMatchInstance) GetPrediction() string { if x != nil && x.Prediction != nil { return *x.Prediction } return "" } -func (x *MetricxInstance) GetReference() string { +func (x *ToolParameterKVMatchInstance) GetReference() string { if x != nil && x.Reference != nil { return *x.Reference } return "" } -func (x *MetricxInstance) GetSource() string { - if x != nil && x.Source != nil { - return *x.Source - } - return "" -} - -// Spec for MetricX result - calculates the MetricX score for the given instance -// using the version specified in the spec. -type MetricxResult struct { +// Results for tool parameter key value match metric. +type ToolParameterKVMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. MetricX score. Range depends on version. - Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Output only. Tool parameter key value match metric values. + ToolParameterKvMatchMetricValues []*ToolParameterKVMatchMetricValue `protobuf:"bytes,1,rep,name=tool_parameter_kv_match_metric_values,json=toolParameterKvMatchMetricValues,proto3" json:"tool_parameter_kv_match_metric_values,omitempty"` } -func (x *MetricxResult) Reset() { - *x = MetricxResult{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[109] +func (x *ToolParameterKVMatchResults) Reset() { + *x = ToolParameterKVMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *MetricxResult) String() string { +func (x *ToolParameterKVMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricxResult) ProtoMessage() {} +func (*ToolParameterKVMatchResults) ProtoMessage() {} -func (x *MetricxResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[109] +func (x *ToolParameterKVMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7486,45 +7592,43 @@ func (x *MetricxResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricxResult.ProtoReflect.Descriptor instead. -func (*MetricxResult) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{109} +// Deprecated: Use ToolParameterKVMatchResults.ProtoReflect.Descriptor instead. +func (*ToolParameterKVMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{107} } -func (x *MetricxResult) GetScore() float32 { - if x != nil && x.Score != nil { - return *x.Score +func (x *ToolParameterKVMatchResults) GetToolParameterKvMatchMetricValues() []*ToolParameterKVMatchMetricValue { + if x != nil { + return x.ToolParameterKvMatchMetricValues } - return 0 + return nil } -// Instances and metric spec for TrajectoryExactMatch metric. -type TrajectoryExactMatchInput struct { +// Tool parameter key value match metric value for an instance. +type ToolParameterKVMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectoryExactMatch metric. - MetricSpec *TrajectoryExactMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectoryExactMatch instance. - Instances []*TrajectoryExactMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Output only. Tool parameter key value match score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryExactMatchInput) Reset() { - *x = TrajectoryExactMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[110] +func (x *ToolParameterKVMatchMetricValue) Reset() { + *x = ToolParameterKVMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryExactMatchInput) String() string { +func (x *ToolParameterKVMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryExactMatchInput) ProtoMessage() {} +func (*ToolParameterKVMatchMetricValue) ProtoMessage() {} -func (x *TrajectoryExactMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[110] +func (x *ToolParameterKVMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7535,48 +7639,45 @@ func (x *TrajectoryExactMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryExactMatchInput.ProtoReflect.Descriptor instead. -func (*TrajectoryExactMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{110} -} - -func (x *TrajectoryExactMatchInput) GetMetricSpec() *TrajectoryExactMatchSpec { - if x != nil { - return x.MetricSpec - } - return nil +// Deprecated: Use ToolParameterKVMatchMetricValue.ProtoReflect.Descriptor instead. +func (*ToolParameterKVMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{108} } -func (x *TrajectoryExactMatchInput) GetInstances() []*TrajectoryExactMatchInstance { - if x != nil { - return x.Instances +func (x *ToolParameterKVMatchMetricValue) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score } - return nil + return 0 } -// Spec for TrajectoryExactMatch metric - returns 1 if tool calls in the -// reference trajectory exactly match the predicted trajectory, else 0. -type TrajectoryExactMatchSpec struct { +// Input for Comet metric. +type CometInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Required. Spec for comet metric. + MetricSpec *CometSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Comet instance. + Instance *CometInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *TrajectoryExactMatchSpec) Reset() { - *x = TrajectoryExactMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[111] +func (x *CometInput) Reset() { + *x = CometInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryExactMatchSpec) String() string { +func (x *CometInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryExactMatchSpec) ProtoMessage() {} +func (*CometInput) ProtoMessage() {} -func (x *TrajectoryExactMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[111] +func (x *CometInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7587,38 +7688,55 @@ func (x *TrajectoryExactMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryExactMatchSpec.ProtoReflect.Descriptor instead. -func (*TrajectoryExactMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{111} +// Deprecated: Use CometInput.ProtoReflect.Descriptor instead. +func (*CometInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{109} } -// Spec for TrajectoryExactMatch instance. -type TrajectoryExactMatchInstance struct { +func (x *CometInput) GetMetricSpec() *CometSpec { + if x != nil { + return x.MetricSpec + } + return nil +} + +func (x *CometInput) GetInstance() *CometInstance { + if x != nil { + return x.Instance + } + return nil +} + +// Spec for Comet metric. +type CometSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for predicted tool call trajectory. - PredictedTrajectory *Trajectory `protobuf:"bytes,1,opt,name=predicted_trajectory,json=predictedTrajectory,proto3,oneof" json:"predicted_trajectory,omitempty"` - // Required. Spec for reference tool call trajectory. - ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` + // Required. Which version to use for evaluation. + Version *CometSpec_CometVersion `protobuf:"varint,1,opt,name=version,proto3,enum=google.cloud.aiplatform.v1beta1.CometSpec_CometVersion,oneof" json:"version,omitempty"` + // Optional. Source language in BCP-47 format. + SourceLanguage string `protobuf:"bytes,2,opt,name=source_language,json=sourceLanguage,proto3" json:"source_language,omitempty"` + // Optional. Target language in BCP-47 format. Covers both prediction and + // reference. + TargetLanguage string `protobuf:"bytes,3,opt,name=target_language,json=targetLanguage,proto3" json:"target_language,omitempty"` } -func (x *TrajectoryExactMatchInstance) Reset() { - *x = TrajectoryExactMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[112] +func (x *CometSpec) Reset() { + *x = CometSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryExactMatchInstance) String() string { +func (x *CometSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryExactMatchInstance) ProtoMessage() {} +func (*CometSpec) ProtoMessage() {} -func (x *TrajectoryExactMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[112] +func (x *CometSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7629,50 +7747,62 @@ func (x *TrajectoryExactMatchInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryExactMatchInstance.ProtoReflect.Descriptor instead. -func (*TrajectoryExactMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{112} +// Deprecated: Use CometSpec.ProtoReflect.Descriptor instead. +func (*CometSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{110} } -func (x *TrajectoryExactMatchInstance) GetPredictedTrajectory() *Trajectory { +func (x *CometSpec) GetVersion() CometSpec_CometVersion { + if x != nil && x.Version != nil { + return *x.Version + } + return CometSpec_COMET_VERSION_UNSPECIFIED +} + +func (x *CometSpec) GetSourceLanguage() string { if x != nil { - return x.PredictedTrajectory + return x.SourceLanguage } - return nil + return "" } -func (x *TrajectoryExactMatchInstance) GetReferenceTrajectory() *Trajectory { +func (x *CometSpec) GetTargetLanguage() string { if x != nil { - return x.ReferenceTrajectory + return x.TargetLanguage } - return nil + return "" } -// Results for TrajectoryExactMatch metric. -type TrajectoryExactMatchResults struct { +// Spec for Comet instance - The fields used for evaluation are dependent on the +// comet version. +type CometInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryExactMatch metric values. - TrajectoryExactMatchMetricValues []*TrajectoryExactMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_exact_match_metric_values,json=trajectoryExactMatchMetricValues,proto3" json:"trajectory_exact_match_metric_values,omitempty"` + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Optional. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Optional. Source text in original language. + Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` } -func (x *TrajectoryExactMatchResults) Reset() { - *x = TrajectoryExactMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[113] +func (x *CometInstance) Reset() { + *x = CometInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryExactMatchResults) String() string { +func (x *CometInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryExactMatchResults) ProtoMessage() {} +func (*CometInstance) ProtoMessage() {} -func (x *TrajectoryExactMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[113] +func (x *CometInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7683,43 +7813,58 @@ func (x *TrajectoryExactMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryExactMatchResults.ProtoReflect.Descriptor instead. -func (*TrajectoryExactMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{113} +// Deprecated: Use CometInstance.ProtoReflect.Descriptor instead. +func (*CometInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{111} } -func (x *TrajectoryExactMatchResults) GetTrajectoryExactMatchMetricValues() []*TrajectoryExactMatchMetricValue { - if x != nil { - return x.TrajectoryExactMatchMetricValues +func (x *CometInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } - return nil + return "" } -// TrajectoryExactMatch metric value for an instance. -type TrajectoryExactMatchMetricValue struct { +func (x *CometInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference + } + return "" +} + +func (x *CometInstance) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +// Spec for Comet result - calculates the comet score for the given instance +// using the version specified in the spec. +type CometResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryExactMatch score. + // Output only. Comet score. Range depends on version. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryExactMatchMetricValue) Reset() { - *x = TrajectoryExactMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[114] +func (x *CometResult) Reset() { + *x = CometResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryExactMatchMetricValue) String() string { +func (x *CometResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryExactMatchMetricValue) ProtoMessage() {} +func (*CometResult) ProtoMessage() {} -func (x *TrajectoryExactMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[114] +func (x *CometResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7730,45 +7875,45 @@ func (x *TrajectoryExactMatchMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryExactMatchMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectoryExactMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{114} +// Deprecated: Use CometResult.ProtoReflect.Descriptor instead. +func (*CometResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{112} } -func (x *TrajectoryExactMatchMetricValue) GetScore() float32 { +func (x *CometResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Instances and metric spec for TrajectoryInOrderMatch metric. -type TrajectoryInOrderMatchInput struct { +// Input for MetricX metric. +type MetricxInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectoryInOrderMatch metric. - MetricSpec *TrajectoryInOrderMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectoryInOrderMatch instance. - Instances []*TrajectoryInOrderMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for Metricx metric. + MetricSpec *MetricxSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Metricx instance. + Instance *MetricxInstance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` } -func (x *TrajectoryInOrderMatchInput) Reset() { - *x = TrajectoryInOrderMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[115] +func (x *MetricxInput) Reset() { + *x = MetricxInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryInOrderMatchInput) String() string { +func (x *MetricxInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryInOrderMatchInput) ProtoMessage() {} +func (*MetricxInput) ProtoMessage() {} -func (x *TrajectoryInOrderMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[115] +func (x *MetricxInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7779,49 +7924,55 @@ func (x *TrajectoryInOrderMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryInOrderMatchInput.ProtoReflect.Descriptor instead. -func (*TrajectoryInOrderMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{115} +// Deprecated: Use MetricxInput.ProtoReflect.Descriptor instead. +func (*MetricxInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{113} } -func (x *TrajectoryInOrderMatchInput) GetMetricSpec() *TrajectoryInOrderMatchSpec { +func (x *MetricxInput) GetMetricSpec() *MetricxSpec { if x != nil { return x.MetricSpec } return nil } -func (x *TrajectoryInOrderMatchInput) GetInstances() []*TrajectoryInOrderMatchInstance { +func (x *MetricxInput) GetInstance() *MetricxInstance { if x != nil { - return x.Instances + return x.Instance } return nil } -// Spec for TrajectoryInOrderMatch metric - returns 1 if tool calls in the -// reference trajectory appear in the predicted trajectory in the same order, -// else 0. -type TrajectoryInOrderMatchSpec struct { +// Spec for MetricX metric. +type MetricxSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Required. Which version to use for evaluation. + Version *MetricxSpec_MetricxVersion `protobuf:"varint,1,opt,name=version,proto3,enum=google.cloud.aiplatform.v1beta1.MetricxSpec_MetricxVersion,oneof" json:"version,omitempty"` + // Optional. Source language in BCP-47 format. + SourceLanguage string `protobuf:"bytes,2,opt,name=source_language,json=sourceLanguage,proto3" json:"source_language,omitempty"` + // Optional. Target language in BCP-47 format. Covers both prediction and + // reference. + TargetLanguage string `protobuf:"bytes,3,opt,name=target_language,json=targetLanguage,proto3" json:"target_language,omitempty"` } -func (x *TrajectoryInOrderMatchSpec) Reset() { - *x = TrajectoryInOrderMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[116] +func (x *MetricxSpec) Reset() { + *x = MetricxSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryInOrderMatchSpec) String() string { +func (x *MetricxSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryInOrderMatchSpec) ProtoMessage() {} +func (*MetricxSpec) ProtoMessage() {} -func (x *TrajectoryInOrderMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[116] +func (x *MetricxSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7832,92 +7983,62 @@ func (x *TrajectoryInOrderMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryInOrderMatchSpec.ProtoReflect.Descriptor instead. -func (*TrajectoryInOrderMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{116} -} - -// Spec for TrajectoryInOrderMatch instance. -type TrajectoryInOrderMatchInstance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Required. Spec for predicted tool call trajectory. - PredictedTrajectory *Trajectory `protobuf:"bytes,1,opt,name=predicted_trajectory,json=predictedTrajectory,proto3,oneof" json:"predicted_trajectory,omitempty"` - // Required. Spec for reference tool call trajectory. - ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` -} - -func (x *TrajectoryInOrderMatchInstance) Reset() { - *x = TrajectoryInOrderMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[117] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TrajectoryInOrderMatchInstance) String() string { - return protoimpl.X.MessageStringOf(x) +// Deprecated: Use MetricxSpec.ProtoReflect.Descriptor instead. +func (*MetricxSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{114} } -func (*TrajectoryInOrderMatchInstance) ProtoMessage() {} - -func (x *TrajectoryInOrderMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[117] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *MetricxSpec) GetVersion() MetricxSpec_MetricxVersion { + if x != nil && x.Version != nil { + return *x.Version } - return mi.MessageOf(x) -} - -// Deprecated: Use TrajectoryInOrderMatchInstance.ProtoReflect.Descriptor instead. -func (*TrajectoryInOrderMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{117} + return MetricxSpec_METRICX_VERSION_UNSPECIFIED } -func (x *TrajectoryInOrderMatchInstance) GetPredictedTrajectory() *Trajectory { +func (x *MetricxSpec) GetSourceLanguage() string { if x != nil { - return x.PredictedTrajectory + return x.SourceLanguage } - return nil + return "" } -func (x *TrajectoryInOrderMatchInstance) GetReferenceTrajectory() *Trajectory { +func (x *MetricxSpec) GetTargetLanguage() string { if x != nil { - return x.ReferenceTrajectory + return x.TargetLanguage } - return nil + return "" } -// Results for TrajectoryInOrderMatch metric. -type TrajectoryInOrderMatchResults struct { +// Spec for MetricX instance - The fields used for evaluation are dependent on +// the MetricX version. +type MetricxInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryInOrderMatch metric values. - TrajectoryInOrderMatchMetricValues []*TrajectoryInOrderMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_in_order_match_metric_values,json=trajectoryInOrderMatchMetricValues,proto3" json:"trajectory_in_order_match_metric_values,omitempty"` + // Required. Output of the evaluated model. + Prediction *string `protobuf:"bytes,1,opt,name=prediction,proto3,oneof" json:"prediction,omitempty"` + // Optional. Ground truth used to compare against the prediction. + Reference *string `protobuf:"bytes,2,opt,name=reference,proto3,oneof" json:"reference,omitempty"` + // Optional. Source text in original language. + Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` } -func (x *TrajectoryInOrderMatchResults) Reset() { - *x = TrajectoryInOrderMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[118] +func (x *MetricxInstance) Reset() { + *x = MetricxInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryInOrderMatchResults) String() string { +func (x *MetricxInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryInOrderMatchResults) ProtoMessage() {} +func (*MetricxInstance) ProtoMessage() {} -func (x *TrajectoryInOrderMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[118] +func (x *MetricxInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7928,43 +8049,58 @@ func (x *TrajectoryInOrderMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryInOrderMatchResults.ProtoReflect.Descriptor instead. -func (*TrajectoryInOrderMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{118} +// Deprecated: Use MetricxInstance.ProtoReflect.Descriptor instead. +func (*MetricxInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{115} } -func (x *TrajectoryInOrderMatchResults) GetTrajectoryInOrderMatchMetricValues() []*TrajectoryInOrderMatchMetricValue { - if x != nil { - return x.TrajectoryInOrderMatchMetricValues +func (x *MetricxInstance) GetPrediction() string { + if x != nil && x.Prediction != nil { + return *x.Prediction } - return nil + return "" } -// TrajectoryInOrderMatch metric value for an instance. -type TrajectoryInOrderMatchMetricValue struct { +func (x *MetricxInstance) GetReference() string { + if x != nil && x.Reference != nil { + return *x.Reference + } + return "" +} + +func (x *MetricxInstance) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +// Spec for MetricX result - calculates the MetricX score for the given instance +// using the version specified in the spec. +type MetricxResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryInOrderMatch score. + // Output only. MetricX score. Range depends on version. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryInOrderMatchMetricValue) Reset() { - *x = TrajectoryInOrderMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[119] +func (x *MetricxResult) Reset() { + *x = MetricxResult{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryInOrderMatchMetricValue) String() string { +func (x *MetricxResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryInOrderMatchMetricValue) ProtoMessage() {} +func (*MetricxResult) ProtoMessage() {} -func (x *TrajectoryInOrderMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[119] +func (x *MetricxResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7975,45 +8111,45 @@ func (x *TrajectoryInOrderMatchMetricValue) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use TrajectoryInOrderMatchMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectoryInOrderMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{119} +// Deprecated: Use MetricxResult.ProtoReflect.Descriptor instead. +func (*MetricxResult) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{116} } -func (x *TrajectoryInOrderMatchMetricValue) GetScore() float32 { +func (x *MetricxResult) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Instances and metric spec for TrajectoryAnyOrderMatch metric. -type TrajectoryAnyOrderMatchInput struct { +// Instances and metric spec for TrajectoryExactMatch metric. +type TrajectoryExactMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectoryAnyOrderMatch metric. - MetricSpec *TrajectoryAnyOrderMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectoryAnyOrderMatch instance. - Instances []*TrajectoryAnyOrderMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for TrajectoryExactMatch metric. + MetricSpec *TrajectoryExactMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectoryExactMatch instance. + Instances []*TrajectoryExactMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *TrajectoryAnyOrderMatchInput) Reset() { - *x = TrajectoryAnyOrderMatchInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[120] +func (x *TrajectoryExactMatchInput) Reset() { + *x = TrajectoryExactMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryAnyOrderMatchInput) String() string { +func (x *TrajectoryExactMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryAnyOrderMatchInput) ProtoMessage() {} +func (*TrajectoryExactMatchInput) ProtoMessage() {} -func (x *TrajectoryAnyOrderMatchInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[120] +func (x *TrajectoryExactMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8024,49 +8160,48 @@ func (x *TrajectoryAnyOrderMatchInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryAnyOrderMatchInput.ProtoReflect.Descriptor instead. -func (*TrajectoryAnyOrderMatchInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{120} -} +// Deprecated: Use TrajectoryExactMatchInput.ProtoReflect.Descriptor instead. +func (*TrajectoryExactMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{117} +} -func (x *TrajectoryAnyOrderMatchInput) GetMetricSpec() *TrajectoryAnyOrderMatchSpec { +func (x *TrajectoryExactMatchInput) GetMetricSpec() *TrajectoryExactMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *TrajectoryAnyOrderMatchInput) GetInstances() []*TrajectoryAnyOrderMatchInstance { +func (x *TrajectoryExactMatchInput) GetInstances() []*TrajectoryExactMatchInstance { if x != nil { return x.Instances } return nil } -// Spec for TrajectoryAnyOrderMatch metric - returns 1 if all tool calls in the -// reference trajectory appear in the predicted trajectory in any order, else -// 0. -type TrajectoryAnyOrderMatchSpec struct { +// Spec for TrajectoryExactMatch metric - returns 1 if tool calls in the +// reference trajectory exactly match the predicted trajectory, else 0. +type TrajectoryExactMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *TrajectoryAnyOrderMatchSpec) Reset() { - *x = TrajectoryAnyOrderMatchSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[121] +func (x *TrajectoryExactMatchSpec) Reset() { + *x = TrajectoryExactMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryAnyOrderMatchSpec) String() string { +func (x *TrajectoryExactMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryAnyOrderMatchSpec) ProtoMessage() {} +func (*TrajectoryExactMatchSpec) ProtoMessage() {} -func (x *TrajectoryAnyOrderMatchSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[121] +func (x *TrajectoryExactMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8077,13 +8212,13 @@ func (x *TrajectoryAnyOrderMatchSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryAnyOrderMatchSpec.ProtoReflect.Descriptor instead. -func (*TrajectoryAnyOrderMatchSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{121} +// Deprecated: Use TrajectoryExactMatchSpec.ProtoReflect.Descriptor instead. +func (*TrajectoryExactMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{118} } -// Spec for TrajectoryAnyOrderMatch instance. -type TrajectoryAnyOrderMatchInstance struct { +// Spec for TrajectoryExactMatch instance. +type TrajectoryExactMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -8094,21 +8229,21 @@ type TrajectoryAnyOrderMatchInstance struct { ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` } -func (x *TrajectoryAnyOrderMatchInstance) Reset() { - *x = TrajectoryAnyOrderMatchInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[122] +func (x *TrajectoryExactMatchInstance) Reset() { + *x = TrajectoryExactMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryAnyOrderMatchInstance) String() string { +func (x *TrajectoryExactMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryAnyOrderMatchInstance) ProtoMessage() {} +func (*TrajectoryExactMatchInstance) ProtoMessage() {} -func (x *TrajectoryAnyOrderMatchInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[122] +func (x *TrajectoryExactMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8119,50 +8254,50 @@ func (x *TrajectoryAnyOrderMatchInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryAnyOrderMatchInstance.ProtoReflect.Descriptor instead. -func (*TrajectoryAnyOrderMatchInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{122} +// Deprecated: Use TrajectoryExactMatchInstance.ProtoReflect.Descriptor instead. +func (*TrajectoryExactMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{119} } -func (x *TrajectoryAnyOrderMatchInstance) GetPredictedTrajectory() *Trajectory { +func (x *TrajectoryExactMatchInstance) GetPredictedTrajectory() *Trajectory { if x != nil { return x.PredictedTrajectory } return nil } -func (x *TrajectoryAnyOrderMatchInstance) GetReferenceTrajectory() *Trajectory { +func (x *TrajectoryExactMatchInstance) GetReferenceTrajectory() *Trajectory { if x != nil { return x.ReferenceTrajectory } return nil } -// Results for TrajectoryAnyOrderMatch metric. -type TrajectoryAnyOrderMatchResults struct { +// Results for TrajectoryExactMatch metric. +type TrajectoryExactMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryAnyOrderMatch metric values. - TrajectoryAnyOrderMatchMetricValues []*TrajectoryAnyOrderMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_any_order_match_metric_values,json=trajectoryAnyOrderMatchMetricValues,proto3" json:"trajectory_any_order_match_metric_values,omitempty"` + // Output only. TrajectoryExactMatch metric values. + TrajectoryExactMatchMetricValues []*TrajectoryExactMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_exact_match_metric_values,json=trajectoryExactMatchMetricValues,proto3" json:"trajectory_exact_match_metric_values,omitempty"` } -func (x *TrajectoryAnyOrderMatchResults) Reset() { - *x = TrajectoryAnyOrderMatchResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[123] +func (x *TrajectoryExactMatchResults) Reset() { + *x = TrajectoryExactMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryAnyOrderMatchResults) String() string { +func (x *TrajectoryExactMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryAnyOrderMatchResults) ProtoMessage() {} +func (*TrajectoryExactMatchResults) ProtoMessage() {} -func (x *TrajectoryAnyOrderMatchResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[123] +func (x *TrajectoryExactMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8173,43 +8308,43 @@ func (x *TrajectoryAnyOrderMatchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryAnyOrderMatchResults.ProtoReflect.Descriptor instead. -func (*TrajectoryAnyOrderMatchResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{123} +// Deprecated: Use TrajectoryExactMatchResults.ProtoReflect.Descriptor instead. +func (*TrajectoryExactMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{120} } -func (x *TrajectoryAnyOrderMatchResults) GetTrajectoryAnyOrderMatchMetricValues() []*TrajectoryAnyOrderMatchMetricValue { +func (x *TrajectoryExactMatchResults) GetTrajectoryExactMatchMetricValues() []*TrajectoryExactMatchMetricValue { if x != nil { - return x.TrajectoryAnyOrderMatchMetricValues + return x.TrajectoryExactMatchMetricValues } return nil } -// TrajectoryAnyOrderMatch metric value for an instance. -type TrajectoryAnyOrderMatchMetricValue struct { +// TrajectoryExactMatch metric value for an instance. +type TrajectoryExactMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryAnyOrderMatch score. + // Output only. TrajectoryExactMatch score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryAnyOrderMatchMetricValue) Reset() { - *x = TrajectoryAnyOrderMatchMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[124] +func (x *TrajectoryExactMatchMetricValue) Reset() { + *x = TrajectoryExactMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryAnyOrderMatchMetricValue) String() string { +func (x *TrajectoryExactMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryAnyOrderMatchMetricValue) ProtoMessage() {} +func (*TrajectoryExactMatchMetricValue) ProtoMessage() {} -func (x *TrajectoryAnyOrderMatchMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[124] +func (x *TrajectoryExactMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8220,45 +8355,45 @@ func (x *TrajectoryAnyOrderMatchMetricValue) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use TrajectoryAnyOrderMatchMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectoryAnyOrderMatchMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{124} +// Deprecated: Use TrajectoryExactMatchMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectoryExactMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{121} } -func (x *TrajectoryAnyOrderMatchMetricValue) GetScore() float32 { +func (x *TrajectoryExactMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Instances and metric spec for TrajectoryPrecision metric. -type TrajectoryPrecisionInput struct { +// Instances and metric spec for TrajectoryInOrderMatch metric. +type TrajectoryInOrderMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectoryPrecision metric. - MetricSpec *TrajectoryPrecisionSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectoryPrecision instance. - Instances []*TrajectoryPrecisionInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for TrajectoryInOrderMatch metric. + MetricSpec *TrajectoryInOrderMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectoryInOrderMatch instance. + Instances []*TrajectoryInOrderMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *TrajectoryPrecisionInput) Reset() { - *x = TrajectoryPrecisionInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[125] +func (x *TrajectoryInOrderMatchInput) Reset() { + *x = TrajectoryInOrderMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryPrecisionInput) String() string { +func (x *TrajectoryInOrderMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryPrecisionInput) ProtoMessage() {} +func (*TrajectoryInOrderMatchInput) ProtoMessage() {} -func (x *TrajectoryPrecisionInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[125] +func (x *TrajectoryInOrderMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8269,48 +8404,49 @@ func (x *TrajectoryPrecisionInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryPrecisionInput.ProtoReflect.Descriptor instead. -func (*TrajectoryPrecisionInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{125} +// Deprecated: Use TrajectoryInOrderMatchInput.ProtoReflect.Descriptor instead. +func (*TrajectoryInOrderMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{122} } -func (x *TrajectoryPrecisionInput) GetMetricSpec() *TrajectoryPrecisionSpec { +func (x *TrajectoryInOrderMatchInput) GetMetricSpec() *TrajectoryInOrderMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *TrajectoryPrecisionInput) GetInstances() []*TrajectoryPrecisionInstance { +func (x *TrajectoryInOrderMatchInput) GetInstances() []*TrajectoryInOrderMatchInstance { if x != nil { return x.Instances } return nil } -// Spec for TrajectoryPrecision metric - returns a float score based on average -// precision of individual tool calls. -type TrajectoryPrecisionSpec struct { +// Spec for TrajectoryInOrderMatch metric - returns 1 if tool calls in the +// reference trajectory appear in the predicted trajectory in the same order, +// else 0. +type TrajectoryInOrderMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *TrajectoryPrecisionSpec) Reset() { - *x = TrajectoryPrecisionSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[126] +func (x *TrajectoryInOrderMatchSpec) Reset() { + *x = TrajectoryInOrderMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryPrecisionSpec) String() string { +func (x *TrajectoryInOrderMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryPrecisionSpec) ProtoMessage() {} +func (*TrajectoryInOrderMatchSpec) ProtoMessage() {} -func (x *TrajectoryPrecisionSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[126] +func (x *TrajectoryInOrderMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8321,13 +8457,13 @@ func (x *TrajectoryPrecisionSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryPrecisionSpec.ProtoReflect.Descriptor instead. -func (*TrajectoryPrecisionSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{126} +// Deprecated: Use TrajectoryInOrderMatchSpec.ProtoReflect.Descriptor instead. +func (*TrajectoryInOrderMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{123} } -// Spec for TrajectoryPrecision instance. -type TrajectoryPrecisionInstance struct { +// Spec for TrajectoryInOrderMatch instance. +type TrajectoryInOrderMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -8338,21 +8474,21 @@ type TrajectoryPrecisionInstance struct { ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` } -func (x *TrajectoryPrecisionInstance) Reset() { - *x = TrajectoryPrecisionInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[127] +func (x *TrajectoryInOrderMatchInstance) Reset() { + *x = TrajectoryInOrderMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryPrecisionInstance) String() string { +func (x *TrajectoryInOrderMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryPrecisionInstance) ProtoMessage() {} +func (*TrajectoryInOrderMatchInstance) ProtoMessage() {} -func (x *TrajectoryPrecisionInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[127] +func (x *TrajectoryInOrderMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8363,50 +8499,50 @@ func (x *TrajectoryPrecisionInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryPrecisionInstance.ProtoReflect.Descriptor instead. -func (*TrajectoryPrecisionInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{127} +// Deprecated: Use TrajectoryInOrderMatchInstance.ProtoReflect.Descriptor instead. +func (*TrajectoryInOrderMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{124} } -func (x *TrajectoryPrecisionInstance) GetPredictedTrajectory() *Trajectory { +func (x *TrajectoryInOrderMatchInstance) GetPredictedTrajectory() *Trajectory { if x != nil { return x.PredictedTrajectory } return nil } -func (x *TrajectoryPrecisionInstance) GetReferenceTrajectory() *Trajectory { +func (x *TrajectoryInOrderMatchInstance) GetReferenceTrajectory() *Trajectory { if x != nil { return x.ReferenceTrajectory } return nil } -// Results for TrajectoryPrecision metric. -type TrajectoryPrecisionResults struct { +// Results for TrajectoryInOrderMatch metric. +type TrajectoryInOrderMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryPrecision metric values. - TrajectoryPrecisionMetricValues []*TrajectoryPrecisionMetricValue `protobuf:"bytes,1,rep,name=trajectory_precision_metric_values,json=trajectoryPrecisionMetricValues,proto3" json:"trajectory_precision_metric_values,omitempty"` + // Output only. TrajectoryInOrderMatch metric values. + TrajectoryInOrderMatchMetricValues []*TrajectoryInOrderMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_in_order_match_metric_values,json=trajectoryInOrderMatchMetricValues,proto3" json:"trajectory_in_order_match_metric_values,omitempty"` } -func (x *TrajectoryPrecisionResults) Reset() { - *x = TrajectoryPrecisionResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[128] +func (x *TrajectoryInOrderMatchResults) Reset() { + *x = TrajectoryInOrderMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryPrecisionResults) String() string { +func (x *TrajectoryInOrderMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryPrecisionResults) ProtoMessage() {} +func (*TrajectoryInOrderMatchResults) ProtoMessage() {} -func (x *TrajectoryPrecisionResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[128] +func (x *TrajectoryInOrderMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8417,43 +8553,43 @@ func (x *TrajectoryPrecisionResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryPrecisionResults.ProtoReflect.Descriptor instead. -func (*TrajectoryPrecisionResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{128} +// Deprecated: Use TrajectoryInOrderMatchResults.ProtoReflect.Descriptor instead. +func (*TrajectoryInOrderMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{125} } -func (x *TrajectoryPrecisionResults) GetTrajectoryPrecisionMetricValues() []*TrajectoryPrecisionMetricValue { +func (x *TrajectoryInOrderMatchResults) GetTrajectoryInOrderMatchMetricValues() []*TrajectoryInOrderMatchMetricValue { if x != nil { - return x.TrajectoryPrecisionMetricValues + return x.TrajectoryInOrderMatchMetricValues } return nil } -// TrajectoryPrecision metric value for an instance. -type TrajectoryPrecisionMetricValue struct { +// TrajectoryInOrderMatch metric value for an instance. +type TrajectoryInOrderMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryPrecision score. + // Output only. TrajectoryInOrderMatch score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryPrecisionMetricValue) Reset() { - *x = TrajectoryPrecisionMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) +func (x *TrajectoryInOrderMatchMetricValue) Reset() { + *x = TrajectoryInOrderMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryPrecisionMetricValue) String() string { +func (x *TrajectoryInOrderMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryPrecisionMetricValue) ProtoMessage() {} +func (*TrajectoryInOrderMatchMetricValue) ProtoMessage() {} -func (x *TrajectoryPrecisionMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[129] +func (x *TrajectoryInOrderMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8464,45 +8600,45 @@ func (x *TrajectoryPrecisionMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryPrecisionMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectoryPrecisionMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{129} +// Deprecated: Use TrajectoryInOrderMatchMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectoryInOrderMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{126} } -func (x *TrajectoryPrecisionMetricValue) GetScore() float32 { +func (x *TrajectoryInOrderMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Instances and metric spec for TrajectoryRecall metric. -type TrajectoryRecallInput struct { +// Instances and metric spec for TrajectoryAnyOrderMatch metric. +type TrajectoryAnyOrderMatchInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectoryRecall metric. - MetricSpec *TrajectoryRecallSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectoryRecall instance. - Instances []*TrajectoryRecallInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for TrajectoryAnyOrderMatch metric. + MetricSpec *TrajectoryAnyOrderMatchSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectoryAnyOrderMatch instance. + Instances []*TrajectoryAnyOrderMatchInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *TrajectoryRecallInput) Reset() { - *x = TrajectoryRecallInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[130] +func (x *TrajectoryAnyOrderMatchInput) Reset() { + *x = TrajectoryAnyOrderMatchInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryRecallInput) String() string { +func (x *TrajectoryAnyOrderMatchInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryRecallInput) ProtoMessage() {} +func (*TrajectoryAnyOrderMatchInput) ProtoMessage() {} -func (x *TrajectoryRecallInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[130] +func (x *TrajectoryAnyOrderMatchInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8513,48 +8649,49 @@ func (x *TrajectoryRecallInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryRecallInput.ProtoReflect.Descriptor instead. -func (*TrajectoryRecallInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{130} +// Deprecated: Use TrajectoryAnyOrderMatchInput.ProtoReflect.Descriptor instead. +func (*TrajectoryAnyOrderMatchInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{127} } -func (x *TrajectoryRecallInput) GetMetricSpec() *TrajectoryRecallSpec { +func (x *TrajectoryAnyOrderMatchInput) GetMetricSpec() *TrajectoryAnyOrderMatchSpec { if x != nil { return x.MetricSpec } return nil } -func (x *TrajectoryRecallInput) GetInstances() []*TrajectoryRecallInstance { +func (x *TrajectoryAnyOrderMatchInput) GetInstances() []*TrajectoryAnyOrderMatchInstance { if x != nil { return x.Instances } return nil } -// Spec for TrajectoryRecall metric - returns a float score based on average -// recall of individual tool calls. -type TrajectoryRecallSpec struct { +// Spec for TrajectoryAnyOrderMatch metric - returns 1 if all tool calls in the +// reference trajectory appear in the predicted trajectory in any order, else +// 0. +type TrajectoryAnyOrderMatchSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *TrajectoryRecallSpec) Reset() { - *x = TrajectoryRecallSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[131] +func (x *TrajectoryAnyOrderMatchSpec) Reset() { + *x = TrajectoryAnyOrderMatchSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryRecallSpec) String() string { +func (x *TrajectoryAnyOrderMatchSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryRecallSpec) ProtoMessage() {} +func (*TrajectoryAnyOrderMatchSpec) ProtoMessage() {} -func (x *TrajectoryRecallSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[131] +func (x *TrajectoryAnyOrderMatchSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8565,13 +8702,13 @@ func (x *TrajectoryRecallSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryRecallSpec.ProtoReflect.Descriptor instead. -func (*TrajectoryRecallSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{131} +// Deprecated: Use TrajectoryAnyOrderMatchSpec.ProtoReflect.Descriptor instead. +func (*TrajectoryAnyOrderMatchSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{128} } -// Spec for TrajectoryRecall instance. -type TrajectoryRecallInstance struct { +// Spec for TrajectoryAnyOrderMatch instance. +type TrajectoryAnyOrderMatchInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -8582,21 +8719,21 @@ type TrajectoryRecallInstance struct { ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` } -func (x *TrajectoryRecallInstance) Reset() { - *x = TrajectoryRecallInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[132] +func (x *TrajectoryAnyOrderMatchInstance) Reset() { + *x = TrajectoryAnyOrderMatchInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryRecallInstance) String() string { +func (x *TrajectoryAnyOrderMatchInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryRecallInstance) ProtoMessage() {} +func (*TrajectoryAnyOrderMatchInstance) ProtoMessage() {} -func (x *TrajectoryRecallInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[132] +func (x *TrajectoryAnyOrderMatchInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8607,50 +8744,50 @@ func (x *TrajectoryRecallInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryRecallInstance.ProtoReflect.Descriptor instead. -func (*TrajectoryRecallInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{132} +// Deprecated: Use TrajectoryAnyOrderMatchInstance.ProtoReflect.Descriptor instead. +func (*TrajectoryAnyOrderMatchInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{129} } -func (x *TrajectoryRecallInstance) GetPredictedTrajectory() *Trajectory { +func (x *TrajectoryAnyOrderMatchInstance) GetPredictedTrajectory() *Trajectory { if x != nil { return x.PredictedTrajectory } return nil } -func (x *TrajectoryRecallInstance) GetReferenceTrajectory() *Trajectory { +func (x *TrajectoryAnyOrderMatchInstance) GetReferenceTrajectory() *Trajectory { if x != nil { return x.ReferenceTrajectory } return nil } -// Results for TrajectoryRecall metric. -type TrajectoryRecallResults struct { +// Results for TrajectoryAnyOrderMatch metric. +type TrajectoryAnyOrderMatchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryRecall metric values. - TrajectoryRecallMetricValues []*TrajectoryRecallMetricValue `protobuf:"bytes,1,rep,name=trajectory_recall_metric_values,json=trajectoryRecallMetricValues,proto3" json:"trajectory_recall_metric_values,omitempty"` + // Output only. TrajectoryAnyOrderMatch metric values. + TrajectoryAnyOrderMatchMetricValues []*TrajectoryAnyOrderMatchMetricValue `protobuf:"bytes,1,rep,name=trajectory_any_order_match_metric_values,json=trajectoryAnyOrderMatchMetricValues,proto3" json:"trajectory_any_order_match_metric_values,omitempty"` } -func (x *TrajectoryRecallResults) Reset() { - *x = TrajectoryRecallResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[133] +func (x *TrajectoryAnyOrderMatchResults) Reset() { + *x = TrajectoryAnyOrderMatchResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryRecallResults) String() string { +func (x *TrajectoryAnyOrderMatchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryRecallResults) ProtoMessage() {} +func (*TrajectoryAnyOrderMatchResults) ProtoMessage() {} -func (x *TrajectoryRecallResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[133] +func (x *TrajectoryAnyOrderMatchResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8661,43 +8798,43 @@ func (x *TrajectoryRecallResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryRecallResults.ProtoReflect.Descriptor instead. -func (*TrajectoryRecallResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{133} +// Deprecated: Use TrajectoryAnyOrderMatchResults.ProtoReflect.Descriptor instead. +func (*TrajectoryAnyOrderMatchResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{130} } -func (x *TrajectoryRecallResults) GetTrajectoryRecallMetricValues() []*TrajectoryRecallMetricValue { +func (x *TrajectoryAnyOrderMatchResults) GetTrajectoryAnyOrderMatchMetricValues() []*TrajectoryAnyOrderMatchMetricValue { if x != nil { - return x.TrajectoryRecallMetricValues + return x.TrajectoryAnyOrderMatchMetricValues } return nil } -// TrajectoryRecall metric value for an instance. -type TrajectoryRecallMetricValue struct { +// TrajectoryAnyOrderMatch metric value for an instance. +type TrajectoryAnyOrderMatchMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectoryRecall score. + // Output only. TrajectoryAnyOrderMatch score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectoryRecallMetricValue) Reset() { - *x = TrajectoryRecallMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[134] +func (x *TrajectoryAnyOrderMatchMetricValue) Reset() { + *x = TrajectoryAnyOrderMatchMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectoryRecallMetricValue) String() string { +func (x *TrajectoryAnyOrderMatchMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectoryRecallMetricValue) ProtoMessage() {} +func (*TrajectoryAnyOrderMatchMetricValue) ProtoMessage() {} -func (x *TrajectoryRecallMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[134] +func (x *TrajectoryAnyOrderMatchMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8708,45 +8845,45 @@ func (x *TrajectoryRecallMetricValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectoryRecallMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectoryRecallMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{134} +// Deprecated: Use TrajectoryAnyOrderMatchMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectoryAnyOrderMatchMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{131} } -func (x *TrajectoryRecallMetricValue) GetScore() float32 { +func (x *TrajectoryAnyOrderMatchMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Instances and metric spec for TrajectorySingleToolUse metric. -type TrajectorySingleToolUseInput struct { +// Instances and metric spec for TrajectoryPrecision metric. +type TrajectoryPrecisionInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Spec for TrajectorySingleToolUse metric. - MetricSpec *TrajectorySingleToolUseSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` - // Required. Repeated TrajectorySingleToolUse instance. - Instances []*TrajectorySingleToolUseInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + // Required. Spec for TrajectoryPrecision metric. + MetricSpec *TrajectoryPrecisionSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectoryPrecision instance. + Instances []*TrajectoryPrecisionInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *TrajectorySingleToolUseInput) Reset() { - *x = TrajectorySingleToolUseInput{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[135] +func (x *TrajectoryPrecisionInput) Reset() { + *x = TrajectoryPrecisionInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectorySingleToolUseInput) String() string { +func (x *TrajectoryPrecisionInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectorySingleToolUseInput) ProtoMessage() {} +func (*TrajectoryPrecisionInput) ProtoMessage() {} -func (x *TrajectorySingleToolUseInput) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[135] +func (x *TrajectoryPrecisionInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8757,51 +8894,48 @@ func (x *TrajectorySingleToolUseInput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectorySingleToolUseInput.ProtoReflect.Descriptor instead. -func (*TrajectorySingleToolUseInput) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{135} +// Deprecated: Use TrajectoryPrecisionInput.ProtoReflect.Descriptor instead. +func (*TrajectoryPrecisionInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{132} } -func (x *TrajectorySingleToolUseInput) GetMetricSpec() *TrajectorySingleToolUseSpec { +func (x *TrajectoryPrecisionInput) GetMetricSpec() *TrajectoryPrecisionSpec { if x != nil { return x.MetricSpec } return nil } -func (x *TrajectorySingleToolUseInput) GetInstances() []*TrajectorySingleToolUseInstance { +func (x *TrajectoryPrecisionInput) GetInstances() []*TrajectoryPrecisionInstance { if x != nil { return x.Instances } return nil } -// Spec for TrajectorySingleToolUse metric - returns 1 if tool is present in the -// predicted trajectory, else 0. -type TrajectorySingleToolUseSpec struct { +// Spec for TrajectoryPrecision metric - returns a float score based on average +// precision of individual tool calls. +type TrajectoryPrecisionSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Required. Spec for tool name to be checked for in the predicted trajectory. - ToolName *string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3,oneof" json:"tool_name,omitempty"` } -func (x *TrajectorySingleToolUseSpec) Reset() { - *x = TrajectorySingleToolUseSpec{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[136] +func (x *TrajectoryPrecisionSpec) Reset() { + *x = TrajectoryPrecisionSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectorySingleToolUseSpec) String() string { +func (x *TrajectoryPrecisionSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectorySingleToolUseSpec) ProtoMessage() {} +func (*TrajectoryPrecisionSpec) ProtoMessage() {} -func (x *TrajectorySingleToolUseSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[136] +func (x *TrajectoryPrecisionSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8812,43 +8946,38 @@ func (x *TrajectorySingleToolUseSpec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectorySingleToolUseSpec.ProtoReflect.Descriptor instead. -func (*TrajectorySingleToolUseSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{136} -} - -func (x *TrajectorySingleToolUseSpec) GetToolName() string { - if x != nil && x.ToolName != nil { - return *x.ToolName - } - return "" +// Deprecated: Use TrajectoryPrecisionSpec.ProtoReflect.Descriptor instead. +func (*TrajectoryPrecisionSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{133} } -// Spec for TrajectorySingleToolUse instance. -type TrajectorySingleToolUseInstance struct { +// Spec for TrajectoryPrecision instance. +type TrajectoryPrecisionInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Spec for predicted tool call trajectory. PredictedTrajectory *Trajectory `protobuf:"bytes,1,opt,name=predicted_trajectory,json=predictedTrajectory,proto3,oneof" json:"predicted_trajectory,omitempty"` + // Required. Spec for reference tool call trajectory. + ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` } -func (x *TrajectorySingleToolUseInstance) Reset() { - *x = TrajectorySingleToolUseInstance{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[137] +func (x *TrajectoryPrecisionInstance) Reset() { + *x = TrajectoryPrecisionInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectorySingleToolUseInstance) String() string { +func (x *TrajectoryPrecisionInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectorySingleToolUseInstance) ProtoMessage() {} +func (*TrajectoryPrecisionInstance) ProtoMessage() {} -func (x *TrajectorySingleToolUseInstance) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[137] +func (x *TrajectoryPrecisionInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8859,43 +8988,50 @@ func (x *TrajectorySingleToolUseInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectorySingleToolUseInstance.ProtoReflect.Descriptor instead. -func (*TrajectorySingleToolUseInstance) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{137} +// Deprecated: Use TrajectoryPrecisionInstance.ProtoReflect.Descriptor instead. +func (*TrajectoryPrecisionInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{134} } -func (x *TrajectorySingleToolUseInstance) GetPredictedTrajectory() *Trajectory { +func (x *TrajectoryPrecisionInstance) GetPredictedTrajectory() *Trajectory { if x != nil { return x.PredictedTrajectory } return nil } -// Results for TrajectorySingleToolUse metric. -type TrajectorySingleToolUseResults struct { +func (x *TrajectoryPrecisionInstance) GetReferenceTrajectory() *Trajectory { + if x != nil { + return x.ReferenceTrajectory + } + return nil +} + +// Results for TrajectoryPrecision metric. +type TrajectoryPrecisionResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectorySingleToolUse metric values. - TrajectorySingleToolUseMetricValues []*TrajectorySingleToolUseMetricValue `protobuf:"bytes,1,rep,name=trajectory_single_tool_use_metric_values,json=trajectorySingleToolUseMetricValues,proto3" json:"trajectory_single_tool_use_metric_values,omitempty"` + // Output only. TrajectoryPrecision metric values. + TrajectoryPrecisionMetricValues []*TrajectoryPrecisionMetricValue `protobuf:"bytes,1,rep,name=trajectory_precision_metric_values,json=trajectoryPrecisionMetricValues,proto3" json:"trajectory_precision_metric_values,omitempty"` } -func (x *TrajectorySingleToolUseResults) Reset() { - *x = TrajectorySingleToolUseResults{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[138] +func (x *TrajectoryPrecisionResults) Reset() { + *x = TrajectoryPrecisionResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectorySingleToolUseResults) String() string { +func (x *TrajectoryPrecisionResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectorySingleToolUseResults) ProtoMessage() {} +func (*TrajectoryPrecisionResults) ProtoMessage() {} -func (x *TrajectorySingleToolUseResults) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[138] +func (x *TrajectoryPrecisionResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8906,43 +9042,43 @@ func (x *TrajectorySingleToolUseResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TrajectorySingleToolUseResults.ProtoReflect.Descriptor instead. -func (*TrajectorySingleToolUseResults) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{138} +// Deprecated: Use TrajectoryPrecisionResults.ProtoReflect.Descriptor instead. +func (*TrajectoryPrecisionResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{135} } -func (x *TrajectorySingleToolUseResults) GetTrajectorySingleToolUseMetricValues() []*TrajectorySingleToolUseMetricValue { +func (x *TrajectoryPrecisionResults) GetTrajectoryPrecisionMetricValues() []*TrajectoryPrecisionMetricValue { if x != nil { - return x.TrajectorySingleToolUseMetricValues + return x.TrajectoryPrecisionMetricValues } return nil } -// TrajectorySingleToolUse metric value for an instance. -type TrajectorySingleToolUseMetricValue struct { +// TrajectoryPrecision metric value for an instance. +type TrajectoryPrecisionMetricValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. TrajectorySingleToolUse score. + // Output only. TrajectoryPrecision score. Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` } -func (x *TrajectorySingleToolUseMetricValue) Reset() { - *x = TrajectorySingleToolUseMetricValue{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[139] +func (x *TrajectoryPrecisionMetricValue) Reset() { + *x = TrajectoryPrecisionMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TrajectorySingleToolUseMetricValue) String() string { +func (x *TrajectoryPrecisionMetricValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TrajectorySingleToolUseMetricValue) ProtoMessage() {} +func (*TrajectoryPrecisionMetricValue) ProtoMessage() {} -func (x *TrajectorySingleToolUseMetricValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[139] +func (x *TrajectoryPrecisionMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8953,43 +9089,45 @@ func (x *TrajectorySingleToolUseMetricValue) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use TrajectorySingleToolUseMetricValue.ProtoReflect.Descriptor instead. -func (*TrajectorySingleToolUseMetricValue) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{139} +// Deprecated: Use TrajectoryPrecisionMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectoryPrecisionMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{136} } -func (x *TrajectorySingleToolUseMetricValue) GetScore() float32 { +func (x *TrajectoryPrecisionMetricValue) GetScore() float32 { if x != nil && x.Score != nil { return *x.Score } return 0 } -// Spec for trajectory. -type Trajectory struct { +// Instances and metric spec for TrajectoryRecall metric. +type TrajectoryRecallInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. Tool calls in the trajectory. - ToolCalls []*ToolCall `protobuf:"bytes,1,rep,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"` + // Required. Spec for TrajectoryRecall metric. + MetricSpec *TrajectoryRecallSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectoryRecall instance. + Instances []*TrajectoryRecallInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` } -func (x *Trajectory) Reset() { - *x = Trajectory{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[140] +func (x *TrajectoryRecallInput) Reset() { + *x = TrajectoryRecallInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *Trajectory) String() string { +func (x *TrajectoryRecallInput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Trajectory) ProtoMessage() {} +func (*TrajectoryRecallInput) ProtoMessage() {} -func (x *Trajectory) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[140] +func (x *TrajectoryRecallInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9000,45 +9138,90 @@ func (x *Trajectory) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Trajectory.ProtoReflect.Descriptor instead. -func (*Trajectory) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{140} +// Deprecated: Use TrajectoryRecallInput.ProtoReflect.Descriptor instead. +func (*TrajectoryRecallInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{137} } -func (x *Trajectory) GetToolCalls() []*ToolCall { +func (x *TrajectoryRecallInput) GetMetricSpec() *TrajectoryRecallSpec { if x != nil { - return x.ToolCalls + return x.MetricSpec } return nil } -// Spec for tool call. -type ToolCall struct { +func (x *TrajectoryRecallInput) GetInstances() []*TrajectoryRecallInstance { + if x != nil { + return x.Instances + } + return nil +} + +// Spec for TrajectoryRecall metric - returns a float score based on average +// recall of individual tool calls. +type TrajectoryRecallSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields +} - // Required. Spec for tool name - ToolName *string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3,oneof" json:"tool_name,omitempty"` - // Optional. Spec for tool input - ToolInput *string `protobuf:"bytes,2,opt,name=tool_input,json=toolInput,proto3,oneof" json:"tool_input,omitempty"` +func (x *TrajectoryRecallSpec) Reset() { + *x = TrajectoryRecallSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *ToolCall) Reset() { - *x = ToolCall{} - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[141] +func (x *TrajectoryRecallSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectoryRecallSpec) ProtoMessage() {} + +func (x *TrajectoryRecallSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[138] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectoryRecallSpec.ProtoReflect.Descriptor instead. +func (*TrajectoryRecallSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{138} +} + +// Spec for TrajectoryRecall instance. +type TrajectoryRecallInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Spec for predicted tool call trajectory. + PredictedTrajectory *Trajectory `protobuf:"bytes,1,opt,name=predicted_trajectory,json=predictedTrajectory,proto3,oneof" json:"predicted_trajectory,omitempty"` + // Required. Spec for reference tool call trajectory. + ReferenceTrajectory *Trajectory `protobuf:"bytes,2,opt,name=reference_trajectory,json=referenceTrajectory,proto3,oneof" json:"reference_trajectory,omitempty"` +} + +func (x *TrajectoryRecallInstance) Reset() { + *x = TrajectoryRecallInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ToolCall) String() string { +func (x *TrajectoryRecallInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ToolCall) ProtoMessage() {} +func (*TrajectoryRecallInstance) ProtoMessage() {} -func (x *ToolCall) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[141] +func (x *TrajectoryRecallInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[139] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9049,692 +9232,1324 @@ func (x *ToolCall) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ToolCall.ProtoReflect.Descriptor instead. -func (*ToolCall) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{141} +// Deprecated: Use TrajectoryRecallInstance.ProtoReflect.Descriptor instead. +func (*TrajectoryRecallInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{139} } -func (x *ToolCall) GetToolName() string { - if x != nil && x.ToolName != nil { - return *x.ToolName +func (x *TrajectoryRecallInstance) GetPredictedTrajectory() *Trajectory { + if x != nil { + return x.PredictedTrajectory } - return "" + return nil } -func (x *ToolCall) GetToolInput() string { - if x != nil && x.ToolInput != nil { - return *x.ToolInput +func (x *TrajectoryRecallInstance) GetReferenceTrajectory() *Trajectory { + if x != nil { + return x.ReferenceTrajectory } - return "" + return nil } -var File_google_cloud_aiplatform_v1beta1_evaluation_service_proto protoreflect.FileDescriptor +// Results for TrajectoryRecall metric. +type TrajectoryRecallResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []byte{ - 0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, - 0x01, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x0e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x0d, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0c, 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, - 0x52, 0x0b, 0x66, 0x6c, 0x69, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x96, 0x1e, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x5e, 0x0a, 0x11, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, - 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0f, - 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, - 0x4b, 0x0a, 0x0a, 0x62, 0x6c, 0x65, 0x75, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, - 0x00, 0x52, 0x09, 0x62, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4e, 0x0a, 0x0b, - 0x72, 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, - 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x0d, - 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0e, - 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x51, - 0x0a, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x63, 0x0a, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x48, 0x00, 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x60, 0x0a, 0x11, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, - 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7c, 0x0a, 0x1b, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x70, 0x61, 0x69, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x21, 0x70, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x88, - 0x01, 0x0a, 0x1f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x1d, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x62, - 0x6f, 0x73, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, - 0x00, 0x52, 0x1b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x89, - 0x01, 0x0a, 0x20, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x29, 0x70, - 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + // Output only. TrajectoryRecall metric values. + TrajectoryRecallMetricValues []*TrajectoryRecallMetricValue `protobuf:"bytes,1,rep,name=trajectory_recall_metric_values,json=trajectoryRecallMetricValues,proto3" json:"trajectory_recall_metric_values,omitempty"` +} + +func (x *TrajectoryRecallResults) Reset() { + *x = TrajectoryRecallResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectoryRecallResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectoryRecallResults) ProtoMessage() {} + +func (x *TrajectoryRecallResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[140] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectoryRecallResults.ProtoReflect.Descriptor instead. +func (*TrajectoryRecallResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{140} +} + +func (x *TrajectoryRecallResults) GetTrajectoryRecallMetricValues() []*TrajectoryRecallMetricValue { + if x != nil { + return x.TrajectoryRecallMetricValues + } + return nil +} + +// TrajectoryRecall metric value for an instance. +type TrajectoryRecallMetricValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. TrajectoryRecall score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` +} + +func (x *TrajectoryRecallMetricValue) Reset() { + *x = TrajectoryRecallMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectoryRecallMetricValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectoryRecallMetricValue) ProtoMessage() {} + +func (x *TrajectoryRecallMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[141] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectoryRecallMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectoryRecallMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{141} +} + +func (x *TrajectoryRecallMetricValue) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +// Instances and metric spec for TrajectorySingleToolUse metric. +type TrajectorySingleToolUseInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Spec for TrajectorySingleToolUse metric. + MetricSpec *TrajectorySingleToolUseSpec `protobuf:"bytes,1,opt,name=metric_spec,json=metricSpec,proto3" json:"metric_spec,omitempty"` + // Required. Repeated TrajectorySingleToolUse instance. + Instances []*TrajectorySingleToolUseInstance `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` +} + +func (x *TrajectorySingleToolUseInput) Reset() { + *x = TrajectorySingleToolUseInput{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectorySingleToolUseInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectorySingleToolUseInput) ProtoMessage() {} + +func (x *TrajectorySingleToolUseInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[142] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectorySingleToolUseInput.ProtoReflect.Descriptor instead. +func (*TrajectorySingleToolUseInput) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{142} +} + +func (x *TrajectorySingleToolUseInput) GetMetricSpec() *TrajectorySingleToolUseSpec { + if x != nil { + return x.MetricSpec + } + return nil +} + +func (x *TrajectorySingleToolUseInput) GetInstances() []*TrajectorySingleToolUseInstance { + if x != nil { + return x.Instances + } + return nil +} + +// Spec for TrajectorySingleToolUse metric - returns 1 if tool is present in the +// predicted trajectory, else 0. +type TrajectorySingleToolUseSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Spec for tool name to be checked for in the predicted trajectory. + ToolName *string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3,oneof" json:"tool_name,omitempty"` +} + +func (x *TrajectorySingleToolUseSpec) Reset() { + *x = TrajectorySingleToolUseSpec{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectorySingleToolUseSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectorySingleToolUseSpec) ProtoMessage() {} + +func (x *TrajectorySingleToolUseSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[143] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectorySingleToolUseSpec.ProtoReflect.Descriptor instead. +func (*TrajectorySingleToolUseSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{143} +} + +func (x *TrajectorySingleToolUseSpec) GetToolName() string { + if x != nil && x.ToolName != nil { + return *x.ToolName + } + return "" +} + +// Spec for TrajectorySingleToolUse instance. +type TrajectorySingleToolUseInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Spec for predicted tool call trajectory. + PredictedTrajectory *Trajectory `protobuf:"bytes,1,opt,name=predicted_trajectory,json=predictedTrajectory,proto3,oneof" json:"predicted_trajectory,omitempty"` +} + +func (x *TrajectorySingleToolUseInstance) Reset() { + *x = TrajectorySingleToolUseInstance{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectorySingleToolUseInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectorySingleToolUseInstance) ProtoMessage() {} + +func (x *TrajectorySingleToolUseInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[144] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectorySingleToolUseInstance.ProtoReflect.Descriptor instead. +func (*TrajectorySingleToolUseInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{144} +} + +func (x *TrajectorySingleToolUseInstance) GetPredictedTrajectory() *Trajectory { + if x != nil { + return x.PredictedTrajectory + } + return nil +} + +// Results for TrajectorySingleToolUse metric. +type TrajectorySingleToolUseResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. TrajectorySingleToolUse metric values. + TrajectorySingleToolUseMetricValues []*TrajectorySingleToolUseMetricValue `protobuf:"bytes,1,rep,name=trajectory_single_tool_use_metric_values,json=trajectorySingleToolUseMetricValues,proto3" json:"trajectory_single_tool_use_metric_values,omitempty"` +} + +func (x *TrajectorySingleToolUseResults) Reset() { + *x = TrajectorySingleToolUseResults{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectorySingleToolUseResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectorySingleToolUseResults) ProtoMessage() {} + +func (x *TrajectorySingleToolUseResults) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[145] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectorySingleToolUseResults.ProtoReflect.Descriptor instead. +func (*TrajectorySingleToolUseResults) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{145} +} + +func (x *TrajectorySingleToolUseResults) GetTrajectorySingleToolUseMetricValues() []*TrajectorySingleToolUseMetricValue { + if x != nil { + return x.TrajectorySingleToolUseMetricValues + } + return nil +} + +// TrajectorySingleToolUse metric value for an instance. +type TrajectorySingleToolUseMetricValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. TrajectorySingleToolUse score. + Score *float32 `protobuf:"fixed32,1,opt,name=score,proto3,oneof" json:"score,omitempty"` +} + +func (x *TrajectorySingleToolUseMetricValue) Reset() { + *x = TrajectorySingleToolUseMetricValue{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrajectorySingleToolUseMetricValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrajectorySingleToolUseMetricValue) ProtoMessage() {} + +func (x *TrajectorySingleToolUseMetricValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[146] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrajectorySingleToolUseMetricValue.ProtoReflect.Descriptor instead. +func (*TrajectorySingleToolUseMetricValue) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{146} +} + +func (x *TrajectorySingleToolUseMetricValue) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +// Spec for trajectory. +type Trajectory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Tool calls in the trajectory. + ToolCalls []*ToolCall `protobuf:"bytes,1,rep,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"` +} + +func (x *Trajectory) Reset() { + *x = Trajectory{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Trajectory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Trajectory) ProtoMessage() {} + +func (x *Trajectory) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[147] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Trajectory.ProtoReflect.Descriptor instead. +func (*Trajectory) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{147} +} + +func (x *Trajectory) GetToolCalls() []*ToolCall { + if x != nil { + return x.ToolCalls + } + return nil +} + +// Spec for tool call. +type ToolCall struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Spec for tool name + ToolName *string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3,oneof" json:"tool_name,omitempty"` + // Optional. Spec for tool input + ToolInput *string `protobuf:"bytes,2,opt,name=tool_input,json=toolInput,proto3,oneof" json:"tool_input,omitempty"` +} + +func (x *ToolCall) Reset() { + *x = ToolCall{} + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ToolCall) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToolCall) ProtoMessage() {} + +func (x *ToolCall) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[148] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToolCall.ProtoReflect.Descriptor instead. +func (*ToolCall) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP(), []int{148} +} + +func (x *ToolCall) GetToolName() string { + if x != nil && x.ToolName != nil { + return *x.ToolName + } + return "" +} + +func (x *ToolCall) GetToolInput() string { + if x != nil && x.ToolInput != nil { + return *x.ToolInput + } + return "" +} + +var File_google_cloud_aiplatform_v1beta1_evaluation_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []byte{ + 0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, + 0x01, 0x0a, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x17, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x14, 0x67, 0x63, 0x73, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x12, 0x67, 0x63, 0x73, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x11, + 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xb5, 0x03, 0x0a, 0x16, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x64, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x57, + 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x79, 0x0a, 0x0c, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x0f, 0x67, 0x63, 0x73, + 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x06, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x6a, 0x0a, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x67, 0x0a, 0x14, 0x70, + 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, + 0x52, 0x12, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x48, + 0x00, 0x52, 0x0e, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x48, 0x0a, 0x09, 0x62, 0x6c, 0x65, 0x75, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, 0x63, 0x48, + 0x00, 0x52, 0x08, 0x62, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x0a, 0x72, + 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x09, 0x72, + 0x6f, 0x75, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x13, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x11, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x22, 0x0a, 0x1e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, + 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, + 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x41, 0x52, 0x49, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 0x4d, 0x10, 0x05, 0x12, 0x0b, 0x0a, + 0x07, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, + 0x44, 0x49, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, + 0x54, 0x49, 0x4c, 0x45, 0x5f, 0x50, 0x39, 0x30, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, + 0x52, 0x43, 0x45, 0x4e, 0x54, 0x49, 0x4c, 0x45, 0x5f, 0x50, 0x39, 0x35, 0x10, 0x09, 0x12, 0x12, + 0x0a, 0x0e, 0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x49, 0x4c, 0x45, 0x5f, 0x50, 0x39, 0x39, + 0x10, 0x0a, 0x42, 0x0d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x22, 0xc6, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, + 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, + 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x0f, 0x41, + 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, + 0x0a, 0x0e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x0c, 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0b, 0x66, 0x6c, + 0x69, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, + 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x61, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x96, + 0x1e, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x11, 0x65, + 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x61, 0x63, + 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x62, + 0x6c, 0x65, 0x75, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, 0x62, + 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x67, + 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, + 0x75, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x65, + 0x6e, 0x63, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, + 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5a, + 0x0a, 0x0f, 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x68, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x73, 0x61, + 0x66, 0x65, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, + 0x52, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x63, 0x0a, + 0x12, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, + 0x11, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x60, 0x0a, 0x11, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x48, 0x00, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7c, 0x0a, 0x1b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x21, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x1f, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x6c, + 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x1d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, + 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1b, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, + 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x89, 0x01, 0x0a, 0x20, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x25, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, - 0x8f, 0x01, 0x0a, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, + 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x29, 0x70, 0x61, 0x69, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x25, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x22, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x95, 0x01, + 0x0a, 0x24, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, - 0x52, 0x1f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x21, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, - 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x21, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x14, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x6a, 0x0a, 0x15, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x13, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x68, 0x0a, 0x15, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, + 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x48, 0x00, 0x52, 0x21, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x72, + 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x21, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, + 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x6d, 0x0a, + 0x16, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x14, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x6a, 0x0a, 0x15, + 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x48, 0x00, 0x52, 0x12, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x68, 0x0a, 0x15, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, + 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x48, 0x00, 0x52, 0x13, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x68, 0x0a, 0x15, 0x74, 0x6f, 0x6f, 0x6c, + 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x12, + 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x68, 0x0a, 0x15, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x12, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x81, 0x01, 0x0a, + 0x1e, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x12, 0x74, 0x6f, - 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x81, 0x01, 0x0a, 0x1e, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7e, 0x0a, 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, - 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, 0x74, 0x6f, 0x6f, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x5f, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, - 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7d, 0x0a, 0x1c, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, - 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, - 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x84, 0x01, 0x0a, 0x1f, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x22, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, - 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x87, 0x01, 0x0a, 0x20, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, - 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x1a, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x7e, 0x0a, 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x5f, 0x6b, 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x4e, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x54, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7d, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x84, 0x01, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, + 0x1b, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x87, 0x01, 0x0a, + 0x20, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x6e, 0x79, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x1a, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x70, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, + 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x15, 0x74, 0x72, + 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, + 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x18, 0x74, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x70, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, + 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0xf9, 0x1d, 0x0a, 0x19, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x11, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0c, 0x62, + 0x6c, 0x65, 0x75, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, + 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x54, + 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0d, + 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, + 0x10, 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x68, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x54, 0x0a, 0x0d, + 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x66, 0x0a, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x63, 0x0a, 0x12, 0x66, 0x75, + 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, - 0x52, 0x15, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, - 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x74, 0x72, 0x61, 0x6a, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x27, 0x20, 0x01, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x11, 0x66, 0x75, + 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x7f, 0x0a, 0x1c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x98, 0x01, 0x0a, 0x25, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x22, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x20, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, + 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x73, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x1e, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x62, + 0x6f, 0x73, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x48, 0x00, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x45, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x72, - 0x61, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0xf9, 0x1d, 0x0a, 0x19, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x65, 0x78, 0x61, - 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x8c, 0x01, 0x0a, 0x21, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, + 0x52, 0x1e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0xa5, 0x01, 0x0a, 0x2a, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, + 0x52, 0x26, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x23, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x11, 0x65, 0x78, - 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x51, 0x0a, 0x0c, 0x62, 0x6c, 0x65, 0x75, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x20, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x98, 0x01, + 0x0a, 0x25, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x48, 0x00, 0x52, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x98, 0x01, 0x0a, 0x25, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, + 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, + 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x70, 0x0a, 0x17, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x15, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x66, 0x6c, 0x75, 0x65, - 0x6e, 0x63, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x48, 0x00, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x5d, 0x0a, 0x10, 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x14, + 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6e, 0x0a, 0x17, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, + 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x14, + 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x17, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x14, + 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, + 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, + 0x52, 0x1c, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, + 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x84, + 0x01, 0x0a, 0x1f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x5f, 0x6b, 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, - 0x0f, 0x63, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x54, 0x0a, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x66, 0x0a, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x63, - 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, - 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, - 0x52, 0x11, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x7f, 0x0a, 0x1c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x98, 0x01, 0x0a, 0x25, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x22, 0x70, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x8b, 0x01, 0x0a, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, + 0x6d, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x57, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, - 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, - 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x85, 0x01, - 0x0a, 0x1e, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x8c, 0x01, 0x0a, 0x21, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x21, 0x74, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1d, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0xa5, 0x01, 0x0a, 0x2a, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x48, 0x00, 0x52, 0x26, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x92, 0x01, 0x0a, - 0x23, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, + 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x7f, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, - 0x20, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x98, 0x01, 0x0a, 0x25, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x48, 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x8d, 0x01, + 0x0a, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, + 0x6c, 0x55, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x74, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, + 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x14, 0x0a, + 0x12, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, + 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x56, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x61, 0x63, 0x74, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, + 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x10, 0x0a, 0x0e, + 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0x8b, + 0x01, 0x0a, 0x11, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x19, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x15, + 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, + 0xae, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4f, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x50, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, - 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x98, 0x01, 0x0a, - 0x25, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x48, 0x00, 0x52, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x70, 0x0a, 0x17, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x22, 0x7d, 0x0a, 0x0c, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, + 0x3f, 0x0a, 0x08, 0x42, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, 0x63, 0x12, 0x33, 0x0a, 0x13, 0x75, + 0x73, 0x65, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x75, + 0x73, 0x65, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x22, 0x72, 0x0a, 0x0b, 0x42, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, + 0x63, 0x0a, 0x12, 0x62, 0x6c, 0x65, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, + 0x65, 0x75, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x10, 0x62, 0x6c, 0x65, 0x75, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x0f, 0x42, 0x6c, 0x65, 0x75, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x6f, + 0x75, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73, + 0x74, 0x65, 0x6d, 0x6d, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x53, 0x74, 0x65, 0x6d, 0x6d, 0x65, 0x72, 0x12, 0x2c, 0x0a, + 0x0f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x76, 0x0a, 0x0c, 0x52, + 0x6f, 0x75, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x66, 0x0a, 0x13, 0x72, + 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x48, 0x00, 0x52, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x70, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6e, 0x0a, 0x17, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x48, 0x00, 0x52, 0x14, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x17, 0x74, 0x6f, 0x6f, 0x6c, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x11, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x10, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x48, 0x00, 0x52, 0x14, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x74, 0x6f, 0x6f, - 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x48, 0x00, 0x52, 0x1c, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x1f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x68, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x53, 0x0a, 0x08, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, - 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x6f, - 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, - 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x57, 0x0a, 0x0e, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1b, - 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x21, - 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1d, 0x74, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x22, 0x74, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x7f, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6a, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x11, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, + 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, + 0x0d, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9b, 0x01, + 0x0a, 0x0f, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, + 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0c, + 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x51, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x0f, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x2c, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x99, 0x01, + 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0b, 0x53, 0x61, + 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x51, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x74, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x19, 0x74, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x73, 0x65, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, + 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x50, 0x0a, 0x08, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, - 0x00, 0x52, 0x1e, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x42, 0x14, 0x0a, 0x12, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x61, 0x63, - 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x12, 0x45, - 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x22, 0x10, 0x0a, 0x0e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x76, 0x0a, 0x19, 0x65, 0x78, 0x61, 0x63, - 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, - 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x22, 0x41, 0x0a, 0x15, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7d, 0x0a, 0x0c, 0x42, 0x6c, 0x65, 0x75, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x22, 0x3f, 0x0a, 0x08, 0x42, 0x6c, 0x65, 0x75, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x33, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x11, 0x75, 0x73, 0x65, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x22, 0x72, 0x0a, 0x0b, 0x42, 0x6c, 0x65, 0x75, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x12, 0x62, 0x6c, 0x65, 0x75, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x42, 0x6c, 0x65, 0x75, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x62, 0x6c, 0x65, 0x75, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x0f, 0x42, 0x6c, 0x65, 0x75, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x67, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x0d, 0x52, 0x6f, 0x75, - 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x52, 0x6f, - 0x75, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x67, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x09, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x75, - 0x73, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x6d, 0x6d, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x53, 0x74, 0x65, 0x6d, 0x6d, 0x65, - 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, - 0x76, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x66, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, + 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x49, + 0x0a, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2b, 0x0a, 0x0a, 0x53, 0x61, 0x66, + 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x53, 0x61, 0x66, 0x65, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, + 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x57, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, - 0x6f, 0x75, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x10, 0x52, 0x6f, 0x75, 0x67, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x53, - 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x11, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x2e, 0x0a, 0x0d, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x9b, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0xb5, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x51, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x0f, 0x46, 0x6c, 0x75, 0x65, 0x6e, - 0x63, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x99, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x73, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x56, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, + 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x7f, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x31, 0x0a, 0x10, 0x47, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, + 0x12, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, @@ -9743,61 +10558,281 @@ var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []by 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb2, 0x01, - 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x51, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x50, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2b, 0x0a, - 0x0a, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x53, - 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, - 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x57, 0x0a, 0x0b, 0x6d, + 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xc1, 0x01, + 0x0a, 0x10, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, + 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x55, 0x0a, 0x08, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, + 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x30, + 0x0a, 0x0f, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x9d, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0xdc, 0x01, 0x0a, 0x19, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5f, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x5e, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0xf9, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x18, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x67, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0xd4, 0x02, 0x0a, 0x24, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x20, 0x50, 0x61, 0x69, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, + 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x70, + 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, + 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x1d, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, + 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x63, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x62, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x20, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, + 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x67, 0x0a, 0x1c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, + 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, + 0x01, 0x0a, 0x1e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, + 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x1b, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x61, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x53, - 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x56, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, - 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x7f, 0x0a, 0x14, - 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, + 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, + 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0xfb, 0x01, 0x0a, 0x1e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, + 0x0a, 0x1a, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, + 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0xe8, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x63, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x62, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x20, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x31, 0x0a, - 0x10, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x67, 0x0a, 0x1c, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, + 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, @@ -9806,633 +10841,390 @@ var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []by 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x75, - 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x55, - 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x22, 0x80, 0x02, 0x0a, 0x25, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x6b, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, - 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x30, 0x0a, 0x0f, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x28, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x62, + 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, + 0x12, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, + 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x04, 0x52, 0x0b, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x6f, 0x0a, 0x24, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xe7, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x70, + 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x19, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x1f, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x65, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x64, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, - 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x5e, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x63, 0x0a, 0x18, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, - 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, - 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf4, 0x01, - 0x0a, 0x21, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x67, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x08, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd4, 0x02, 0x0a, 0x24, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x09, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x48, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, - 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x61, - 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x22, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, + 0x1e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x5d, 0x0a, 0x0f, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x20, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, + 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x67, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, + 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, - 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, - 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xe8, - 0x01, 0x0a, 0x1d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x63, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, - 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x62, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, - 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x20, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, - 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, - 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, - 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x67, 0x0a, 0x1c, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, - 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, - 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0xe2, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, - 0x61, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x60, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x1e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x49, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, + 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x81, + 0x02, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x1a, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, - 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x6f, - 0x73, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, - 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x63, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, + 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, + 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0xae, 0x01, 0x0a, 0x22, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0xf4, 0x01, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x67, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x62, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0xfd, 0x01, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x02, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x67, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, - 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x25, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, - 0x6b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, - 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x08, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x28, 0x50, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, - 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x48, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x66, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, + 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x02, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x48, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x0a, 0x24, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x51, + 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, - 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x5d, 0x0a, 0x0f, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, - 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, - 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xee, - 0x01, 0x0a, 0x1f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x12, 0x65, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x22, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x14, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x64, 0x0a, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0xff, 0x01, 0x0a, 0x22, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, - 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x69, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, - 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, - 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x21, - 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x67, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, - 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x08, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, 0x6e, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, - 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, - 0x75, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, - 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x22, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x6c, 0x70, 0x66, 0x75, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, - 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x67, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x70, - 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, - 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x24, - 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0b, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x6b, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0c, 0x75, 0x73, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, - 0x22, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, + 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x59, + 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x17, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6a, + 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x3e, 0x0a, 0x16, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, + 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x01, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x68, 0x0a, 0x15, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, - 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xcd, 0x01, - 0x0a, 0x14, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x59, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x17, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x6a, 0x73, 0x6f, 0x6e, - 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x13, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x16, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x59, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x22, 0x4b, 0x0a, 0x16, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x6a, + 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xcd, + 0x02, 0x0a, 0x12, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x16, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x1a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, + 0x1c, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x68, - 0x0a, 0x15, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x69, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9c, + 0x01, 0x0a, 0x14, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x70, 0x61, 0x69, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x01, + 0x0a, 0x12, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, + 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x59, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x54, 0x6f, 0x6f, + 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x70, 0x65, 0x63, 0x22, 0x86, + 0x01, 0x0a, 0x15, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6f, 0x6c, + 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, + 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x12, 0x54, 0x6f, + 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x58, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x16, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x25, 0x0a, 0x0d, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x12, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x16, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, - 0x52, 0x14, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x63, 0x61, 0x6e, - 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x44, 0x0a, 0x1c, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x62, 0x61, - 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x70, - 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x78, - 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xc9, 0x01, 0x0a, 0x12, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x13, 0x0a, - 0x11, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x70, - 0x65, 0x63, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, - 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, - 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, - 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x74, 0x6f, - 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x43, - 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xc9, 0x01, - 0x0a, 0x12, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x54, + 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, + 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x80, 0x01, 0x0a, + 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, + 0x44, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x1a, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x60, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x59, - 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x61, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x54, 0x6f, 0x6f, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0x86, - 0x01, 0x0a, 0x15, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x54, 0x6f, 0x6f, + 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0x8e, 0x01, 0x0a, 0x1d, 0x54, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, @@ -10440,38 +11232,44 @@ var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []by 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6f, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x1a, 0x54, 0x6f, - 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x60, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x61, 0x0a, 0x09, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x1b, 0x0a, - 0x19, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, - 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0x8e, 0x01, 0x0a, 0x1d, 0x54, - 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x6f, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x99, 0x01, 0x0a, 0x26, 0x74, 0x6f, 0x6f, + 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x21, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x20, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x3a, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x75, 0x73, 0x65, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1c, + 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, @@ -10479,280 +11277,286 @@ var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []by 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x1c, - 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x99, 0x01, 0x0a, - 0x26, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x21, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x20, 0x54, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x54, 0x6f, 0x6f, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x1b, + 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x96, 0x01, 0x0a, 0x25, + 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, + 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, + 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x1f, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x5b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, + 0x6f, 0x6d, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x43, 0x6f, + 0x6d, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, + 0x4d, 0x45, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, + 0x45, 0x54, 0x5f, 0x32, 0x32, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x45, 0x46, 0x10, 0x02, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x0d, + 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, + 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x18, 0x54, 0x6f, 0x6f, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x75, 0x73, 0x65, 0x53, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, - 0x8d, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0xb6, 0x01, 0x0a, 0x1b, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x96, 0x01, 0x0a, 0x25, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x5f, 0x6b, 0x76, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, - 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x76, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x1f, 0x54, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x56, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x51, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x65, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x12, 0x2c, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x43, - 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x45, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, - 0x10, 0x43, 0x4f, 0x4d, 0x45, 0x54, 0x5f, 0x32, 0x32, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x45, - 0x46, 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xab, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x37, 0x0a, - 0x0b, 0x43, 0x6f, 0x6d, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x78, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x51, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x78, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x0b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x71, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x45, 0x54, + 0x52, 0x49, 0x43, 0x58, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x45, + 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x32, 0x34, 0x5f, 0x52, 0x45, 0x46, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x32, 0x34, 0x5f, 0x53, 0x52, 0x43, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x32, 0x34, + 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x45, 0x46, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x78, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x5f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0xa4, + 0x02, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, + 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xc9, - 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x2c, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, - 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x71, 0x0a, 0x0e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, - 0x1b, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x32, 0x34, 0x5f, 0x52, 0x45, 0x46, - 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x58, 0x5f, 0x32, 0x34, - 0x5f, 0x53, 0x52, 0x43, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, - 0x58, 0x5f, 0x32, 0x34, 0x5f, 0x53, 0x52, 0x43, 0x5f, 0x52, 0x45, 0x46, 0x10, 0x03, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x0f, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x78, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, - 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x22, 0xa4, 0x02, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, - 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, - 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, - 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xb5, 0x01, 0x0a, 0x1b, 0x54, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x20, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x22, 0x4b, 0x0a, 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, - 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe4, - 0x01, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x61, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x62, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x70, 0x65, 0x63, 0x22, 0xa6, 0x02, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xb5, 0x01, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x20, 0x74, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4b, 0x0a, + 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x1b, 0x54, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x61, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x62, 0x0a, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, + 0xa6, 0x02, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, + 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x14, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x13, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, + 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xbe, 0x01, 0x0a, 0x1d, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x27, 0x74, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4d, 0x0a, 0x21, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, + 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x62, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x48, 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xbe, 0x01, 0x0a, - 0x1d, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x9c, - 0x01, 0x0a, 0x27, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x6e, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4d, 0x0a, - 0x21, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe7, 0x01, 0x0a, - 0x1c, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x62, 0x0a, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, + 0x63, 0x22, 0xa7, 0x02, 0x0a, 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xc2, 0x01, 0x0a, 0x1e, + 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x9f, + 0x01, 0x0a, 0x28, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x6e, + 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, + 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x23, 0x74, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x22, 0x4e, 0x0a, 0x22, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, + 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x22, 0xdb, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, - 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x63, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0xa7, 0x02, 0x0a, 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x19, + 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x22, 0xa3, 0x02, 0x0a, 0x1b, 0x54, 0x72, + 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, @@ -10769,223 +11573,187 @@ var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc = []by 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, - 0xc2, 0x01, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, - 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x28, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x23, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x22, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x5e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0xb0, 0x01, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x91, + 0x01, 0x0a, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x1f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xd2, + 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, + 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, + 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x22, 0xa0, 0x02, 0x0a, 0x18, + 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x5f, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xa4, + 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, + 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x1f, 0x74, + 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x22, 0xa3, 0x02, - 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, - 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, - 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, - 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, - 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x22, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x5b, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x09, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x22, - 0xa0, 0x02, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1c, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xe7, + 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x62, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x22, 0xa4, 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x88, - 0x01, 0x0a, 0x1f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, - 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1c, 0x74, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x1b, 0x54, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x62, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, - 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, - 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x1b, - 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x25, 0x0a, 0x09, 0x74, - 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xa4, 0x01, 0x0a, 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, - 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, - 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xc2, 0x01, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, - 0x55, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x28, 0x74, - 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x22, - 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5b, 0x0a, 0x0a, - 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x0a, 0x74, 0x6f, - 0x6f, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, + 0x55, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x25, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, + 0x1f, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x68, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, + 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x22, 0xc2, 0x01, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x28, 0x74, 0x72, 0x61, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x6f, + 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, + 0x55, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x55, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x22, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x6f, 0x6f, 0x6c, + 0x55, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, + 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5b, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x0a, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, + 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, + 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x6f, 0x6f, 0x6c, + 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x22, 0x77, 0x0a, 0x08, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, + 0x6c, 0x12, 0x25, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x08, 0x74, 0x6f, 0x6f, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0a, 0x74, 0x6f, 0x6f, 0x6c, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2a, 0x57, + 0x0a, 0x0e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x41, 0x49, 0x52, 0x57, 0x49, 0x53, 0x45, 0x5f, 0x43, 0x48, 0x4f, + 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x07, + 0x0a, 0x03, 0x54, 0x49, 0x45, 0x10, 0x03, 0x32, 0xaa, 0x04, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xd3, 0x01, + 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x22, 0x77, 0x0a, 0x08, 0x54, 0x6f, 0x6f, - 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, - 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0a, - 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x2a, 0x57, 0x0a, 0x0e, 0x50, 0x61, 0x69, 0x72, 0x77, 0x69, 0x73, 0x65, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x41, 0x49, 0x52, 0x57, 0x49, 0x53, 0x45, - 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, - 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, - 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x49, 0x45, 0x10, 0x03, 0x32, 0xb8, 0x02, 0x0a, 0x11, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0xd3, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0xef, 0x01, 0x0a, 0x0f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x83, 0x01, 0xca, 0x41, 0x3b, 0x0a, 0x17, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xed, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x16, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, - 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, - 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xed, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x16, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, + 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -11000,318 +11768,348 @@ func file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescGZIP() return file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes = make([]protoimpl.MessageInfo, 142) +var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes = make([]protoimpl.MessageInfo, 149) var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_goTypes = []any{ (PairwiseChoice)(0), // 0: google.cloud.aiplatform.v1beta1.PairwiseChoice - (CometSpec_CometVersion)(0), // 1: google.cloud.aiplatform.v1beta1.CometSpec.CometVersion - (MetricxSpec_MetricxVersion)(0), // 2: google.cloud.aiplatform.v1beta1.MetricxSpec.MetricxVersion - (*AutoraterConfig)(nil), // 3: google.cloud.aiplatform.v1beta1.AutoraterConfig - (*EvaluateInstancesRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest - (*EvaluateInstancesResponse)(nil), // 5: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse - (*ExactMatchInput)(nil), // 6: google.cloud.aiplatform.v1beta1.ExactMatchInput - (*ExactMatchInstance)(nil), // 7: google.cloud.aiplatform.v1beta1.ExactMatchInstance - (*ExactMatchSpec)(nil), // 8: google.cloud.aiplatform.v1beta1.ExactMatchSpec - (*ExactMatchResults)(nil), // 9: google.cloud.aiplatform.v1beta1.ExactMatchResults - (*ExactMatchMetricValue)(nil), // 10: google.cloud.aiplatform.v1beta1.ExactMatchMetricValue - (*BleuInput)(nil), // 11: google.cloud.aiplatform.v1beta1.BleuInput - (*BleuInstance)(nil), // 12: google.cloud.aiplatform.v1beta1.BleuInstance - (*BleuSpec)(nil), // 13: google.cloud.aiplatform.v1beta1.BleuSpec - (*BleuResults)(nil), // 14: google.cloud.aiplatform.v1beta1.BleuResults - (*BleuMetricValue)(nil), // 15: google.cloud.aiplatform.v1beta1.BleuMetricValue - (*RougeInput)(nil), // 16: google.cloud.aiplatform.v1beta1.RougeInput - (*RougeInstance)(nil), // 17: google.cloud.aiplatform.v1beta1.RougeInstance - (*RougeSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.RougeSpec - (*RougeResults)(nil), // 19: google.cloud.aiplatform.v1beta1.RougeResults - (*RougeMetricValue)(nil), // 20: google.cloud.aiplatform.v1beta1.RougeMetricValue - (*CoherenceInput)(nil), // 21: google.cloud.aiplatform.v1beta1.CoherenceInput - (*CoherenceInstance)(nil), // 22: google.cloud.aiplatform.v1beta1.CoherenceInstance - (*CoherenceSpec)(nil), // 23: google.cloud.aiplatform.v1beta1.CoherenceSpec - (*CoherenceResult)(nil), // 24: google.cloud.aiplatform.v1beta1.CoherenceResult - (*FluencyInput)(nil), // 25: google.cloud.aiplatform.v1beta1.FluencyInput - (*FluencyInstance)(nil), // 26: google.cloud.aiplatform.v1beta1.FluencyInstance - (*FluencySpec)(nil), // 27: google.cloud.aiplatform.v1beta1.FluencySpec - (*FluencyResult)(nil), // 28: google.cloud.aiplatform.v1beta1.FluencyResult - (*SafetyInput)(nil), // 29: google.cloud.aiplatform.v1beta1.SafetyInput - (*SafetyInstance)(nil), // 30: google.cloud.aiplatform.v1beta1.SafetyInstance - (*SafetySpec)(nil), // 31: google.cloud.aiplatform.v1beta1.SafetySpec - (*SafetyResult)(nil), // 32: google.cloud.aiplatform.v1beta1.SafetyResult - (*GroundednessInput)(nil), // 33: google.cloud.aiplatform.v1beta1.GroundednessInput - (*GroundednessInstance)(nil), // 34: google.cloud.aiplatform.v1beta1.GroundednessInstance - (*GroundednessSpec)(nil), // 35: google.cloud.aiplatform.v1beta1.GroundednessSpec - (*GroundednessResult)(nil), // 36: google.cloud.aiplatform.v1beta1.GroundednessResult - (*FulfillmentInput)(nil), // 37: google.cloud.aiplatform.v1beta1.FulfillmentInput - (*FulfillmentInstance)(nil), // 38: google.cloud.aiplatform.v1beta1.FulfillmentInstance - (*FulfillmentSpec)(nil), // 39: google.cloud.aiplatform.v1beta1.FulfillmentSpec - (*FulfillmentResult)(nil), // 40: google.cloud.aiplatform.v1beta1.FulfillmentResult - (*SummarizationQualityInput)(nil), // 41: google.cloud.aiplatform.v1beta1.SummarizationQualityInput - (*SummarizationQualityInstance)(nil), // 42: google.cloud.aiplatform.v1beta1.SummarizationQualityInstance - (*SummarizationQualitySpec)(nil), // 43: google.cloud.aiplatform.v1beta1.SummarizationQualitySpec - (*SummarizationQualityResult)(nil), // 44: google.cloud.aiplatform.v1beta1.SummarizationQualityResult - (*PairwiseSummarizationQualityInput)(nil), // 45: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput - (*PairwiseSummarizationQualityInstance)(nil), // 46: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInstance - (*PairwiseSummarizationQualitySpec)(nil), // 47: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualitySpec - (*PairwiseSummarizationQualityResult)(nil), // 48: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult - (*SummarizationHelpfulnessInput)(nil), // 49: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput - (*SummarizationHelpfulnessInstance)(nil), // 50: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInstance - (*SummarizationHelpfulnessSpec)(nil), // 51: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessSpec - (*SummarizationHelpfulnessResult)(nil), // 52: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessResult - (*SummarizationVerbosityInput)(nil), // 53: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput - (*SummarizationVerbosityInstance)(nil), // 54: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInstance - (*SummarizationVerbositySpec)(nil), // 55: google.cloud.aiplatform.v1beta1.SummarizationVerbositySpec - (*SummarizationVerbosityResult)(nil), // 56: google.cloud.aiplatform.v1beta1.SummarizationVerbosityResult - (*QuestionAnsweringQualityInput)(nil), // 57: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput - (*QuestionAnsweringQualityInstance)(nil), // 58: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInstance - (*QuestionAnsweringQualitySpec)(nil), // 59: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualitySpec - (*QuestionAnsweringQualityResult)(nil), // 60: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityResult - (*PairwiseQuestionAnsweringQualityInput)(nil), // 61: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput - (*PairwiseQuestionAnsweringQualityInstance)(nil), // 62: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInstance - (*PairwiseQuestionAnsweringQualitySpec)(nil), // 63: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualitySpec - (*PairwiseQuestionAnsweringQualityResult)(nil), // 64: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult - (*QuestionAnsweringRelevanceInput)(nil), // 65: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput - (*QuestionAnsweringRelevanceInstance)(nil), // 66: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInstance - (*QuestionAnsweringRelevanceSpec)(nil), // 67: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceSpec - (*QuestionAnsweringRelevanceResult)(nil), // 68: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceResult - (*QuestionAnsweringHelpfulnessInput)(nil), // 69: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput - (*QuestionAnsweringHelpfulnessInstance)(nil), // 70: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInstance - (*QuestionAnsweringHelpfulnessSpec)(nil), // 71: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessSpec - (*QuestionAnsweringHelpfulnessResult)(nil), // 72: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessResult - (*QuestionAnsweringCorrectnessInput)(nil), // 73: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput - (*QuestionAnsweringCorrectnessInstance)(nil), // 74: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInstance - (*QuestionAnsweringCorrectnessSpec)(nil), // 75: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessSpec - (*QuestionAnsweringCorrectnessResult)(nil), // 76: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessResult - (*PointwiseMetricInput)(nil), // 77: google.cloud.aiplatform.v1beta1.PointwiseMetricInput - (*PointwiseMetricInstance)(nil), // 78: google.cloud.aiplatform.v1beta1.PointwiseMetricInstance - (*PointwiseMetricSpec)(nil), // 79: google.cloud.aiplatform.v1beta1.PointwiseMetricSpec - (*PointwiseMetricResult)(nil), // 80: google.cloud.aiplatform.v1beta1.PointwiseMetricResult - (*PairwiseMetricInput)(nil), // 81: google.cloud.aiplatform.v1beta1.PairwiseMetricInput - (*PairwiseMetricInstance)(nil), // 82: google.cloud.aiplatform.v1beta1.PairwiseMetricInstance - (*PairwiseMetricSpec)(nil), // 83: google.cloud.aiplatform.v1beta1.PairwiseMetricSpec - (*PairwiseMetricResult)(nil), // 84: google.cloud.aiplatform.v1beta1.PairwiseMetricResult - (*ToolCallValidInput)(nil), // 85: google.cloud.aiplatform.v1beta1.ToolCallValidInput - (*ToolCallValidSpec)(nil), // 86: google.cloud.aiplatform.v1beta1.ToolCallValidSpec - (*ToolCallValidInstance)(nil), // 87: google.cloud.aiplatform.v1beta1.ToolCallValidInstance - (*ToolCallValidResults)(nil), // 88: google.cloud.aiplatform.v1beta1.ToolCallValidResults - (*ToolCallValidMetricValue)(nil), // 89: google.cloud.aiplatform.v1beta1.ToolCallValidMetricValue - (*ToolNameMatchInput)(nil), // 90: google.cloud.aiplatform.v1beta1.ToolNameMatchInput - (*ToolNameMatchSpec)(nil), // 91: google.cloud.aiplatform.v1beta1.ToolNameMatchSpec - (*ToolNameMatchInstance)(nil), // 92: google.cloud.aiplatform.v1beta1.ToolNameMatchInstance - (*ToolNameMatchResults)(nil), // 93: google.cloud.aiplatform.v1beta1.ToolNameMatchResults - (*ToolNameMatchMetricValue)(nil), // 94: google.cloud.aiplatform.v1beta1.ToolNameMatchMetricValue - (*ToolParameterKeyMatchInput)(nil), // 95: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput - (*ToolParameterKeyMatchSpec)(nil), // 96: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchSpec - (*ToolParameterKeyMatchInstance)(nil), // 97: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInstance - (*ToolParameterKeyMatchResults)(nil), // 98: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults - (*ToolParameterKeyMatchMetricValue)(nil), // 99: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchMetricValue - (*ToolParameterKVMatchInput)(nil), // 100: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput - (*ToolParameterKVMatchSpec)(nil), // 101: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchSpec - (*ToolParameterKVMatchInstance)(nil), // 102: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInstance - (*ToolParameterKVMatchResults)(nil), // 103: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults - (*ToolParameterKVMatchMetricValue)(nil), // 104: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchMetricValue - (*CometInput)(nil), // 105: google.cloud.aiplatform.v1beta1.CometInput - (*CometSpec)(nil), // 106: google.cloud.aiplatform.v1beta1.CometSpec - (*CometInstance)(nil), // 107: google.cloud.aiplatform.v1beta1.CometInstance - (*CometResult)(nil), // 108: google.cloud.aiplatform.v1beta1.CometResult - (*MetricxInput)(nil), // 109: google.cloud.aiplatform.v1beta1.MetricxInput - (*MetricxSpec)(nil), // 110: google.cloud.aiplatform.v1beta1.MetricxSpec - (*MetricxInstance)(nil), // 111: google.cloud.aiplatform.v1beta1.MetricxInstance - (*MetricxResult)(nil), // 112: google.cloud.aiplatform.v1beta1.MetricxResult - (*TrajectoryExactMatchInput)(nil), // 113: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput - (*TrajectoryExactMatchSpec)(nil), // 114: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchSpec - (*TrajectoryExactMatchInstance)(nil), // 115: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance - (*TrajectoryExactMatchResults)(nil), // 116: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults - (*TrajectoryExactMatchMetricValue)(nil), // 117: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchMetricValue - (*TrajectoryInOrderMatchInput)(nil), // 118: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput - (*TrajectoryInOrderMatchSpec)(nil), // 119: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchSpec - (*TrajectoryInOrderMatchInstance)(nil), // 120: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance - (*TrajectoryInOrderMatchResults)(nil), // 121: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults - (*TrajectoryInOrderMatchMetricValue)(nil), // 122: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchMetricValue - (*TrajectoryAnyOrderMatchInput)(nil), // 123: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput - (*TrajectoryAnyOrderMatchSpec)(nil), // 124: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchSpec - (*TrajectoryAnyOrderMatchInstance)(nil), // 125: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance - (*TrajectoryAnyOrderMatchResults)(nil), // 126: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults - (*TrajectoryAnyOrderMatchMetricValue)(nil), // 127: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchMetricValue - (*TrajectoryPrecisionInput)(nil), // 128: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput - (*TrajectoryPrecisionSpec)(nil), // 129: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionSpec - (*TrajectoryPrecisionInstance)(nil), // 130: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance - (*TrajectoryPrecisionResults)(nil), // 131: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults - (*TrajectoryPrecisionMetricValue)(nil), // 132: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionMetricValue - (*TrajectoryRecallInput)(nil), // 133: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput - (*TrajectoryRecallSpec)(nil), // 134: google.cloud.aiplatform.v1beta1.TrajectoryRecallSpec - (*TrajectoryRecallInstance)(nil), // 135: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance - (*TrajectoryRecallResults)(nil), // 136: google.cloud.aiplatform.v1beta1.TrajectoryRecallResults - (*TrajectoryRecallMetricValue)(nil), // 137: google.cloud.aiplatform.v1beta1.TrajectoryRecallMetricValue - (*TrajectorySingleToolUseInput)(nil), // 138: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput - (*TrajectorySingleToolUseSpec)(nil), // 139: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseSpec - (*TrajectorySingleToolUseInstance)(nil), // 140: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance - (*TrajectorySingleToolUseResults)(nil), // 141: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults - (*TrajectorySingleToolUseMetricValue)(nil), // 142: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseMetricValue - (*Trajectory)(nil), // 143: google.cloud.aiplatform.v1beta1.Trajectory - (*ToolCall)(nil), // 144: google.cloud.aiplatform.v1beta1.ToolCall + (Metric_AggregationMetric)(0), // 1: google.cloud.aiplatform.v1beta1.Metric.AggregationMetric + (CometSpec_CometVersion)(0), // 2: google.cloud.aiplatform.v1beta1.CometSpec.CometVersion + (MetricxSpec_MetricxVersion)(0), // 3: google.cloud.aiplatform.v1beta1.MetricxSpec.MetricxVersion + (*EvaluateDatasetOperationMetadata)(nil), // 4: google.cloud.aiplatform.v1beta1.EvaluateDatasetOperationMetadata + (*EvaluateDatasetResponse)(nil), // 5: google.cloud.aiplatform.v1beta1.EvaluateDatasetResponse + (*OutputInfo)(nil), // 6: google.cloud.aiplatform.v1beta1.OutputInfo + (*EvaluateDatasetRequest)(nil), // 7: google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest + (*OutputConfig)(nil), // 8: google.cloud.aiplatform.v1beta1.OutputConfig + (*Metric)(nil), // 9: google.cloud.aiplatform.v1beta1.Metric + (*EvaluationDataset)(nil), // 10: google.cloud.aiplatform.v1beta1.EvaluationDataset + (*AutoraterConfig)(nil), // 11: google.cloud.aiplatform.v1beta1.AutoraterConfig + (*EvaluateInstancesRequest)(nil), // 12: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest + (*EvaluateInstancesResponse)(nil), // 13: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse + (*ExactMatchInput)(nil), // 14: google.cloud.aiplatform.v1beta1.ExactMatchInput + (*ExactMatchInstance)(nil), // 15: google.cloud.aiplatform.v1beta1.ExactMatchInstance + (*ExactMatchSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.ExactMatchSpec + (*ExactMatchResults)(nil), // 17: google.cloud.aiplatform.v1beta1.ExactMatchResults + (*ExactMatchMetricValue)(nil), // 18: google.cloud.aiplatform.v1beta1.ExactMatchMetricValue + (*BleuInput)(nil), // 19: google.cloud.aiplatform.v1beta1.BleuInput + (*BleuInstance)(nil), // 20: google.cloud.aiplatform.v1beta1.BleuInstance + (*BleuSpec)(nil), // 21: google.cloud.aiplatform.v1beta1.BleuSpec + (*BleuResults)(nil), // 22: google.cloud.aiplatform.v1beta1.BleuResults + (*BleuMetricValue)(nil), // 23: google.cloud.aiplatform.v1beta1.BleuMetricValue + (*RougeInput)(nil), // 24: google.cloud.aiplatform.v1beta1.RougeInput + (*RougeInstance)(nil), // 25: google.cloud.aiplatform.v1beta1.RougeInstance + (*RougeSpec)(nil), // 26: google.cloud.aiplatform.v1beta1.RougeSpec + (*RougeResults)(nil), // 27: google.cloud.aiplatform.v1beta1.RougeResults + (*RougeMetricValue)(nil), // 28: google.cloud.aiplatform.v1beta1.RougeMetricValue + (*CoherenceInput)(nil), // 29: google.cloud.aiplatform.v1beta1.CoherenceInput + (*CoherenceInstance)(nil), // 30: google.cloud.aiplatform.v1beta1.CoherenceInstance + (*CoherenceSpec)(nil), // 31: google.cloud.aiplatform.v1beta1.CoherenceSpec + (*CoherenceResult)(nil), // 32: google.cloud.aiplatform.v1beta1.CoherenceResult + (*FluencyInput)(nil), // 33: google.cloud.aiplatform.v1beta1.FluencyInput + (*FluencyInstance)(nil), // 34: google.cloud.aiplatform.v1beta1.FluencyInstance + (*FluencySpec)(nil), // 35: google.cloud.aiplatform.v1beta1.FluencySpec + (*FluencyResult)(nil), // 36: google.cloud.aiplatform.v1beta1.FluencyResult + (*SafetyInput)(nil), // 37: google.cloud.aiplatform.v1beta1.SafetyInput + (*SafetyInstance)(nil), // 38: google.cloud.aiplatform.v1beta1.SafetyInstance + (*SafetySpec)(nil), // 39: google.cloud.aiplatform.v1beta1.SafetySpec + (*SafetyResult)(nil), // 40: google.cloud.aiplatform.v1beta1.SafetyResult + (*GroundednessInput)(nil), // 41: google.cloud.aiplatform.v1beta1.GroundednessInput + (*GroundednessInstance)(nil), // 42: google.cloud.aiplatform.v1beta1.GroundednessInstance + (*GroundednessSpec)(nil), // 43: google.cloud.aiplatform.v1beta1.GroundednessSpec + (*GroundednessResult)(nil), // 44: google.cloud.aiplatform.v1beta1.GroundednessResult + (*FulfillmentInput)(nil), // 45: google.cloud.aiplatform.v1beta1.FulfillmentInput + (*FulfillmentInstance)(nil), // 46: google.cloud.aiplatform.v1beta1.FulfillmentInstance + (*FulfillmentSpec)(nil), // 47: google.cloud.aiplatform.v1beta1.FulfillmentSpec + (*FulfillmentResult)(nil), // 48: google.cloud.aiplatform.v1beta1.FulfillmentResult + (*SummarizationQualityInput)(nil), // 49: google.cloud.aiplatform.v1beta1.SummarizationQualityInput + (*SummarizationQualityInstance)(nil), // 50: google.cloud.aiplatform.v1beta1.SummarizationQualityInstance + (*SummarizationQualitySpec)(nil), // 51: google.cloud.aiplatform.v1beta1.SummarizationQualitySpec + (*SummarizationQualityResult)(nil), // 52: google.cloud.aiplatform.v1beta1.SummarizationQualityResult + (*PairwiseSummarizationQualityInput)(nil), // 53: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput + (*PairwiseSummarizationQualityInstance)(nil), // 54: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInstance + (*PairwiseSummarizationQualitySpec)(nil), // 55: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualitySpec + (*PairwiseSummarizationQualityResult)(nil), // 56: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult + (*SummarizationHelpfulnessInput)(nil), // 57: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput + (*SummarizationHelpfulnessInstance)(nil), // 58: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInstance + (*SummarizationHelpfulnessSpec)(nil), // 59: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessSpec + (*SummarizationHelpfulnessResult)(nil), // 60: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessResult + (*SummarizationVerbosityInput)(nil), // 61: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput + (*SummarizationVerbosityInstance)(nil), // 62: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInstance + (*SummarizationVerbositySpec)(nil), // 63: google.cloud.aiplatform.v1beta1.SummarizationVerbositySpec + (*SummarizationVerbosityResult)(nil), // 64: google.cloud.aiplatform.v1beta1.SummarizationVerbosityResult + (*QuestionAnsweringQualityInput)(nil), // 65: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput + (*QuestionAnsweringQualityInstance)(nil), // 66: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInstance + (*QuestionAnsweringQualitySpec)(nil), // 67: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualitySpec + (*QuestionAnsweringQualityResult)(nil), // 68: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityResult + (*PairwiseQuestionAnsweringQualityInput)(nil), // 69: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput + (*PairwiseQuestionAnsweringQualityInstance)(nil), // 70: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInstance + (*PairwiseQuestionAnsweringQualitySpec)(nil), // 71: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualitySpec + (*PairwiseQuestionAnsweringQualityResult)(nil), // 72: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult + (*QuestionAnsweringRelevanceInput)(nil), // 73: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput + (*QuestionAnsweringRelevanceInstance)(nil), // 74: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInstance + (*QuestionAnsweringRelevanceSpec)(nil), // 75: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceSpec + (*QuestionAnsweringRelevanceResult)(nil), // 76: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceResult + (*QuestionAnsweringHelpfulnessInput)(nil), // 77: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput + (*QuestionAnsweringHelpfulnessInstance)(nil), // 78: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInstance + (*QuestionAnsweringHelpfulnessSpec)(nil), // 79: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessSpec + (*QuestionAnsweringHelpfulnessResult)(nil), // 80: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessResult + (*QuestionAnsweringCorrectnessInput)(nil), // 81: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput + (*QuestionAnsweringCorrectnessInstance)(nil), // 82: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInstance + (*QuestionAnsweringCorrectnessSpec)(nil), // 83: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessSpec + (*QuestionAnsweringCorrectnessResult)(nil), // 84: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessResult + (*PointwiseMetricInput)(nil), // 85: google.cloud.aiplatform.v1beta1.PointwiseMetricInput + (*PointwiseMetricInstance)(nil), // 86: google.cloud.aiplatform.v1beta1.PointwiseMetricInstance + (*PointwiseMetricSpec)(nil), // 87: google.cloud.aiplatform.v1beta1.PointwiseMetricSpec + (*PointwiseMetricResult)(nil), // 88: google.cloud.aiplatform.v1beta1.PointwiseMetricResult + (*PairwiseMetricInput)(nil), // 89: google.cloud.aiplatform.v1beta1.PairwiseMetricInput + (*PairwiseMetricInstance)(nil), // 90: google.cloud.aiplatform.v1beta1.PairwiseMetricInstance + (*PairwiseMetricSpec)(nil), // 91: google.cloud.aiplatform.v1beta1.PairwiseMetricSpec + (*PairwiseMetricResult)(nil), // 92: google.cloud.aiplatform.v1beta1.PairwiseMetricResult + (*ToolCallValidInput)(nil), // 93: google.cloud.aiplatform.v1beta1.ToolCallValidInput + (*ToolCallValidSpec)(nil), // 94: google.cloud.aiplatform.v1beta1.ToolCallValidSpec + (*ToolCallValidInstance)(nil), // 95: google.cloud.aiplatform.v1beta1.ToolCallValidInstance + (*ToolCallValidResults)(nil), // 96: google.cloud.aiplatform.v1beta1.ToolCallValidResults + (*ToolCallValidMetricValue)(nil), // 97: google.cloud.aiplatform.v1beta1.ToolCallValidMetricValue + (*ToolNameMatchInput)(nil), // 98: google.cloud.aiplatform.v1beta1.ToolNameMatchInput + (*ToolNameMatchSpec)(nil), // 99: google.cloud.aiplatform.v1beta1.ToolNameMatchSpec + (*ToolNameMatchInstance)(nil), // 100: google.cloud.aiplatform.v1beta1.ToolNameMatchInstance + (*ToolNameMatchResults)(nil), // 101: google.cloud.aiplatform.v1beta1.ToolNameMatchResults + (*ToolNameMatchMetricValue)(nil), // 102: google.cloud.aiplatform.v1beta1.ToolNameMatchMetricValue + (*ToolParameterKeyMatchInput)(nil), // 103: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput + (*ToolParameterKeyMatchSpec)(nil), // 104: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchSpec + (*ToolParameterKeyMatchInstance)(nil), // 105: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInstance + (*ToolParameterKeyMatchResults)(nil), // 106: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults + (*ToolParameterKeyMatchMetricValue)(nil), // 107: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchMetricValue + (*ToolParameterKVMatchInput)(nil), // 108: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput + (*ToolParameterKVMatchSpec)(nil), // 109: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchSpec + (*ToolParameterKVMatchInstance)(nil), // 110: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInstance + (*ToolParameterKVMatchResults)(nil), // 111: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults + (*ToolParameterKVMatchMetricValue)(nil), // 112: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchMetricValue + (*CometInput)(nil), // 113: google.cloud.aiplatform.v1beta1.CometInput + (*CometSpec)(nil), // 114: google.cloud.aiplatform.v1beta1.CometSpec + (*CometInstance)(nil), // 115: google.cloud.aiplatform.v1beta1.CometInstance + (*CometResult)(nil), // 116: google.cloud.aiplatform.v1beta1.CometResult + (*MetricxInput)(nil), // 117: google.cloud.aiplatform.v1beta1.MetricxInput + (*MetricxSpec)(nil), // 118: google.cloud.aiplatform.v1beta1.MetricxSpec + (*MetricxInstance)(nil), // 119: google.cloud.aiplatform.v1beta1.MetricxInstance + (*MetricxResult)(nil), // 120: google.cloud.aiplatform.v1beta1.MetricxResult + (*TrajectoryExactMatchInput)(nil), // 121: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput + (*TrajectoryExactMatchSpec)(nil), // 122: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchSpec + (*TrajectoryExactMatchInstance)(nil), // 123: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance + (*TrajectoryExactMatchResults)(nil), // 124: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults + (*TrajectoryExactMatchMetricValue)(nil), // 125: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchMetricValue + (*TrajectoryInOrderMatchInput)(nil), // 126: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput + (*TrajectoryInOrderMatchSpec)(nil), // 127: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchSpec + (*TrajectoryInOrderMatchInstance)(nil), // 128: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance + (*TrajectoryInOrderMatchResults)(nil), // 129: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults + (*TrajectoryInOrderMatchMetricValue)(nil), // 130: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchMetricValue + (*TrajectoryAnyOrderMatchInput)(nil), // 131: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput + (*TrajectoryAnyOrderMatchSpec)(nil), // 132: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchSpec + (*TrajectoryAnyOrderMatchInstance)(nil), // 133: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance + (*TrajectoryAnyOrderMatchResults)(nil), // 134: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults + (*TrajectoryAnyOrderMatchMetricValue)(nil), // 135: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchMetricValue + (*TrajectoryPrecisionInput)(nil), // 136: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput + (*TrajectoryPrecisionSpec)(nil), // 137: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionSpec + (*TrajectoryPrecisionInstance)(nil), // 138: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance + (*TrajectoryPrecisionResults)(nil), // 139: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults + (*TrajectoryPrecisionMetricValue)(nil), // 140: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionMetricValue + (*TrajectoryRecallInput)(nil), // 141: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput + (*TrajectoryRecallSpec)(nil), // 142: google.cloud.aiplatform.v1beta1.TrajectoryRecallSpec + (*TrajectoryRecallInstance)(nil), // 143: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance + (*TrajectoryRecallResults)(nil), // 144: google.cloud.aiplatform.v1beta1.TrajectoryRecallResults + (*TrajectoryRecallMetricValue)(nil), // 145: google.cloud.aiplatform.v1beta1.TrajectoryRecallMetricValue + (*TrajectorySingleToolUseInput)(nil), // 146: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput + (*TrajectorySingleToolUseSpec)(nil), // 147: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseSpec + (*TrajectorySingleToolUseInstance)(nil), // 148: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance + (*TrajectorySingleToolUseResults)(nil), // 149: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults + (*TrajectorySingleToolUseMetricValue)(nil), // 150: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseMetricValue + (*Trajectory)(nil), // 151: google.cloud.aiplatform.v1beta1.Trajectory + (*ToolCall)(nil), // 152: google.cloud.aiplatform.v1beta1.ToolCall + (*GenericOperationMetadata)(nil), // 153: google.cloud.aiplatform.v1beta1.GenericOperationMetadata + (*GcsDestination)(nil), // 154: google.cloud.aiplatform.v1beta1.GcsDestination + (*GcsSource)(nil), // 155: google.cloud.aiplatform.v1beta1.GcsSource + (*BigQuerySource)(nil), // 156: google.cloud.aiplatform.v1beta1.BigQuerySource + (*longrunningpb.Operation)(nil), // 157: google.longrunning.Operation } var file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_depIdxs = []int32{ - 6, // 0: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.exact_match_input:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchInput - 11, // 1: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.bleu_input:type_name -> google.cloud.aiplatform.v1beta1.BleuInput - 16, // 2: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.rouge_input:type_name -> google.cloud.aiplatform.v1beta1.RougeInput - 25, // 3: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.fluency_input:type_name -> google.cloud.aiplatform.v1beta1.FluencyInput - 21, // 4: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.coherence_input:type_name -> google.cloud.aiplatform.v1beta1.CoherenceInput - 29, // 5: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.safety_input:type_name -> google.cloud.aiplatform.v1beta1.SafetyInput - 33, // 6: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.groundedness_input:type_name -> google.cloud.aiplatform.v1beta1.GroundednessInput - 37, // 7: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.fulfillment_input:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentInput - 41, // 8: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_quality_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityInput - 45, // 9: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_summarization_quality_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput - 49, // 10: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_helpfulness_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput - 53, // 11: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_verbosity_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput - 57, // 12: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_quality_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput - 61, // 13: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_question_answering_quality_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput - 65, // 14: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_relevance_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput - 69, // 15: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_helpfulness_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput - 73, // 16: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_correctness_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput - 77, // 17: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pointwise_metric_input:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricInput - 81, // 18: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_metric_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricInput - 85, // 19: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_call_valid_input:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidInput - 90, // 20: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_name_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchInput - 95, // 21: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_parameter_key_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput - 100, // 22: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_parameter_kv_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput - 105, // 23: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.comet_input:type_name -> google.cloud.aiplatform.v1beta1.CometInput - 109, // 24: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.metricx_input:type_name -> google.cloud.aiplatform.v1beta1.MetricxInput - 113, // 25: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_exact_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput - 118, // 26: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_in_order_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput - 123, // 27: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_any_order_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput - 128, // 28: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_precision_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput - 133, // 29: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_recall_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallInput - 138, // 30: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_single_tool_use_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput - 3, // 31: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.autorater_config:type_name -> google.cloud.aiplatform.v1beta1.AutoraterConfig - 9, // 32: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.exact_match_results:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchResults - 14, // 33: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.bleu_results:type_name -> google.cloud.aiplatform.v1beta1.BleuResults - 19, // 34: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.rouge_results:type_name -> google.cloud.aiplatform.v1beta1.RougeResults - 28, // 35: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.fluency_result:type_name -> google.cloud.aiplatform.v1beta1.FluencyResult - 24, // 36: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.coherence_result:type_name -> google.cloud.aiplatform.v1beta1.CoherenceResult - 32, // 37: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.safety_result:type_name -> google.cloud.aiplatform.v1beta1.SafetyResult - 36, // 38: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.groundedness_result:type_name -> google.cloud.aiplatform.v1beta1.GroundednessResult - 40, // 39: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.fulfillment_result:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentResult - 44, // 40: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_quality_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityResult - 48, // 41: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_summarization_quality_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult - 52, // 42: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_helpfulness_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessResult - 56, // 43: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_verbosity_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityResult - 60, // 44: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_quality_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityResult - 64, // 45: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_question_answering_quality_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult - 68, // 46: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_relevance_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceResult - 72, // 47: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_helpfulness_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessResult - 76, // 48: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_correctness_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessResult - 80, // 49: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pointwise_metric_result:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricResult - 84, // 50: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_metric_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricResult - 88, // 51: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_call_valid_results:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidResults - 93, // 52: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_name_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchResults - 98, // 53: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_parameter_key_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults - 103, // 54: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_parameter_kv_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults - 108, // 55: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.comet_result:type_name -> google.cloud.aiplatform.v1beta1.CometResult - 112, // 56: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.metricx_result:type_name -> google.cloud.aiplatform.v1beta1.MetricxResult - 116, // 57: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_exact_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults - 121, // 58: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_in_order_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults - 126, // 59: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_any_order_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults - 131, // 60: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_precision_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults - 136, // 61: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_recall_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallResults - 141, // 62: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_single_tool_use_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults - 8, // 63: google.cloud.aiplatform.v1beta1.ExactMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchSpec - 7, // 64: google.cloud.aiplatform.v1beta1.ExactMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchInstance - 10, // 65: google.cloud.aiplatform.v1beta1.ExactMatchResults.exact_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchMetricValue - 13, // 66: google.cloud.aiplatform.v1beta1.BleuInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.BleuSpec - 12, // 67: google.cloud.aiplatform.v1beta1.BleuInput.instances:type_name -> google.cloud.aiplatform.v1beta1.BleuInstance - 15, // 68: google.cloud.aiplatform.v1beta1.BleuResults.bleu_metric_values:type_name -> google.cloud.aiplatform.v1beta1.BleuMetricValue - 18, // 69: google.cloud.aiplatform.v1beta1.RougeInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.RougeSpec - 17, // 70: google.cloud.aiplatform.v1beta1.RougeInput.instances:type_name -> google.cloud.aiplatform.v1beta1.RougeInstance - 20, // 71: google.cloud.aiplatform.v1beta1.RougeResults.rouge_metric_values:type_name -> google.cloud.aiplatform.v1beta1.RougeMetricValue - 23, // 72: google.cloud.aiplatform.v1beta1.CoherenceInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.CoherenceSpec - 22, // 73: google.cloud.aiplatform.v1beta1.CoherenceInput.instance:type_name -> google.cloud.aiplatform.v1beta1.CoherenceInstance - 27, // 74: google.cloud.aiplatform.v1beta1.FluencyInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.FluencySpec - 26, // 75: google.cloud.aiplatform.v1beta1.FluencyInput.instance:type_name -> google.cloud.aiplatform.v1beta1.FluencyInstance - 31, // 76: google.cloud.aiplatform.v1beta1.SafetyInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SafetySpec - 30, // 77: google.cloud.aiplatform.v1beta1.SafetyInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SafetyInstance - 35, // 78: google.cloud.aiplatform.v1beta1.GroundednessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.GroundednessSpec - 34, // 79: google.cloud.aiplatform.v1beta1.GroundednessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.GroundednessInstance - 39, // 80: google.cloud.aiplatform.v1beta1.FulfillmentInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentSpec - 38, // 81: google.cloud.aiplatform.v1beta1.FulfillmentInput.instance:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentInstance - 43, // 82: google.cloud.aiplatform.v1beta1.SummarizationQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualitySpec - 42, // 83: google.cloud.aiplatform.v1beta1.SummarizationQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityInstance - 47, // 84: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualitySpec - 46, // 85: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInstance - 0, // 86: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice - 51, // 87: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessSpec - 50, // 88: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInstance - 55, // 89: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbositySpec - 54, // 90: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityInstance - 59, // 91: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualitySpec - 58, // 92: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInstance - 63, // 93: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualitySpec - 62, // 94: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInstance - 0, // 95: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice - 67, // 96: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceSpec - 66, // 97: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInstance - 71, // 98: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessSpec - 70, // 99: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInstance - 75, // 100: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessSpec - 74, // 101: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInstance - 79, // 102: google.cloud.aiplatform.v1beta1.PointwiseMetricInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricSpec - 78, // 103: google.cloud.aiplatform.v1beta1.PointwiseMetricInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricInstance - 83, // 104: google.cloud.aiplatform.v1beta1.PairwiseMetricInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricSpec - 82, // 105: google.cloud.aiplatform.v1beta1.PairwiseMetricInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricInstance - 0, // 106: google.cloud.aiplatform.v1beta1.PairwiseMetricResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice - 86, // 107: google.cloud.aiplatform.v1beta1.ToolCallValidInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidSpec - 87, // 108: google.cloud.aiplatform.v1beta1.ToolCallValidInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidInstance - 89, // 109: google.cloud.aiplatform.v1beta1.ToolCallValidResults.tool_call_valid_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidMetricValue - 91, // 110: google.cloud.aiplatform.v1beta1.ToolNameMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchSpec - 92, // 111: google.cloud.aiplatform.v1beta1.ToolNameMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchInstance - 94, // 112: google.cloud.aiplatform.v1beta1.ToolNameMatchResults.tool_name_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchMetricValue - 96, // 113: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchSpec - 97, // 114: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInstance - 99, // 115: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults.tool_parameter_key_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchMetricValue - 101, // 116: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchSpec - 102, // 117: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInstance - 104, // 118: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults.tool_parameter_kv_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchMetricValue - 106, // 119: google.cloud.aiplatform.v1beta1.CometInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.CometSpec - 107, // 120: google.cloud.aiplatform.v1beta1.CometInput.instance:type_name -> google.cloud.aiplatform.v1beta1.CometInstance - 1, // 121: google.cloud.aiplatform.v1beta1.CometSpec.version:type_name -> google.cloud.aiplatform.v1beta1.CometSpec.CometVersion - 110, // 122: google.cloud.aiplatform.v1beta1.MetricxInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.MetricxSpec - 111, // 123: google.cloud.aiplatform.v1beta1.MetricxInput.instance:type_name -> google.cloud.aiplatform.v1beta1.MetricxInstance - 2, // 124: google.cloud.aiplatform.v1beta1.MetricxSpec.version:type_name -> google.cloud.aiplatform.v1beta1.MetricxSpec.MetricxVersion - 114, // 125: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchSpec - 115, // 126: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance - 143, // 127: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 143, // 128: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 117, // 129: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults.trajectory_exact_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchMetricValue - 119, // 130: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchSpec - 120, // 131: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance - 143, // 132: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 143, // 133: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 122, // 134: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults.trajectory_in_order_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchMetricValue - 124, // 135: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchSpec - 125, // 136: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance - 143, // 137: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 143, // 138: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 127, // 139: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults.trajectory_any_order_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchMetricValue - 129, // 140: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionSpec - 130, // 141: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance - 143, // 142: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 143, // 143: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 132, // 144: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults.trajectory_precision_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionMetricValue - 134, // 145: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallSpec - 135, // 146: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance - 143, // 147: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 143, // 148: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 137, // 149: google.cloud.aiplatform.v1beta1.TrajectoryRecallResults.trajectory_recall_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallMetricValue - 139, // 150: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseSpec - 140, // 151: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance - 143, // 152: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory - 142, // 153: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults.trajectory_single_tool_use_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseMetricValue - 144, // 154: google.cloud.aiplatform.v1beta1.Trajectory.tool_calls:type_name -> google.cloud.aiplatform.v1beta1.ToolCall - 4, // 155: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances:input_type -> google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest - 5, // 156: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances:output_type -> google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse - 156, // [156:157] is the sub-list for method output_type - 155, // [155:156] is the sub-list for method input_type - 155, // [155:155] is the sub-list for extension type_name - 155, // [155:155] is the sub-list for extension extendee - 0, // [0:155] is the sub-list for field type_name + 153, // 0: google.cloud.aiplatform.v1beta1.EvaluateDatasetOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata + 6, // 1: google.cloud.aiplatform.v1beta1.EvaluateDatasetResponse.output_info:type_name -> google.cloud.aiplatform.v1beta1.OutputInfo + 10, // 2: google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest.dataset:type_name -> google.cloud.aiplatform.v1beta1.EvaluationDataset + 9, // 3: google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest.metrics:type_name -> google.cloud.aiplatform.v1beta1.Metric + 8, // 4: google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest.output_config:type_name -> google.cloud.aiplatform.v1beta1.OutputConfig + 11, // 5: google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest.autorater_config:type_name -> google.cloud.aiplatform.v1beta1.AutoraterConfig + 154, // 6: google.cloud.aiplatform.v1beta1.OutputConfig.gcs_destination:type_name -> google.cloud.aiplatform.v1beta1.GcsDestination + 87, // 7: google.cloud.aiplatform.v1beta1.Metric.pointwise_metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricSpec + 91, // 8: google.cloud.aiplatform.v1beta1.Metric.pairwise_metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricSpec + 16, // 9: google.cloud.aiplatform.v1beta1.Metric.exact_match_spec:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchSpec + 21, // 10: google.cloud.aiplatform.v1beta1.Metric.bleu_spec:type_name -> google.cloud.aiplatform.v1beta1.BleuSpec + 26, // 11: google.cloud.aiplatform.v1beta1.Metric.rouge_spec:type_name -> google.cloud.aiplatform.v1beta1.RougeSpec + 1, // 12: google.cloud.aiplatform.v1beta1.Metric.aggregation_metrics:type_name -> google.cloud.aiplatform.v1beta1.Metric.AggregationMetric + 155, // 13: google.cloud.aiplatform.v1beta1.EvaluationDataset.gcs_source:type_name -> google.cloud.aiplatform.v1beta1.GcsSource + 156, // 14: google.cloud.aiplatform.v1beta1.EvaluationDataset.bigquery_source:type_name -> google.cloud.aiplatform.v1beta1.BigQuerySource + 14, // 15: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.exact_match_input:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchInput + 19, // 16: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.bleu_input:type_name -> google.cloud.aiplatform.v1beta1.BleuInput + 24, // 17: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.rouge_input:type_name -> google.cloud.aiplatform.v1beta1.RougeInput + 33, // 18: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.fluency_input:type_name -> google.cloud.aiplatform.v1beta1.FluencyInput + 29, // 19: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.coherence_input:type_name -> google.cloud.aiplatform.v1beta1.CoherenceInput + 37, // 20: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.safety_input:type_name -> google.cloud.aiplatform.v1beta1.SafetyInput + 41, // 21: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.groundedness_input:type_name -> google.cloud.aiplatform.v1beta1.GroundednessInput + 45, // 22: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.fulfillment_input:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentInput + 49, // 23: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_quality_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityInput + 53, // 24: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_summarization_quality_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput + 57, // 25: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_helpfulness_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput + 61, // 26: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.summarization_verbosity_input:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput + 65, // 27: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_quality_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput + 69, // 28: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_question_answering_quality_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput + 73, // 29: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_relevance_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput + 77, // 30: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_helpfulness_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput + 81, // 31: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.question_answering_correctness_input:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput + 85, // 32: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pointwise_metric_input:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricInput + 89, // 33: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.pairwise_metric_input:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricInput + 93, // 34: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_call_valid_input:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidInput + 98, // 35: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_name_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchInput + 103, // 36: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_parameter_key_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput + 108, // 37: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.tool_parameter_kv_match_input:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput + 113, // 38: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.comet_input:type_name -> google.cloud.aiplatform.v1beta1.CometInput + 117, // 39: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.metricx_input:type_name -> google.cloud.aiplatform.v1beta1.MetricxInput + 121, // 40: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_exact_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput + 126, // 41: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_in_order_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput + 131, // 42: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_any_order_match_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput + 136, // 43: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_precision_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput + 141, // 44: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_recall_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallInput + 146, // 45: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.trajectory_single_tool_use_input:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput + 11, // 46: google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest.autorater_config:type_name -> google.cloud.aiplatform.v1beta1.AutoraterConfig + 17, // 47: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.exact_match_results:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchResults + 22, // 48: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.bleu_results:type_name -> google.cloud.aiplatform.v1beta1.BleuResults + 27, // 49: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.rouge_results:type_name -> google.cloud.aiplatform.v1beta1.RougeResults + 36, // 50: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.fluency_result:type_name -> google.cloud.aiplatform.v1beta1.FluencyResult + 32, // 51: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.coherence_result:type_name -> google.cloud.aiplatform.v1beta1.CoherenceResult + 40, // 52: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.safety_result:type_name -> google.cloud.aiplatform.v1beta1.SafetyResult + 44, // 53: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.groundedness_result:type_name -> google.cloud.aiplatform.v1beta1.GroundednessResult + 48, // 54: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.fulfillment_result:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentResult + 52, // 55: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_quality_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityResult + 56, // 56: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_summarization_quality_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult + 60, // 57: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_helpfulness_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessResult + 64, // 58: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.summarization_verbosity_result:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityResult + 68, // 59: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_quality_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityResult + 72, // 60: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_question_answering_quality_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult + 76, // 61: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_relevance_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceResult + 80, // 62: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_helpfulness_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessResult + 84, // 63: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.question_answering_correctness_result:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessResult + 88, // 64: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pointwise_metric_result:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricResult + 92, // 65: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.pairwise_metric_result:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricResult + 96, // 66: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_call_valid_results:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidResults + 101, // 67: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_name_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchResults + 106, // 68: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_parameter_key_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults + 111, // 69: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.tool_parameter_kv_match_results:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults + 116, // 70: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.comet_result:type_name -> google.cloud.aiplatform.v1beta1.CometResult + 120, // 71: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.metricx_result:type_name -> google.cloud.aiplatform.v1beta1.MetricxResult + 124, // 72: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_exact_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults + 129, // 73: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_in_order_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults + 134, // 74: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_any_order_match_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults + 139, // 75: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_precision_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults + 144, // 76: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_recall_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallResults + 149, // 77: google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse.trajectory_single_tool_use_results:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults + 16, // 78: google.cloud.aiplatform.v1beta1.ExactMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchSpec + 15, // 79: google.cloud.aiplatform.v1beta1.ExactMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchInstance + 18, // 80: google.cloud.aiplatform.v1beta1.ExactMatchResults.exact_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ExactMatchMetricValue + 21, // 81: google.cloud.aiplatform.v1beta1.BleuInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.BleuSpec + 20, // 82: google.cloud.aiplatform.v1beta1.BleuInput.instances:type_name -> google.cloud.aiplatform.v1beta1.BleuInstance + 23, // 83: google.cloud.aiplatform.v1beta1.BleuResults.bleu_metric_values:type_name -> google.cloud.aiplatform.v1beta1.BleuMetricValue + 26, // 84: google.cloud.aiplatform.v1beta1.RougeInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.RougeSpec + 25, // 85: google.cloud.aiplatform.v1beta1.RougeInput.instances:type_name -> google.cloud.aiplatform.v1beta1.RougeInstance + 28, // 86: google.cloud.aiplatform.v1beta1.RougeResults.rouge_metric_values:type_name -> google.cloud.aiplatform.v1beta1.RougeMetricValue + 31, // 87: google.cloud.aiplatform.v1beta1.CoherenceInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.CoherenceSpec + 30, // 88: google.cloud.aiplatform.v1beta1.CoherenceInput.instance:type_name -> google.cloud.aiplatform.v1beta1.CoherenceInstance + 35, // 89: google.cloud.aiplatform.v1beta1.FluencyInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.FluencySpec + 34, // 90: google.cloud.aiplatform.v1beta1.FluencyInput.instance:type_name -> google.cloud.aiplatform.v1beta1.FluencyInstance + 39, // 91: google.cloud.aiplatform.v1beta1.SafetyInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SafetySpec + 38, // 92: google.cloud.aiplatform.v1beta1.SafetyInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SafetyInstance + 43, // 93: google.cloud.aiplatform.v1beta1.GroundednessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.GroundednessSpec + 42, // 94: google.cloud.aiplatform.v1beta1.GroundednessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.GroundednessInstance + 47, // 95: google.cloud.aiplatform.v1beta1.FulfillmentInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentSpec + 46, // 96: google.cloud.aiplatform.v1beta1.FulfillmentInput.instance:type_name -> google.cloud.aiplatform.v1beta1.FulfillmentInstance + 51, // 97: google.cloud.aiplatform.v1beta1.SummarizationQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualitySpec + 50, // 98: google.cloud.aiplatform.v1beta1.SummarizationQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationQualityInstance + 55, // 99: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualitySpec + 54, // 100: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityInstance + 0, // 101: google.cloud.aiplatform.v1beta1.PairwiseSummarizationQualityResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice + 59, // 102: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessSpec + 58, // 103: google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationHelpfulnessInstance + 63, // 104: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbositySpec + 62, // 105: google.cloud.aiplatform.v1beta1.SummarizationVerbosityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.SummarizationVerbosityInstance + 67, // 106: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualitySpec + 66, // 107: google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringQualityInstance + 71, // 108: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualitySpec + 70, // 109: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityInstance + 0, // 110: google.cloud.aiplatform.v1beta1.PairwiseQuestionAnsweringQualityResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice + 75, // 111: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceSpec + 74, // 112: google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringRelevanceInstance + 79, // 113: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessSpec + 78, // 114: google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringHelpfulnessInstance + 83, // 115: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessSpec + 82, // 116: google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInput.instance:type_name -> google.cloud.aiplatform.v1beta1.QuestionAnsweringCorrectnessInstance + 87, // 117: google.cloud.aiplatform.v1beta1.PointwiseMetricInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricSpec + 86, // 118: google.cloud.aiplatform.v1beta1.PointwiseMetricInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PointwiseMetricInstance + 91, // 119: google.cloud.aiplatform.v1beta1.PairwiseMetricInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricSpec + 90, // 120: google.cloud.aiplatform.v1beta1.PairwiseMetricInput.instance:type_name -> google.cloud.aiplatform.v1beta1.PairwiseMetricInstance + 0, // 121: google.cloud.aiplatform.v1beta1.PairwiseMetricResult.pairwise_choice:type_name -> google.cloud.aiplatform.v1beta1.PairwiseChoice + 94, // 122: google.cloud.aiplatform.v1beta1.ToolCallValidInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidSpec + 95, // 123: google.cloud.aiplatform.v1beta1.ToolCallValidInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidInstance + 97, // 124: google.cloud.aiplatform.v1beta1.ToolCallValidResults.tool_call_valid_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolCallValidMetricValue + 99, // 125: google.cloud.aiplatform.v1beta1.ToolNameMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchSpec + 100, // 126: google.cloud.aiplatform.v1beta1.ToolNameMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchInstance + 102, // 127: google.cloud.aiplatform.v1beta1.ToolNameMatchResults.tool_name_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolNameMatchMetricValue + 104, // 128: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchSpec + 105, // 129: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchInstance + 107, // 130: google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchResults.tool_parameter_key_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKeyMatchMetricValue + 109, // 131: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchSpec + 110, // 132: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchInstance + 112, // 133: google.cloud.aiplatform.v1beta1.ToolParameterKVMatchResults.tool_parameter_kv_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.ToolParameterKVMatchMetricValue + 114, // 134: google.cloud.aiplatform.v1beta1.CometInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.CometSpec + 115, // 135: google.cloud.aiplatform.v1beta1.CometInput.instance:type_name -> google.cloud.aiplatform.v1beta1.CometInstance + 2, // 136: google.cloud.aiplatform.v1beta1.CometSpec.version:type_name -> google.cloud.aiplatform.v1beta1.CometSpec.CometVersion + 118, // 137: google.cloud.aiplatform.v1beta1.MetricxInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.MetricxSpec + 119, // 138: google.cloud.aiplatform.v1beta1.MetricxInput.instance:type_name -> google.cloud.aiplatform.v1beta1.MetricxInstance + 3, // 139: google.cloud.aiplatform.v1beta1.MetricxSpec.version:type_name -> google.cloud.aiplatform.v1beta1.MetricxSpec.MetricxVersion + 122, // 140: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchSpec + 123, // 141: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance + 151, // 142: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 151, // 143: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 125, // 144: google.cloud.aiplatform.v1beta1.TrajectoryExactMatchResults.trajectory_exact_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryExactMatchMetricValue + 127, // 145: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchSpec + 128, // 146: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance + 151, // 147: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 151, // 148: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 130, // 149: google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchResults.trajectory_in_order_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryInOrderMatchMetricValue + 132, // 150: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchSpec + 133, // 151: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance + 151, // 152: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 151, // 153: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 135, // 154: google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchResults.trajectory_any_order_match_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryAnyOrderMatchMetricValue + 137, // 155: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionSpec + 138, // 156: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance + 151, // 157: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 151, // 158: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 140, // 159: google.cloud.aiplatform.v1beta1.TrajectoryPrecisionResults.trajectory_precision_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryPrecisionMetricValue + 142, // 160: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallSpec + 143, // 161: google.cloud.aiplatform.v1beta1.TrajectoryRecallInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance + 151, // 162: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 151, // 163: google.cloud.aiplatform.v1beta1.TrajectoryRecallInstance.reference_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 145, // 164: google.cloud.aiplatform.v1beta1.TrajectoryRecallResults.trajectory_recall_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectoryRecallMetricValue + 147, // 165: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput.metric_spec:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseSpec + 148, // 166: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInput.instances:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance + 151, // 167: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseInstance.predicted_trajectory:type_name -> google.cloud.aiplatform.v1beta1.Trajectory + 150, // 168: google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseResults.trajectory_single_tool_use_metric_values:type_name -> google.cloud.aiplatform.v1beta1.TrajectorySingleToolUseMetricValue + 152, // 169: google.cloud.aiplatform.v1beta1.Trajectory.tool_calls:type_name -> google.cloud.aiplatform.v1beta1.ToolCall + 12, // 170: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances:input_type -> google.cloud.aiplatform.v1beta1.EvaluateInstancesRequest + 7, // 171: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateDataset:input_type -> google.cloud.aiplatform.v1beta1.EvaluateDatasetRequest + 13, // 172: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateInstances:output_type -> google.cloud.aiplatform.v1beta1.EvaluateInstancesResponse + 157, // 173: google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateDataset:output_type -> google.longrunning.Operation + 172, // [172:174] is the sub-list for method output_type + 170, // [170:172] is the sub-list for method input_type + 170, // [170:170] is the sub-list for extension type_name + 170, // [170:170] is the sub-list for extension extendee + 0, // [0:170] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_init() } @@ -11319,8 +12117,27 @@ func file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_init() { if File_google_cloud_aiplatform_v1beta1_evaluation_service_proto != nil { return } - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[0].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[1].OneofWrappers = []any{ + file_google_cloud_aiplatform_v1beta1_io_proto_init() + file_google_cloud_aiplatform_v1beta1_operation_proto_init() + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2].OneofWrappers = []any{ + (*OutputInfo_GcsOutputDirectory)(nil), + } + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4].OneofWrappers = []any{ + (*OutputConfig_GcsDestination)(nil), + } + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[5].OneofWrappers = []any{ + (*Metric_PointwiseMetricSpec)(nil), + (*Metric_PairwiseMetricSpec)(nil), + (*Metric_ExactMatchSpec)(nil), + (*Metric_BleuSpec)(nil), + (*Metric_RougeSpec)(nil), + } + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[6].OneofWrappers = []any{ + (*EvaluationDataset_GcsSource)(nil), + (*EvaluationDataset_BigquerySource)(nil), + } + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[8].OneofWrappers = []any{ (*EvaluateInstancesRequest_ExactMatchInput)(nil), (*EvaluateInstancesRequest_BleuInput)(nil), (*EvaluateInstancesRequest_RougeInput)(nil), @@ -11353,7 +12170,7 @@ func file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_init() { (*EvaluateInstancesRequest_TrajectoryRecallInput)(nil), (*EvaluateInstancesRequest_TrajectorySingleToolUseInput)(nil), } - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[2].OneofWrappers = []any{ + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9].OneofWrappers = []any{ (*EvaluateInstancesResponse_ExactMatchResults)(nil), (*EvaluateInstancesResponse_BleuResults)(nil), (*EvaluateInstancesResponse_RougeResults)(nil), @@ -11386,84 +12203,84 @@ func file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_init() { (*EvaluateInstancesResponse_TrajectoryRecallResults)(nil), (*EvaluateInstancesResponse_TrajectorySingleToolUseResults)(nil), } - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[4].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[7].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[9].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[12].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[11].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[14].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[17].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[16].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[19].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[21].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[23].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[25].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[27].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[29].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[31].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[33].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[35].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[37].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[39].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[41].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[43].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[45].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[47].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[49].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[51].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[53].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[55].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[57].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[59].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[61].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[63].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[65].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[67].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[69].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[71].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[73].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[75].OneofWrappers = []any{ + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[24].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[26].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[28].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[30].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[32].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[34].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[36].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[38].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[40].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[42].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[44].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[46].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[48].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[50].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[52].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[54].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[56].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[58].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[60].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[62].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[64].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[66].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[68].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[70].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[72].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[74].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[78].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[82].OneofWrappers = []any{ (*PointwiseMetricInstance_JsonInstance)(nil), } - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[76].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[77].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[79].OneofWrappers = []any{ + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[83].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86].OneofWrappers = []any{ (*PairwiseMetricInstance_JsonInstance)(nil), } - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[80].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[84].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[86].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[89].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[87].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[91].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[94].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[93].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[96].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[99].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[98].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[101].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[103].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[104].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[105].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[107].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[106].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[108].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[109].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[110].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[111].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[112].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[114].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[117].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[115].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[116].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[119].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[122].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[121].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[124].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[127].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[126].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[129].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[132].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[131].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[134].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[136].OneofWrappers = []any{} - file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[137].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[139].OneofWrappers = []any{} file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[141].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[143].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[144].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[146].OneofWrappers = []any{} + file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_msgTypes[148].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_evaluation_service_proto_rawDesc, - NumEnums: 3, - NumMessages: 142, + NumEnums: 4, + NumMessages: 149, NumExtensions: 0, NumServices: 1, }, @@ -11492,6 +12309,8 @@ const _ = grpc.SupportPackageIsVersion6 type EvaluationServiceClient interface { // Evaluates instances based on a given metric. EvaluateInstances(ctx context.Context, in *EvaluateInstancesRequest, opts ...grpc.CallOption) (*EvaluateInstancesResponse, error) + // Evaluates a dataset based on a set of given metrics. + EvaluateDataset(ctx context.Context, in *EvaluateDatasetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) } type evaluationServiceClient struct { @@ -11511,10 +12330,21 @@ func (c *evaluationServiceClient) EvaluateInstances(ctx context.Context, in *Eva return out, nil } +func (c *evaluationServiceClient) EvaluateDataset(ctx context.Context, in *EvaluateDatasetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1beta1.EvaluationService/EvaluateDataset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // EvaluationServiceServer is the server API for EvaluationService service. type EvaluationServiceServer interface { // Evaluates instances based on a given metric. EvaluateInstances(context.Context, *EvaluateInstancesRequest) (*EvaluateInstancesResponse, error) + // Evaluates a dataset based on a set of given metrics. + EvaluateDataset(context.Context, *EvaluateDatasetRequest) (*longrunningpb.Operation, error) } // UnimplementedEvaluationServiceServer can be embedded to have forward compatible implementations. @@ -11524,6 +12354,9 @@ type UnimplementedEvaluationServiceServer struct { func (*UnimplementedEvaluationServiceServer) EvaluateInstances(context.Context, *EvaluateInstancesRequest) (*EvaluateInstancesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EvaluateInstances not implemented") } +func (*UnimplementedEvaluationServiceServer) EvaluateDataset(context.Context, *EvaluateDatasetRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method EvaluateDataset not implemented") +} func RegisterEvaluationServiceServer(s *grpc.Server, srv EvaluationServiceServer) { s.RegisterService(&_EvaluationService_serviceDesc, srv) @@ -11547,6 +12380,24 @@ func _EvaluationService_EvaluateInstances_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _EvaluationService_EvaluateDataset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EvaluateDatasetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EvaluationServiceServer).EvaluateDataset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1beta1.EvaluationService/EvaluateDataset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EvaluationServiceServer).EvaluateDataset(ctx, req.(*EvaluateDatasetRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _EvaluationService_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.aiplatform.v1beta1.EvaluationService", HandlerType: (*EvaluationServiceServer)(nil), @@ -11555,6 +12406,10 @@ var _EvaluationService_serviceDesc = grpc.ServiceDesc{ MethodName: "EvaluateInstances", Handler: _EvaluationService_EvaluateInstances_Handler, }, + { + MethodName: "EvaluateDataset", + Handler: _EvaluationService_EvaluateDataset_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/aiplatform/v1beta1/evaluation_service.proto", diff --git a/aiplatform/apiv1beta1/auxiliary.go b/aiplatform/apiv1beta1/auxiliary.go index 9746b98392f6..d88f0751c10d 100755 --- a/aiplatform/apiv1beta1/auxiliary.go +++ b/aiplatform/apiv1beta1/auxiliary.go @@ -4536,6 +4536,70 @@ func (op *DeployPublisherModelOperation) Name() string { return op.lro.Name() } +// EvaluateDatasetOperation manages a long-running operation from EvaluateDataset. +type EvaluateDatasetOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *EvaluateDatasetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.EvaluateDatasetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp aiplatformpb.EvaluateDatasetResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *EvaluateDatasetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.EvaluateDatasetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp aiplatformpb.EvaluateDatasetResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *EvaluateDatasetOperation) Metadata() (*aiplatformpb.EvaluateDatasetOperationMetadata, error) { + var meta aiplatformpb.EvaluateDatasetOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *EvaluateDatasetOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *EvaluateDatasetOperation) Name() string { + return op.lro.Name() +} + // ExportDataOperation manages a long-running operation from ExportData. type ExportDataOperation struct { lro *longrunning.Operation diff --git a/aiplatform/apiv1beta1/evaluation_client.go b/aiplatform/apiv1beta1/evaluation_client.go index a4d440de69ec..ae3c0a0ffc07 100755 --- a/aiplatform/apiv1beta1/evaluation_client.go +++ b/aiplatform/apiv1beta1/evaluation_client.go @@ -28,6 +28,8 @@ import ( aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" gax "github.com/googleapis/gax-go/v2" "google.golang.org/api/iterator" @@ -46,6 +48,7 @@ var newEvaluationClientHook clientHook // EvaluationCallOptions contains the retry settings for each method of EvaluationClient. type EvaluationCallOptions struct { EvaluateInstances []gax.CallOption + EvaluateDataset []gax.CallOption GetLocation []gax.CallOption ListLocations []gax.CallOption GetIamPolicy []gax.CallOption @@ -78,6 +81,7 @@ func defaultEvaluationCallOptions() *EvaluationCallOptions { EvaluateInstances: []gax.CallOption{ gax.WithTimeout(60000 * time.Millisecond), }, + EvaluateDataset: []gax.CallOption{}, GetLocation: []gax.CallOption{}, ListLocations: []gax.CallOption{}, GetIamPolicy: []gax.CallOption{}, @@ -96,6 +100,7 @@ func defaultEvaluationRESTCallOptions() *EvaluationCallOptions { EvaluateInstances: []gax.CallOption{ gax.WithTimeout(60000 * time.Millisecond), }, + EvaluateDataset: []gax.CallOption{}, GetLocation: []gax.CallOption{}, ListLocations: []gax.CallOption{}, GetIamPolicy: []gax.CallOption{}, @@ -115,6 +120,8 @@ type internalEvaluationClient interface { setGoogleClientInfo(...string) Connection() *grpc.ClientConn EvaluateInstances(context.Context, *aiplatformpb.EvaluateInstancesRequest, ...gax.CallOption) (*aiplatformpb.EvaluateInstancesResponse, error) + EvaluateDataset(context.Context, *aiplatformpb.EvaluateDatasetRequest, ...gax.CallOption) (*EvaluateDatasetOperation, error) + EvaluateDatasetOperation(name string) *EvaluateDatasetOperation GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) @@ -137,6 +144,11 @@ type EvaluationClient struct { // The call options for this service. CallOptions *EvaluationCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient } // Wrapper methods routed to the internal client. @@ -167,6 +179,17 @@ func (c *EvaluationClient) EvaluateInstances(ctx context.Context, req *aiplatfor return c.internalClient.EvaluateInstances(ctx, req, opts...) } +// EvaluateDataset evaluates a dataset based on a set of given metrics. +func (c *EvaluationClient) EvaluateDataset(ctx context.Context, req *aiplatformpb.EvaluateDatasetRequest, opts ...gax.CallOption) (*EvaluateDatasetOperation, error) { + return c.internalClient.EvaluateDataset(ctx, req, opts...) +} + +// EvaluateDatasetOperation returns a new EvaluateDatasetOperation from a given name. +// The name must be that of a previously created EvaluateDatasetOperation, possibly from a different process. +func (c *EvaluationClient) EvaluateDatasetOperation(name string) *EvaluateDatasetOperation { + return c.internalClient.EvaluateDatasetOperation(name) +} + // GetLocation gets information about a location. func (c *EvaluationClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { return c.internalClient.GetLocation(ctx, req, opts...) @@ -241,6 +264,11 @@ type evaluationGRPCClient struct { // The gRPC API client. evaluationClient aiplatformpb.EvaluationServiceClient + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + operationsClient longrunningpb.OperationsClient iamPolicyClient iampb.IAMPolicyClient @@ -286,6 +314,17 @@ func NewEvaluationClient(ctx context.Context, opts ...option.ClientOption) (*Eva client.internalClient = c + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient return &client, nil } @@ -322,6 +361,11 @@ type evaluationRESTClient struct { // The http client. httpClient *http.Client + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + // The x-goog-* headers to be sent with each request. xGoogHeaders []string @@ -350,6 +394,16 @@ func NewEvaluationRESTClient(ctx context.Context, opts ...option.ClientOption) ( } c.setGoogleClientInfo() + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + return &EvaluationClient{internalClient: c, CallOptions: callOpts}, nil } @@ -408,6 +462,26 @@ func (c *evaluationGRPCClient) EvaluateInstances(ctx context.Context, req *aipla return resp, nil } +func (c *evaluationGRPCClient) EvaluateDataset(ctx context.Context, req *aiplatformpb.EvaluateDatasetRequest, opts ...gax.CallOption) (*EvaluateDatasetOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "location", url.QueryEscape(req.GetLocation()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).EvaluateDataset[0:len((*c.CallOptions).EvaluateDataset):len((*c.CallOptions).EvaluateDataset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.evaluationClient.EvaluateDataset, req, settings.GRPC, c.logger, "EvaluateDataset") + return err + }, opts...) + if err != nil { + return nil, err + } + return &EvaluateDatasetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + func (c *evaluationGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} @@ -692,6 +766,65 @@ func (c *evaluationRESTClient) EvaluateInstances(ctx context.Context, req *aipla return resp, nil } +// EvaluateDataset evaluates a dataset based on a set of given metrics. +func (c *evaluationRESTClient) EvaluateDataset(ctx context.Context, req *aiplatformpb.EvaluateDatasetRequest, opts ...gax.CallOption) (*EvaluateDatasetOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:evaluateDataset", req.GetLocation()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "location", url.QueryEscape(req.GetLocation()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "EvaluateDataset") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/ui/%s", resp.GetName()) + return &EvaluateDatasetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + // GetLocation gets information about a location. func (c *evaluationRESTClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { baseUrl, err := url.Parse(c.endpoint) @@ -1259,3 +1392,21 @@ func (c *evaluationRESTClient) WaitOperation(ctx context.Context, req *longrunni } return resp, nil } + +// EvaluateDatasetOperation returns a new EvaluateDatasetOperation from a given name. +// The name must be that of a previously created EvaluateDatasetOperation, possibly from a different process. +func (c *evaluationGRPCClient) EvaluateDatasetOperation(name string) *EvaluateDatasetOperation { + return &EvaluateDatasetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// EvaluateDatasetOperation returns a new EvaluateDatasetOperation from a given name. +// The name must be that of a previously created EvaluateDatasetOperation, possibly from a different process. +func (c *evaluationRESTClient) EvaluateDatasetOperation(name string) *EvaluateDatasetOperation { + override := fmt.Sprintf("/ui/%s", name) + return &EvaluateDatasetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/aiplatform/apiv1beta1/evaluation_client_example_test.go b/aiplatform/apiv1beta1/evaluation_client_example_test.go index cf72541d7d9c..993dd6e8e849 100644 --- a/aiplatform/apiv1beta1/evaluation_client_example_test.go +++ b/aiplatform/apiv1beta1/evaluation_client_example_test.go @@ -61,6 +61,36 @@ func ExampleNewEvaluationRESTClient() { _ = c } +func ExampleEvaluationClient_EvaluateDataset() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewEvaluationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.EvaluateDatasetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#EvaluateDatasetRequest. + } + op, err := c.EvaluateDataset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleEvaluationClient_EvaluateInstances() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. diff --git a/aiplatform/apiv1beta1/gapic_metadata.json b/aiplatform/apiv1beta1/gapic_metadata.json index f596835c0a3e..1f09f64b8331 100644 --- a/aiplatform/apiv1beta1/gapic_metadata.json +++ b/aiplatform/apiv1beta1/gapic_metadata.json @@ -702,6 +702,11 @@ "DeleteOperation" ] }, + "EvaluateDataset": { + "methods": [ + "EvaluateDataset" + ] + }, "EvaluateInstances": { "methods": [ "EvaluateInstances" @@ -762,6 +767,11 @@ "DeleteOperation" ] }, + "EvaluateDataset": { + "methods": [ + "EvaluateDataset" + ] + }, "EvaluateInstances": { "methods": [ "EvaluateInstances" diff --git a/dataplex/apiv1/dataplexpb/catalog.pb.go b/dataplex/apiv1/dataplexpb/catalog.pb.go index f59857af3415..71d41869cb84 100755 --- a/dataplex/apiv1/dataplexpb/catalog.pb.go +++ b/dataplex/apiv1/dataplexpb/catalog.pb.go @@ -231,6 +231,10 @@ const ( // metadata import file are modified. Use this mode to modify a subset of // resources while leaving unreferenced resources unchanged. MetadataJob_ImportJobSpec_INCREMENTAL MetadataJob_ImportJobSpec_SyncMode = 2 + // If entry sync mode is NONE, then the entry-specific fields (apart from + // aspects) are not modified and the aspects are modified according to the + // aspect_sync_mode + MetadataJob_ImportJobSpec_NONE MetadataJob_ImportJobSpec_SyncMode = 3 ) // Enum value maps for MetadataJob_ImportJobSpec_SyncMode. @@ -239,11 +243,13 @@ var ( 0: "SYNC_MODE_UNSPECIFIED", 1: "FULL", 2: "INCREMENTAL", + 3: "NONE", } MetadataJob_ImportJobSpec_SyncMode_value = map[string]int32{ "SYNC_MODE_UNSPECIFIED": 0, "FULL": 1, "INCREMENTAL": 2, + "NONE": 3, } ) @@ -1028,7 +1034,8 @@ type Entry struct { // * If the aspect is attached to an entry's path: // `{project_id_or_number}.{location_id}.{aspect_type_id}@{path}` Aspects map[string]*Aspect `protobuf:"bytes,9,rep,name=aspects,proto3" json:"aspects,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Optional. Immutable. The resource name of the parent entry. + // Optional. Immutable. The resource name of the parent entry, in the format + // `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`. ParentEntry string `protobuf:"bytes,10,opt,name=parent_entry,json=parentEntry,proto3" json:"parent_entry,omitempty"` // Optional. A name for the entry that can be referenced by an external // system. For more information, see [Fully qualified @@ -3087,6 +3094,7 @@ type SearchEntriesRequest struct { PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Optional. Specifies the ordering of results. // Supported values are: + // // * `relevance` (default) // * `last_modified_timestamp` // * `last_modified_timestamp asc` @@ -5725,7 +5733,7 @@ var file_google_cloud_dataplex_v1_catalog_proto_rawDesc = []byte{ 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb3, 0x13, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x13, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, @@ -5784,7 +5792,7 @@ var file_google_cloud_dataplex_v1_catalog_proto_rawDesc = []byte{ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x1a, 0xa3, 0x07, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, + 0x69, 0x6d, 0x65, 0x1a, 0xad, 0x07, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, @@ -5834,407 +5842,408 @@ var file_google_cloud_dataplex_v1_catalog_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x53, + 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, - 0x49, 0x4e, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x22, 0x3a, 0x0a, - 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, - 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x02, 0x1a, 0xf9, 0x02, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, - 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, - 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, - 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x55, - 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x53, 0x10, 0x07, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x28, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, - 0x0a, 0x06, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, - 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x42, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x7d, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, - 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x51, 0x0a, 0x09, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, - 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x04, 0x2a, 0x70, 0x0a, - 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x02, 0x32, - 0x95, 0x29, 0x0a, 0x0e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xea, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1f, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3c, 0x3a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, - 0xec, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, - 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x16, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, - 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xce, - 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x2a, - 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, - 0xb4, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3d, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf1, 0x01, 0x0a, 0x10, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x49, 0x4e, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x08, 0x0a, + 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x3a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0x02, 0x1a, 0xf9, 0x02, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x12, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, + 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, + 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, + 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, + 0x44, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x07, 0x1a, + 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4d, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x01, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x42, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, + 0x62, 0x7d, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x51, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x07, + 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x04, 0x2a, 0x70, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x49, + 0x47, 0x52, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x46, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x02, 0x32, 0x95, 0x29, 0x0a, 0x0e, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xea, 0x01, 0x0a, + 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x8a, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, - 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x61, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, - 0x3a, 0x0b, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xf3, - 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x41, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x61, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x0b, 0x61, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6e, 0x22, 0x85, 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x0a, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xec, 0x01, 0x0a, 0x0f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, + 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x16, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x47, 0x3a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x32, 0x39, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xce, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0xca, + 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x2a, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3f, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, + 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x12, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf1, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0xca, 0x41, 0x2a, - 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x40, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf1, 0x01, 0x0a, 0x10, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, - 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3e, 0x3a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2f, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, - 0xf3, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x0b, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0xca, 0x41, + 0x1f, 0x0a, 0x0a, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x0b, 0x61, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xf3, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x8c, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x0b, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd1, + 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xa5, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf1, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0xca, 0x41, - 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbe, 0x01, 0x0a, - 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x60, 0xda, 0x41, 0x15, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2c, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x05, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0xc1, 0x01, - 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x63, 0xda, 0x41, - 0x11, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x32, - 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0xca, + 0x41, 0x1f, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x0b, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xf3, 0x01, 0x0a, 0x10, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x8c, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xd1, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xa5, + 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2a, - 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, - 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x60, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x39, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0xc1, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x63, 0xda, 0x41, 0x11, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x49, 0x3a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, - 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x12, 0xb6, 0x01, 0x0a, 0x0b, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x0b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x49, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x12, 0xb6, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0xa1, + 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x29, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, - 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x7d, 0x3a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0xb6, - 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x44, 0xda, 0x41, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0xf8, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x32, 0x2e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, + 0x2a, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0xb6, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0xda, 0x41, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x12, 0xf8, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, 0xca, 0x41, 0x20, + 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x6a, 0x6f, 0x62, 0x2c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x0c, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xa9, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x22, 0x3f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, - 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x8f, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6a, 0x6f, 0x62, 0x2c, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x40, 0x3a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6a, 0x6f, 0x62, - 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, - 0x62, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x22, 0x3f, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbc, - 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, - 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0xda, 0x41, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xaa, 0x01, - 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4a, 0x6f, 0x62, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x01, - 0x2a, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, - 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xbc, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x01, 0x2a, 0x22, 0x37, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x42, 0xbc, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x42, 0x0c, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, + 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x5c, + 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/dataplex/apiv1/dataplexpb/data_quality.pb.go b/dataplex/apiv1/dataplexpb/data_quality.pb.go index aea732302989..7492888d05ba 100755 --- a/dataplex/apiv1/dataplexpb/data_quality.pb.go +++ b/dataplex/apiv1/dataplexpb/data_quality.pb.go @@ -373,10 +373,10 @@ type DataQualityRuleResult struct { // evaluation, or // * exclude `null` rows from the `evaluated_count`, by setting // `ignore_nulls = true`. - EvaluatedCount int64 `protobuf:"varint,9,opt,name=evaluated_count,json=evaluatedCount,proto3" json:"evaluated_count,omitempty"` - // The number of rows which passed a rule evaluation. // - // This field is only valid for row-level type rules. + // This field is not set for rule SqlAssertion. + EvaluatedCount int64 `protobuf:"varint,9,opt,name=evaluated_count,json=evaluatedCount,proto3" json:"evaluated_count,omitempty"` + // This field is not set for rule SqlAssertion. PassedCount int64 `protobuf:"varint,8,opt,name=passed_count,json=passedCount,proto3" json:"passed_count,omitempty"` // The number of rows with null values in the specified column. NullCount int64 `protobuf:"varint,5,opt,name=null_count,json=nullCount,proto3" json:"null_count,omitempty"` diff --git a/dataplex/apiv1/dataplexpb/datascans.pb.go b/dataplex/apiv1/dataplexpb/datascans.pb.go index f4cc638d12c8..31d2ea26aacf 100755 --- a/dataplex/apiv1/dataplexpb/datascans.pb.go +++ b/dataplex/apiv1/dataplexpb/datascans.pb.go @@ -1125,11 +1125,17 @@ func (x *GenerateDataQualityRulesResponse) GetRule() []*DataQualityRule { // // For example: // -// - Data Quality: generates queries based on the rules and runs against the -// data to get data quality check results. -// - Data Profile: analyzes the data in table(s) and generates insights about +// - Data quality: generates queries based on the rules and runs against the +// data to get data quality check results. For more information, see [Auto +// data quality +// overview](https://cloud.google.com/dataplex/docs/auto-data-quality-overview). +// - Data profile: analyzes the data in tables and generates insights about // the structure, content and relationships (such as null percent, -// cardinality, min/max/mean, etc). +// cardinality, min/max/mean, etc). For more information, see [About data +// profiling](https://cloud.google.com/dataplex/docs/data-profiling-overview). +// - Data discovery: scans data in Cloud Storage buckets to extract and then +// catalog metadata. For more information, see [Discover and catalog Cloud +// Storage data](https://cloud.google.com/bigquery/docs/automatic-discovery). type DataScan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/documentai/apiv1beta3/documentaipb/document_processor_service.pb.go b/documentai/apiv1beta3/documentaipb/document_processor_service.pb.go index eed84efb272a..b641e6e35fb6 100755 --- a/documentai/apiv1beta3/documentaipb/document_processor_service.pb.go +++ b/documentai/apiv1beta3/documentaipb/document_processor_service.pb.go @@ -3906,11 +3906,11 @@ type ProcessOptions_LayoutConfig_ChunkingConfig struct { // Optional. Whether or not to include ancestor headings when splitting. IncludeAncestorHeadings bool `protobuf:"varint,2,opt,name=include_ancestor_headings,json=includeAncestorHeadings,proto3" json:"include_ancestor_headings,omitempty"` // Optional. The number of tokens to group together when evaluating - // semantic similarity. + // semantic similarity. THIS FIELD IS NOT YET USED. SemanticChunkingGroupSize bool `protobuf:"varint,3,opt,name=semantic_chunking_group_size,json=semanticChunkingGroupSize,proto3" json:"semantic_chunking_group_size,omitempty"` // Optional. The percentile of cosine dissimilarity that must be exceeded // between a group of tokens and the next. The smaller this number is, the - // more chunks will be generated. + // more chunks will be generated. THIS FIELD IS NOT YET USED. BreakpointPercentileThreshold int32 `protobuf:"varint,4,opt,name=breakpoint_percentile_threshold,json=breakpointPercentileThreshold,proto3" json:"breakpoint_percentile_threshold,omitempty"` } diff --git a/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json b/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json index 749a9bd70e47..b1ed7c6cc9cc 100644 --- a/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json +++ b/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/aiplatform/apiv1", - "version": "1.71.0", + "version": "1.72.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/EvaluationClient/EvaluateDataset/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/EvaluationClient/EvaluateDataset/main.go new file mode 100644 index 000000000000..c5c021f5c9af --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/EvaluationClient/EvaluateDataset/main.go @@ -0,0 +1,58 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_EvaluationService_EvaluateDataset_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewEvaluationClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.EvaluateDatasetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#EvaluateDatasetRequest. + } + op, err := c.EvaluateDataset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_EvaluationService_EvaluateDataset_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json b/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json index 0bdb230256bf..ca6eb7f83d59 100644 --- a/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json +++ b/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/aiplatform/apiv1beta1", - "version": "1.71.0", + "version": "1.72.0", "language": "GO", "apis": [ { @@ -3039,6 +3039,52 @@ } ] }, + { + "regionTag": "aiplatform_v1beta1_generated_EvaluationService_EvaluateDataset_sync", + "title": "aiplatform EvaluateDataset Sample", + "description": "EvaluateDataset evaluates a dataset based on a set of given metrics.", + "file": "EvaluationClient/EvaluateDataset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "EvaluateDataset", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationClient.EvaluateDataset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.EvaluateDatasetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "EvaluateDatasetOperation", + "client": { + "shortName": "EvaluationClient", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationClient" + }, + "method": { + "shortName": "EvaluateDataset", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationService.EvaluateDataset", + "service": { + "shortName": "EvaluationService", + "fullName": "google.cloud.aiplatform.v1beta1.EvaluationService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, { "regionTag": "aiplatform_v1beta1_generated_EvaluationService_EvaluateInstances_sync", "title": "aiplatform EvaluateInstances Sample", diff --git a/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json b/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json index f7418885a4eb..3e7f1a29b750 100644 --- a/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json +++ b/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/analyticshub/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/biglake/apiv1/snippet_metadata.google.cloud.bigquery.biglake.v1.json b/internal/generated/snippets/bigquery/biglake/apiv1/snippet_metadata.google.cloud.bigquery.biglake.v1.json index b43b59bfd848..a13a4cc0d546 100644 --- a/internal/generated/snippets/bigquery/biglake/apiv1/snippet_metadata.google.cloud.bigquery.biglake.v1.json +++ b/internal/generated/snippets/bigquery/biglake/apiv1/snippet_metadata.google.cloud.bigquery.biglake.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/biglake/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/biglake/apiv1alpha1/snippet_metadata.google.cloud.bigquery.biglake.v1alpha1.json b/internal/generated/snippets/bigquery/biglake/apiv1alpha1/snippet_metadata.google.cloud.bigquery.biglake.v1alpha1.json index e0dd1d5222bc..2c5b97db530f 100644 --- a/internal/generated/snippets/bigquery/biglake/apiv1alpha1/snippet_metadata.google.cloud.bigquery.biglake.v1alpha1.json +++ b/internal/generated/snippets/bigquery/biglake/apiv1alpha1/snippet_metadata.google.cloud.bigquery.biglake.v1alpha1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/biglake/apiv1alpha1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json b/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json index ead08e14938e..bbb5e64ae2d5 100644 --- a/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json +++ b/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/connection/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json b/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json index 8f6cd6245996..064d50751c9f 100644 --- a/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json +++ b/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/connection/apiv1beta1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json b/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json index 287f6252fa74..633d095843f3 100644 --- a/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json +++ b/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/dataexchange/apiv1beta1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json b/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json index abb6ee0aa9ac..190a96aeba1c 100644 --- a/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json +++ b/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datapolicies/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json b/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json index b696ca1a75da..c97f7847db6a 100644 --- a/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json +++ b/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datapolicies/apiv1beta1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json b/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json index 114f5c7cf8fd..47187bd029e7 100644 --- a/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json +++ b/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datatransfer/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json b/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json index d6e2e276739a..8f567753fb85 100644 --- a/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json +++ b/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/migration/apiv2", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json b/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json index 6e76aaf89f9f..dab97363de72 100644 --- a/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json +++ b/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/migration/apiv2alpha", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json b/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json index ee130e5b463b..9d2fe78e693b 100644 --- a/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json +++ b/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/reservation/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json b/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json index 03abceabbbeb..2d5567d75ecf 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json +++ b/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1alpha/snippet_metadata.google.cloud.bigquery.storage.v1alpha.json b/internal/generated/snippets/bigquery/storage/apiv1alpha/snippet_metadata.google.cloud.bigquery.storage.v1alpha.json index 59131a4cf857..a2a8ab732cd9 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1alpha/snippet_metadata.google.cloud.bigquery.storage.v1alpha.json +++ b/internal/generated/snippets/bigquery/storage/apiv1alpha/snippet_metadata.google.cloud.bigquery.storage.v1alpha.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1alpha", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json b/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json index 6cb16bf7eb26..8106153ca305 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json +++ b/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1beta1", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json b/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json index 5f1ee5950163..14d686e3a939 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json +++ b/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1beta2", - "version": "1.66.1", + "version": "1.66.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/compute/apiv1/snippet_metadata.google.cloud.compute.v1.json b/internal/generated/snippets/compute/apiv1/snippet_metadata.google.cloud.compute.v1.json index ea9fbfa3adce..4e19e4ef83e1 100644 --- a/internal/generated/snippets/compute/apiv1/snippet_metadata.google.cloud.compute.v1.json +++ b/internal/generated/snippets/compute/apiv1/snippet_metadata.google.cloud.compute.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/compute/apiv1", - "version": "1.32.0", + "version": "1.33.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/monitoring/apiv3/v2/snippet_metadata.google.monitoring.v3.json b/internal/generated/snippets/monitoring/apiv3/v2/snippet_metadata.google.monitoring.v3.json index d97725d92fc8..fd851992ce0a 100644 --- a/internal/generated/snippets/monitoring/apiv3/v2/snippet_metadata.google.monitoring.v3.json +++ b/internal/generated/snippets/monitoring/apiv3/v2/snippet_metadata.google.monitoring.v3.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/monitoring/apiv3/v2", - "version": "1.23.0", + "version": "1.24.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/monitoring/dashboard/apiv1/snippet_metadata.google.monitoring.dashboard.v1.json b/internal/generated/snippets/monitoring/dashboard/apiv1/snippet_metadata.google.monitoring.dashboard.v1.json index 2858bf5604b6..d9f047e3532a 100644 --- a/internal/generated/snippets/monitoring/dashboard/apiv1/snippet_metadata.google.monitoring.dashboard.v1.json +++ b/internal/generated/snippets/monitoring/dashboard/apiv1/snippet_metadata.google.monitoring.dashboard.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/monitoring/dashboard/apiv1", - "version": "1.23.0", + "version": "1.24.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/monitoring/metricsscope/apiv1/snippet_metadata.google.monitoring.metricsscope.v1.json b/internal/generated/snippets/monitoring/metricsscope/apiv1/snippet_metadata.google.monitoring.metricsscope.v1.json index 87792c60be28..e7956b43528e 100644 --- a/internal/generated/snippets/monitoring/metricsscope/apiv1/snippet_metadata.google.monitoring.metricsscope.v1.json +++ b/internal/generated/snippets/monitoring/metricsscope/apiv1/snippet_metadata.google.monitoring.metricsscope.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/monitoring/metricsscope/apiv1", - "version": "1.23.0", + "version": "1.24.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json b/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json index 2062a7b79c4e..d625fbddc213 100644 --- a/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json +++ b/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/netapp/apiv1", - "version": "1.6.0", + "version": "1.7.0", "language": "GO", "apis": [ {