diff --git a/googleapis/cloud/retail/v2/catalog.pb.go b/googleapis/cloud/retail/v2/catalog.pb.go
new file mode 100644
index 000000000..1392efd91
--- /dev/null
+++ b/googleapis/cloud/retail/v2/catalog.pb.go
@@ -0,0 +1,336 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/catalog.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Configures what level the product should be uploaded with regards to
+// how users will be send events and how predictions will be made.
+type ProductLevelConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The level of a [Catalog][google.cloud.retail.v2.Catalog] at which the
+ // [UserEvent][google.cloud.retail.v2.UserEvent]s are uploaded. Acceptable
+ // values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `primary` and
+ // [predict_product_level][google.cloud.retail.v2.ProductLevelConfig.predict_product_level]
+ // is `variant`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ EventProductLevel string `protobuf:"bytes,1,opt,name=event_product_level,json=eventProductLevel,proto3" json:"event_product_level,omitempty"`
+ // The level of a [Catalog][google.cloud.retail.v2.Catalog] at which the
+ // [PredictionService.Predict][google.cloud.retail.v2.PredictionService.Predict]
+ // is called. Acceptable values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `variant` and
+ // [event_product_level][google.cloud.retail.v2.ProductLevelConfig.event_product_level]
+ // is `primary`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ PredictProductLevel string `protobuf:"bytes,2,opt,name=predict_product_level,json=predictProductLevel,proto3" json:"predict_product_level,omitempty"`
+}
+
+func (x *ProductLevelConfig) Reset() {
+ *x = ProductLevelConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_catalog_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductLevelConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductLevelConfig) ProtoMessage() {}
+
+func (x *ProductLevelConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_catalog_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductLevelConfig.ProtoReflect.Descriptor instead.
+func (*ProductLevelConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_catalog_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ProductLevelConfig) GetEventProductLevel() string {
+ if x != nil {
+ return x.EventProductLevel
+ }
+ return ""
+}
+
+func (x *ProductLevelConfig) GetPredictProductLevel() string {
+ if x != nil {
+ return x.PredictProductLevel
+ }
+ return ""
+}
+
+// The catalog configuration.
+// Next ID: 5.
+type Catalog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Immutable. The fully qualified resource name of the catalog.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Required. Immutable. The catalog display name.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
+ // Required. The product level configuration.
+ ProductLevelConfig *ProductLevelConfig `protobuf:"bytes,4,opt,name=product_level_config,json=productLevelConfig,proto3" json:"product_level_config,omitempty"`
+}
+
+func (x *Catalog) Reset() {
+ *x = Catalog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_catalog_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Catalog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Catalog) ProtoMessage() {}
+
+func (x *Catalog) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_catalog_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Catalog.ProtoReflect.Descriptor instead.
+func (*Catalog) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_catalog_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Catalog) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Catalog) GetDisplayName() string {
+ if x != nil {
+ return x.DisplayName
+ }
+ return ""
+}
+
+func (x *Catalog) GetProductLevelConfig() *ProductLevelConfig {
+ if x != nil {
+ return x.ProductLevelConfig
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2_catalog_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_catalog_proto_rawDesc = []byte{
+ 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 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, 0x78, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e,
+ 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f,
+ 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32,
+ 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70,
+ 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76,
+ 0x65, 0x6c, 0x22, 0x93, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x1a,
+ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41,
+ 0x02, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x64, 0x69,
+ 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
+ 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42,
+ 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76,
+ 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1d, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3a, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x42, 0x8d, 0x02, 0x0a, 0x1a, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
+ 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
+ 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0xea, 0x41, 0x49, 0x0a,
+ 0x1e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x27, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_catalog_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_catalog_proto_rawDescData = file_google_cloud_retail_v2_catalog_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_catalog_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_catalog_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_catalog_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_catalog_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_catalog_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2_catalog_proto_goTypes = []interface{}{
+ (*ProductLevelConfig)(nil), // 0: google.cloud.retail.v2.ProductLevelConfig
+ (*Catalog)(nil), // 1: google.cloud.retail.v2.Catalog
+}
+var file_google_cloud_retail_v2_catalog_proto_depIdxs = []int32{
+ 0, // 0: google.cloud.retail.v2.Catalog.product_level_config:type_name -> google.cloud.retail.v2.ProductLevelConfig
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_catalog_proto_init() }
+func file_google_cloud_retail_v2_catalog_proto_init() {
+ if File_google_cloud_retail_v2_catalog_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_catalog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductLevelConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_catalog_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Catalog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_catalog_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_catalog_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_catalog_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_catalog_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_catalog_proto = out.File
+ file_google_cloud_retail_v2_catalog_proto_rawDesc = nil
+ file_google_cloud_retail_v2_catalog_proto_goTypes = nil
+ file_google_cloud_retail_v2_catalog_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/catalog_service.pb.go b/googleapis/cloud/retail/v2/catalog_service.pb.go
new file mode 100644
index 000000000..576b67c76
--- /dev/null
+++ b/googleapis/cloud/retail/v2/catalog_service.pb.go
@@ -0,0 +1,582 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/catalog_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The account resource name with an associated location.
+ //
+ // If the caller does not have permission to list
+ // [Catalog][google.cloud.retail.v2.Catalog]s under this location, regardless
+ // of whether or not this location exists, a PERMISSION_DENIED error is
+ // returned.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of [Catalog][google.cloud.retail.v2.Catalog]s to return. If
+ // unspecified, defaults to 50. The maximum allowed value is 1000. Values
+ // above 1000 will be coerced to 1000.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // A page token
+ // [ListCatalogsResponse.next_page_token][google.cloud.retail.v2.ListCatalogsResponse.next_page_token],
+ // received from a previous
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2.CatalogService.ListCatalogs]
+ // call. Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2.CatalogService.ListCatalogs]
+ // must match the call that provided the page token. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+}
+
+func (x *ListCatalogsRequest) Reset() {
+ *x = ListCatalogsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsRequest) ProtoMessage() {}
+
+func (x *ListCatalogsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsRequest.ProtoReflect.Descriptor instead.
+func (*ListCatalogsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_catalog_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ListCatalogsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListCatalogsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListCatalogsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+// Response for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // All the customer's [Catalog][google.cloud.retail.v2.Catalog]s.
+ Catalogs []*Catalog `protobuf:"bytes,1,rep,name=catalogs,proto3" json:"catalogs,omitempty"`
+ // A token that can be sent as
+ // [ListCatalogsRequest.page_token][google.cloud.retail.v2.ListCatalogsRequest.page_token]
+ // to retrieve the next page. If this field is omitted, there are no
+ // subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+}
+
+func (x *ListCatalogsResponse) Reset() {
+ *x = ListCatalogsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsResponse) ProtoMessage() {}
+
+func (x *ListCatalogsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsResponse.ProtoReflect.Descriptor instead.
+func (*ListCatalogsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_catalog_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListCatalogsResponse) GetCatalogs() []*Catalog {
+ if x != nil {
+ return x.Catalogs
+ }
+ return nil
+}
+
+func (x *ListCatalogsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+// Request for
+// [CatalogService.UpdateCatalog][google.cloud.retail.v2.CatalogService.UpdateCatalog]
+// method.
+type UpdateCatalogRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The [Catalog][google.cloud.retail.v2.Catalog] to update.
+ //
+ // If the caller does not have permission to update the
+ // [Catalog][google.cloud.retail.v2.Catalog], regardless of whether or not it
+ // exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Catalog][google.cloud.retail.v2.Catalog] to update does not exist,
+ // a NOT_FOUND error is returned.
+ Catalog *Catalog `protobuf:"bytes,1,opt,name=catalog,proto3" json:"catalog,omitempty"`
+ // Indicates which fields in the provided
+ // [Catalog][google.cloud.retail.v2.Catalog] to update. If not set, will only
+ // update the
+ // [Catalog.product_level_config][google.cloud.retail.v2.Catalog.product_level_config]
+ // field, which is also the only currently supported field to update.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateCatalogRequest) Reset() {
+ *x = UpdateCatalogRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateCatalogRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateCatalogRequest) ProtoMessage() {}
+
+func (x *UpdateCatalogRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_catalog_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateCatalogRequest.ProtoReflect.Descriptor instead.
+func (*UpdateCatalogRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_catalog_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateCatalogRequest) GetCatalog() *Catalog {
+ if x != nil {
+ return x.Catalog
+ }
+ return nil
+}
+
+func (x *UpdateCatalogRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2_catalog_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_catalog_service_proto_rawDesc = []byte{
+ 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76,
+ 0x32, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41,
+ 0x20, 0x0a, 0x1e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61,
+ 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
+ 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7b, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a,
+ 0x08, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
+ 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x42, 0x03, 0xe0,
+ 0x41, 0x02, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x75,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x32, 0xc4, 0x03, 0x0a, 0x0e, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x0c,
+ 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x2b, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12,
+ 0x2c, 0x2f, 0x76, 0x32, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0xda, 0x41, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbb, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
+ 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x32,
+ 0x34, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0xda, 0x41,
+ 0x13, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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,
+ 0xc8, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x13,
+ 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f,
+ 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02,
+ 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_catalog_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_catalog_service_proto_rawDescData = file_google_cloud_retail_v2_catalog_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_catalog_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_catalog_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_catalog_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_catalog_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_catalog_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_catalog_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_google_cloud_retail_v2_catalog_service_proto_goTypes = []interface{}{
+ (*ListCatalogsRequest)(nil), // 0: google.cloud.retail.v2.ListCatalogsRequest
+ (*ListCatalogsResponse)(nil), // 1: google.cloud.retail.v2.ListCatalogsResponse
+ (*UpdateCatalogRequest)(nil), // 2: google.cloud.retail.v2.UpdateCatalogRequest
+ (*Catalog)(nil), // 3: google.cloud.retail.v2.Catalog
+ (*fieldmaskpb.FieldMask)(nil), // 4: google.protobuf.FieldMask
+}
+var file_google_cloud_retail_v2_catalog_service_proto_depIdxs = []int32{
+ 3, // 0: google.cloud.retail.v2.ListCatalogsResponse.catalogs:type_name -> google.cloud.retail.v2.Catalog
+ 3, // 1: google.cloud.retail.v2.UpdateCatalogRequest.catalog:type_name -> google.cloud.retail.v2.Catalog
+ 4, // 2: google.cloud.retail.v2.UpdateCatalogRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 3: google.cloud.retail.v2.CatalogService.ListCatalogs:input_type -> google.cloud.retail.v2.ListCatalogsRequest
+ 2, // 4: google.cloud.retail.v2.CatalogService.UpdateCatalog:input_type -> google.cloud.retail.v2.UpdateCatalogRequest
+ 1, // 5: google.cloud.retail.v2.CatalogService.ListCatalogs:output_type -> google.cloud.retail.v2.ListCatalogsResponse
+ 3, // 6: google.cloud.retail.v2.CatalogService.UpdateCatalog:output_type -> google.cloud.retail.v2.Catalog
+ 5, // [5:7] is the sub-list for method output_type
+ 3, // [3:5] 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_retail_v2_catalog_service_proto_init() }
+func file_google_cloud_retail_v2_catalog_service_proto_init() {
+ if File_google_cloud_retail_v2_catalog_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_catalog_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_catalog_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_catalog_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_catalog_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateCatalogRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_catalog_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2_catalog_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_catalog_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_catalog_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_catalog_service_proto = out.File
+ file_google_cloud_retail_v2_catalog_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2_catalog_service_proto_goTypes = nil
+ file_google_cloud_retail_v2_catalog_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// CatalogServiceClient is the client API for CatalogService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type CatalogServiceClient interface {
+ // Lists all the [Catalog][google.cloud.retail.v2.Catalog]s associated with
+ // the project.
+ ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2.Catalog]s.
+ UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
+}
+
+type catalogServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewCatalogServiceClient(cc grpc.ClientConnInterface) CatalogServiceClient {
+ return &catalogServiceClient{cc}
+}
+
+func (c *catalogServiceClient) ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error) {
+ out := new(ListCatalogsResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.CatalogService/ListCatalogs", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *catalogServiceClient) UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
+ out := new(Catalog)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.CatalogService/UpdateCatalog", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// CatalogServiceServer is the server API for CatalogService service.
+type CatalogServiceServer interface {
+ // Lists all the [Catalog][google.cloud.retail.v2.Catalog]s associated with
+ // the project.
+ ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2.Catalog]s.
+ UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error)
+}
+
+// UnimplementedCatalogServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedCatalogServiceServer struct {
+}
+
+func (*UnimplementedCatalogServiceServer) ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListCatalogs not implemented")
+}
+func (*UnimplementedCatalogServiceServer) UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateCatalog not implemented")
+}
+
+func RegisterCatalogServiceServer(s *grpc.Server, srv CatalogServiceServer) {
+ s.RegisterService(&_CatalogService_serviceDesc, srv)
+}
+
+func _CatalogService_ListCatalogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListCatalogsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.CatalogService/ListCatalogs",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, req.(*ListCatalogsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _CatalogService_UpdateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateCatalogRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.CatalogService/UpdateCatalog",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, req.(*UpdateCatalogRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _CatalogService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2.CatalogService",
+ HandlerType: (*CatalogServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListCatalogs",
+ Handler: _CatalogService_ListCatalogs_Handler,
+ },
+ {
+ MethodName: "UpdateCatalog",
+ Handler: _CatalogService_UpdateCatalog_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2/catalog_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2/common.pb.go b/googleapis/cloud/retail/v2/common.pb.go
new file mode 100644
index 000000000..c8190d12d
--- /dev/null
+++ b/googleapis/cloud/retail/v2/common.pb.go
@@ -0,0 +1,558 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/common.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// A custom attribute that is not explicitly modeled in
+// [Product][google.cloud.retail.v2.Product]].
+type CustomAttribute struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The textual values of this custom attribute. For example, `["yellow",
+ // "green"]` when the key is "color".
+ //
+ // At most 400 values are allowed. Empty values are not allowed. Each value
+ // must be a UTF-8 encoded string with a length limit of 256 bytes. Otherwise,
+ // an INVALID_ARGUMENT error is returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
+ // Otherwise, a FAILED_PRECONDITION error is returned.
+ Text []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
+ // The numerical values of this custom attribute. For example, `[2.3, 15.4]`
+ // when the key is "lengths_cm".
+ //
+ // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
+ // Otherwise, a FAILED_PRECONDITION error is returned.
+ Numbers []float64 `protobuf:"fixed64,2,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
+}
+
+func (x *CustomAttribute) Reset() {
+ *x = CustomAttribute{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CustomAttribute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CustomAttribute) ProtoMessage() {}
+
+func (x *CustomAttribute) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CustomAttribute.ProtoReflect.Descriptor instead.
+func (*CustomAttribute) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CustomAttribute) GetText() []string {
+ if x != nil {
+ return x.Text
+ }
+ return nil
+}
+
+func (x *CustomAttribute) GetNumbers() []float64 {
+ if x != nil {
+ return x.Numbers
+ }
+ return nil
+}
+
+// [Product][google.cloud.retail.v2.Product] thumbnail/detail image.
+type Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. URI of the image.
+ //
+ // This field must be a valid UTF-8 encoded URI with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](http://schema.org/image).
+ Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Height of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
+ // Width of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
+}
+
+func (x *Image) Reset() {
+ *x = Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Image) ProtoMessage() {}
+
+func (x *Image) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Image.ProtoReflect.Descriptor instead.
+func (*Image) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Image) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Image) GetHeight() int32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *Image) GetWidth() int32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+// The price information of a [Product][google.cloud.retail.v2.Product].
+type PriceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The 3-letter currency code defined in [ISO
+ // 4217][https://www.iso.org/iso-4217-currency-codes.html].
+ //
+ // If this field is an unrecognizable currency code, an INVALID_ARGUMENT
+ // error is returned.
+ CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+ // Price of the product.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ // Schema.org property
+ // [Offer.priceSpecification](https://schema.org/priceSpecification).
+ Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"`
+ // Price of the product without any discount. If zero, by default set to be
+ // the [price][google.cloud.retail.v2.PriceInfo.price].
+ OriginalPrice float32 `protobuf:"fixed32,3,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
+ // The costs associated with the sale of a particular product. Used for gross
+ // profit reporting.
+ //
+ // * Profit = [price][google.cloud.retail.v2.PriceInfo.price] -
+ // [cost][google.cloud.retail.v2.PriceInfo.cost]
+ //
+ // Google Merchant Center property
+ // [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895)
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+}
+
+func (x *PriceInfo) Reset() {
+ *x = PriceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PriceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PriceInfo) ProtoMessage() {}
+
+func (x *PriceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PriceInfo.ProtoReflect.Descriptor instead.
+func (*PriceInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PriceInfo) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+func (x *PriceInfo) GetPrice() float32 {
+ if x != nil {
+ return x.Price
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetOriginalPrice() float32 {
+ if x != nil {
+ return x.OriginalPrice
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+// Information of an end user.
+type UserInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Highly recommended for logged-in users. Unique identifier for logged-in
+ // user, such as a user name.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ // The end user's IP address. This field is used to extract location
+ // information for personalization.
+ //
+ // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
+ // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
+ // User agent as included in the HTTP header.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 1 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the client side event reporting with
+ // GTM or JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
+ // True if the request is made directly from the end user, in which case the
+ // [ip_address][google.cloud.retail.v2.UserInfo.ip_address] and
+ // [user_agent][google.cloud.retail.v2.UserInfo.user_agent] can be populated
+ // from the HTTP request. This flag should be set only if the API request is
+ // made directly from the end user such as a mobile app (and not if a gateway
+ // or a server is processing and pushing the user events).
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent].
+ // Otherwise, a FAILED_PRECONDITION error is returned.
+ DirectUserRequest bool `protobuf:"varint,4,opt,name=direct_user_request,json=directUserRequest,proto3" json:"direct_user_request,omitempty"`
+}
+
+func (x *UserInfo) Reset() {
+ *x = UserInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserInfo) ProtoMessage() {}
+
+func (x *UserInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_common_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
+func (*UserInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UserInfo) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *UserInfo) GetIpAddress() string {
+ if x != nil {
+ return x.IpAddress
+ }
+ return ""
+}
+
+func (x *UserInfo) GetUserAgent() string {
+ if x != nil {
+ return x.UserAgent
+ }
+ return ""
+}
+
+func (x *UserInfo) GetDirectUserRequest() bool {
+ if x != nil {
+ return x.DirectUserRequest
+ }
+ return false
+}
+
+var File_google_cloud_retail_v2_common_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_common_proto_rawDesc = []byte{
+ 0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 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, 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, 0x3f, 0x0a,
+ 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x01, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x4c,
+ 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x16,
+ 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
+ 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x81, 0x01, 0x0a,
+ 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
+ 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f,
+ 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74,
+ 0x22, 0x91, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a,
+ 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64,
+ 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64,
+ 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67,
+ 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41,
+ 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x42, 0xc0, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_common_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_common_proto_rawDescData = file_google_cloud_retail_v2_common_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_common_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_common_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_common_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_common_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2_common_proto_goTypes = []interface{}{
+ (*CustomAttribute)(nil), // 0: google.cloud.retail.v2.CustomAttribute
+ (*Image)(nil), // 1: google.cloud.retail.v2.Image
+ (*PriceInfo)(nil), // 2: google.cloud.retail.v2.PriceInfo
+ (*UserInfo)(nil), // 3: google.cloud.retail.v2.UserInfo
+}
+var file_google_cloud_retail_v2_common_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_common_proto_init() }
+func file_google_cloud_retail_v2_common_proto_init() {
+ if File_google_cloud_retail_v2_common_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CustomAttribute); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PriceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_common_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_common_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_common_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_common_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_common_proto = out.File
+ file_google_cloud_retail_v2_common_proto_rawDesc = nil
+ file_google_cloud_retail_v2_common_proto_goTypes = nil
+ file_google_cloud_retail_v2_common_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/import_config.pb.go b/googleapis/cloud/retail/v2/import_config.pb.go
new file mode 100644
index 000000000..3b414da87
--- /dev/null
+++ b/googleapis/cloud/retail/v2/import_config.pb.go
@@ -0,0 +1,1483 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/import_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Google Cloud Storage location for input content.
+// format.
+type GcsSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Google Cloud Storage URIs to input files. URI can be up to
+ // 2000 characters long. URIs can match the full object path (for example,
+ // gs://bucket/directory/object.json) or a pattern matching one or more
+ // files, such as gs://bucket/directory/*.json. A request can
+ // contain at most 100 files, and each file can be up to 2 GB. See
+ // [Importing product information](/recommendations-ai/docs/upload-catalog)
+ // for the expected file format and setup instructions.
+ InputUris []string `protobuf:"bytes,1,rep,name=input_uris,json=inputUris,proto3" json:"input_uris,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for product imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user events imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,2,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *GcsSource) Reset() {
+ *x = GcsSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GcsSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GcsSource) ProtoMessage() {}
+
+func (x *GcsSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GcsSource.ProtoReflect.Descriptor instead.
+func (*GcsSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GcsSource) GetInputUris() []string {
+ if x != nil {
+ return x.InputUris
+ }
+ return nil
+}
+
+func (x *GcsSource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// BigQuery source import data from.
+type BigQuerySource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The project id (can be project # or id) that the BigQuery source is in. If
+ // not specified, inherits the project id from the parent request.
+ ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ // Required. The BigQuery data set to copy the data from.
+ DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
+ // Required. The BigQuery table to copy the data from.
+ TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+ // Intermediate Cloud Storage directory used for the import. Can be specified
+ // if one wants to have the BigQuery export to a specific Cloud Storage
+ // directory.
+ GcsStagingDir string `protobuf:"bytes,3,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for catalog imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user event imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,4,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *BigQuerySource) Reset() {
+ *x = BigQuerySource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BigQuerySource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BigQuerySource) ProtoMessage() {}
+
+func (x *BigQuerySource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BigQuerySource.ProtoReflect.Descriptor instead.
+func (*BigQuerySource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *BigQuerySource) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDatasetId() string {
+ if x != nil {
+ return x.DatasetId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetTableId() string {
+ if x != nil {
+ return x.TableId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetGcsStagingDir() string {
+ if x != nil {
+ return x.GcsStagingDir
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// The inline source for the input config for ImportProducts method.
+type ProductInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of products to update/create. Recommended max of 10k items.
+ Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
+}
+
+func (x *ProductInlineSource) Reset() {
+ *x = ProductInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInlineSource) ProtoMessage() {}
+
+func (x *ProductInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInlineSource.ProtoReflect.Descriptor instead.
+func (*ProductInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ProductInlineSource) GetProducts() []*Product {
+ if x != nil {
+ return x.Products
+ }
+ return nil
+}
+
+// The inline source for the input config for ImportUserEvents method.
+type UserEventInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of user events to import. Recommended max of 10k items.
+ UserEvents []*UserEvent `protobuf:"bytes,1,rep,name=user_events,json=userEvents,proto3" json:"user_events,omitempty"`
+}
+
+func (x *UserEventInlineSource) Reset() {
+ *x = UserEventInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInlineSource) ProtoMessage() {}
+
+func (x *UserEventInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInlineSource.ProtoReflect.Descriptor instead.
+func (*UserEventInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UserEventInlineSource) GetUserEvents() []*UserEvent {
+ if x != nil {
+ return x.UserEvents
+ }
+ return nil
+}
+
+// Configuration of destination for Import related errors.
+type ImportErrorsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Errors destination.
+ //
+ // Types that are assignable to Destination:
+ // *ImportErrorsConfig_GcsPrefix
+ Destination isImportErrorsConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *ImportErrorsConfig) Reset() {
+ *x = ImportErrorsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportErrorsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportErrorsConfig) ProtoMessage() {}
+
+func (x *ImportErrorsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportErrorsConfig.ProtoReflect.Descriptor instead.
+func (*ImportErrorsConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (m *ImportErrorsConfig) GetDestination() isImportErrorsConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *ImportErrorsConfig) GetGcsPrefix() string {
+ if x, ok := x.GetDestination().(*ImportErrorsConfig_GcsPrefix); ok {
+ return x.GcsPrefix
+ }
+ return ""
+}
+
+type isImportErrorsConfig_Destination interface {
+ isImportErrorsConfig_Destination()
+}
+
+type ImportErrorsConfig_GcsPrefix struct {
+ // Google Cloud Storage path for import errors. This must be an empty,
+ // existing Cloud Storage bucket. Import errors will be written to a file in
+ // this bucket, one per line, as a JSON-encoded
+ // `google.rpc.Status` message.
+ GcsPrefix string `protobuf:"bytes,1,opt,name=gcs_prefix,json=gcsPrefix,proto3,oneof"`
+}
+
+func (*ImportErrorsConfig_GcsPrefix) isImportErrorsConfig_Destination() {}
+
+// Request message for Import methods.
+type ImportProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required.
+ // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch"
+ //
+ // If no updateMask is specified, requires products.create permission.
+ // If updateMask is specified, requires products.update permission.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *ProductInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Indicates which fields in the provided imported 'products' to update. If
+ // not set, will by default update all fields.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *ImportProductsRequest) Reset() {
+ *x = ImportProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsRequest) ProtoMessage() {}
+
+func (x *ImportProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsRequest.ProtoReflect.Descriptor instead.
+func (*ImportProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ImportProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportProductsRequest) GetInputConfig() *ProductInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for the ImportUserEvents request.
+type ImportUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. "projects/1234/locations/global/catalogs/default_catalog"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *UserEventInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportUserEventsRequest) Reset() {
+ *x = ImportUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsRequest) ProtoMessage() {}
+
+func (x *ImportUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ImportUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportUserEventsRequest) GetInputConfig() *UserEventInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// The input config source for products.
+type ProductInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *ProductInputConfig_ProductInlineSource
+ // *ProductInputConfig_GcsSource
+ // *ProductInputConfig_BigQuerySource
+ Source isProductInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *ProductInputConfig) Reset() {
+ *x = ProductInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInputConfig) ProtoMessage() {}
+
+func (x *ProductInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInputConfig.ProtoReflect.Descriptor instead.
+func (*ProductInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{7}
+}
+
+func (m *ProductInputConfig) GetSource() isProductInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetProductInlineSource() *ProductInlineSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_ProductInlineSource); ok {
+ return x.ProductInlineSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*ProductInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isProductInputConfig_Source interface {
+ isProductInputConfig_Source()
+}
+
+type ProductInputConfig_ProductInlineSource struct {
+ // The Inline source for the input content for products.
+ ProductInlineSource *ProductInlineSource `protobuf:"bytes,1,opt,name=product_inline_source,json=productInlineSource,proto3,oneof"`
+}
+
+type ProductInputConfig_GcsSource struct {
+ // Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type ProductInputConfig_BigQuerySource struct {
+ // BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*ProductInputConfig_ProductInlineSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_GcsSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_BigQuerySource) isProductInputConfig_Source() {}
+
+// The input config source for user events.
+type UserEventInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *UserEventInputConfig_UserEventInlineSource
+ // *UserEventInputConfig_GcsSource
+ // *UserEventInputConfig_BigQuerySource
+ Source isUserEventInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *UserEventInputConfig) Reset() {
+ *x = UserEventInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInputConfig) ProtoMessage() {}
+
+func (x *UserEventInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInputConfig.ProtoReflect.Descriptor instead.
+func (*UserEventInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{8}
+}
+
+func (m *UserEventInputConfig) GetSource() isUserEventInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetUserEventInlineSource() *UserEventInlineSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_UserEventInlineSource); ok {
+ return x.UserEventInlineSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isUserEventInputConfig_Source interface {
+ isUserEventInputConfig_Source()
+}
+
+type UserEventInputConfig_UserEventInlineSource struct {
+ // Required. The Inline source for the input content for UserEvents.
+ UserEventInlineSource *UserEventInlineSource `protobuf:"bytes,1,opt,name=user_event_inline_source,json=userEventInlineSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_GcsSource struct {
+ // Required. Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_BigQuerySource struct {
+ // Required. BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*UserEventInputConfig_UserEventInlineSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_GcsSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_BigQuerySource) isUserEventInputConfig_Source() {}
+
+// Metadata related to the progress of the Import operation. This will be
+// returned by the google.longrunning.Operation.metadata field.
+type ImportMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name of the operation.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Operation last update time. If the operation is done, this is also the
+ // finish time.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+ // Count of entries that were processed successfully.
+ SuccessCount int64 `protobuf:"varint,4,opt,name=success_count,json=successCount,proto3" json:"success_count,omitempty"`
+ // Count of entries that encountered errors while processing.
+ FailureCount int64 `protobuf:"varint,5,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"`
+}
+
+func (x *ImportMetadata) Reset() {
+ *x = ImportMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportMetadata) ProtoMessage() {}
+
+func (x *ImportMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportMetadata.ProtoReflect.Descriptor instead.
+func (*ImportMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ImportMetadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ImportMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetSuccessCount() int64 {
+ if x != nil {
+ return x.SuccessCount
+ }
+ return 0
+}
+
+func (x *ImportMetadata) GetFailureCount() int64 {
+ if x != nil {
+ return x.FailureCount
+ }
+ return 0
+}
+
+// Response of the
+// [ImportProductsRequest][google.cloud.retail.v2.ImportProductsRequest]. If the
+// long running operation is done, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors in the request if set.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportProductsResponse) Reset() {
+ *x = ImportProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsResponse) ProtoMessage() {}
+
+func (x *ImportProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsResponse.ProtoReflect.Descriptor instead.
+func (*ImportProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *ImportProductsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportProductsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// Response of the ImportUserEventsRequest. If the long running
+// operation was successful, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors if this field was set in
+ // the request.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Aggregated statistics of user event import status.
+ ImportSummary *UserEventImportSummary `protobuf:"bytes,3,opt,name=import_summary,json=importSummary,proto3" json:"import_summary,omitempty"`
+}
+
+func (x *ImportUserEventsResponse) Reset() {
+ *x = ImportUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsResponse) ProtoMessage() {}
+
+func (x *ImportUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *ImportUserEventsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetImportSummary() *UserEventImportSummary {
+ if x != nil {
+ return x.ImportSummary
+ }
+ return nil
+}
+
+// A summary of import result. The UserEventImportSummary summarizes
+// the import status for user events.
+type UserEventImportSummary struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Count of user events imported with complete existing catalog information.
+ JoinedEventsCount int64 `protobuf:"varint,1,opt,name=joined_events_count,json=joinedEventsCount,proto3" json:"joined_events_count,omitempty"`
+ // Count of user events imported, but with catalog information not found
+ // in the imported catalog.
+ UnjoinedEventsCount int64 `protobuf:"varint,2,opt,name=unjoined_events_count,json=unjoinedEventsCount,proto3" json:"unjoined_events_count,omitempty"`
+}
+
+func (x *UserEventImportSummary) Reset() {
+ *x = UserEventImportSummary{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventImportSummary) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventImportSummary) ProtoMessage() {}
+
+func (x *UserEventImportSummary) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_import_config_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventImportSummary.ProtoReflect.Descriptor instead.
+func (*UserEventImportSummary) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_import_config_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UserEventImportSummary) GetJoinedEventsCount() int64 {
+ if x != nil {
+ return x.JoinedEventsCount
+ }
+ return 0
+}
+
+func (x *UserEventImportSummary) GetUnjoinedEventsCount() int64 {
+ if x != nil {
+ return x.UnjoinedEventsCount
+ }
+ return 0
+}
+
+var File_google_cloud_retail_v2_import_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_import_config_proto_rawDesc = []byte{
+ 0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 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, 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, 0x24,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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,
+ 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x09, 0x47, 0x63, 0x73,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
+ 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61,
+ 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0xbc, 0x01, 0x0a, 0x0e,
+ 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a,
+ 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49,
+ 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49,
+ 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67,
+ 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x53,
+ 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74,
+ 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x52, 0x0a, 0x13, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x22, 0x5b,
+ 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e,
+ 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
+ 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66,
+ 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x22, 0x96, 0x02, 0x0a, 0x15, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75,
+ 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49,
+ 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x0d,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a,
+ 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a,
+ 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75,
+ 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e,
+ 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x99, 0x02, 0x0a, 0x12, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x61, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x6c,
+ 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52,
+ 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67,
+ 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69,
+ 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x6d, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e,
+ 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x47,
+ 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x73, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63,
+ 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00,
+ 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b,
+ 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x52,
+ 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73,
+ 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
+ 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3c, 0xea, 0x41, 0x39, 0x0a, 0x1f, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x6f, 0x70, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x7d, 0x22, 0xa2, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37,
+ 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
+ 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72,
+ 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xfb, 0x01, 0x0a, 0x18, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x4f,
+ 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x55, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72,
+ 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+ 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53,
+ 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x7c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
+ 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6a,
+ 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x13, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43,
+ 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xc6, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x42, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa,
+ 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56,
+ 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_import_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_import_config_proto_rawDescData = file_google_cloud_retail_v2_import_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_import_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_import_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_import_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_import_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_import_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_import_config_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_google_cloud_retail_v2_import_config_proto_goTypes = []interface{}{
+ (*GcsSource)(nil), // 0: google.cloud.retail.v2.GcsSource
+ (*BigQuerySource)(nil), // 1: google.cloud.retail.v2.BigQuerySource
+ (*ProductInlineSource)(nil), // 2: google.cloud.retail.v2.ProductInlineSource
+ (*UserEventInlineSource)(nil), // 3: google.cloud.retail.v2.UserEventInlineSource
+ (*ImportErrorsConfig)(nil), // 4: google.cloud.retail.v2.ImportErrorsConfig
+ (*ImportProductsRequest)(nil), // 5: google.cloud.retail.v2.ImportProductsRequest
+ (*ImportUserEventsRequest)(nil), // 6: google.cloud.retail.v2.ImportUserEventsRequest
+ (*ProductInputConfig)(nil), // 7: google.cloud.retail.v2.ProductInputConfig
+ (*UserEventInputConfig)(nil), // 8: google.cloud.retail.v2.UserEventInputConfig
+ (*ImportMetadata)(nil), // 9: google.cloud.retail.v2.ImportMetadata
+ (*ImportProductsResponse)(nil), // 10: google.cloud.retail.v2.ImportProductsResponse
+ (*ImportUserEventsResponse)(nil), // 11: google.cloud.retail.v2.ImportUserEventsResponse
+ (*UserEventImportSummary)(nil), // 12: google.cloud.retail.v2.UserEventImportSummary
+ (*Product)(nil), // 13: google.cloud.retail.v2.Product
+ (*UserEvent)(nil), // 14: google.cloud.retail.v2.UserEvent
+ (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask
+ (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
+ (*status.Status)(nil), // 17: google.rpc.Status
+}
+var file_google_cloud_retail_v2_import_config_proto_depIdxs = []int32{
+ 13, // 0: google.cloud.retail.v2.ProductInlineSource.products:type_name -> google.cloud.retail.v2.Product
+ 14, // 1: google.cloud.retail.v2.UserEventInlineSource.user_events:type_name -> google.cloud.retail.v2.UserEvent
+ 7, // 2: google.cloud.retail.v2.ImportProductsRequest.input_config:type_name -> google.cloud.retail.v2.ProductInputConfig
+ 4, // 3: google.cloud.retail.v2.ImportProductsRequest.errors_config:type_name -> google.cloud.retail.v2.ImportErrorsConfig
+ 15, // 4: google.cloud.retail.v2.ImportProductsRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 8, // 5: google.cloud.retail.v2.ImportUserEventsRequest.input_config:type_name -> google.cloud.retail.v2.UserEventInputConfig
+ 4, // 6: google.cloud.retail.v2.ImportUserEventsRequest.errors_config:type_name -> google.cloud.retail.v2.ImportErrorsConfig
+ 2, // 7: google.cloud.retail.v2.ProductInputConfig.product_inline_source:type_name -> google.cloud.retail.v2.ProductInlineSource
+ 0, // 8: google.cloud.retail.v2.ProductInputConfig.gcs_source:type_name -> google.cloud.retail.v2.GcsSource
+ 1, // 9: google.cloud.retail.v2.ProductInputConfig.big_query_source:type_name -> google.cloud.retail.v2.BigQuerySource
+ 3, // 10: google.cloud.retail.v2.UserEventInputConfig.user_event_inline_source:type_name -> google.cloud.retail.v2.UserEventInlineSource
+ 0, // 11: google.cloud.retail.v2.UserEventInputConfig.gcs_source:type_name -> google.cloud.retail.v2.GcsSource
+ 1, // 12: google.cloud.retail.v2.UserEventInputConfig.big_query_source:type_name -> google.cloud.retail.v2.BigQuerySource
+ 16, // 13: google.cloud.retail.v2.ImportMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 16, // 14: google.cloud.retail.v2.ImportMetadata.update_time:type_name -> google.protobuf.Timestamp
+ 17, // 15: google.cloud.retail.v2.ImportProductsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 16: google.cloud.retail.v2.ImportProductsResponse.errors_config:type_name -> google.cloud.retail.v2.ImportErrorsConfig
+ 17, // 17: google.cloud.retail.v2.ImportUserEventsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 18: google.cloud.retail.v2.ImportUserEventsResponse.errors_config:type_name -> google.cloud.retail.v2.ImportErrorsConfig
+ 12, // 19: google.cloud.retail.v2.ImportUserEventsResponse.import_summary:type_name -> google.cloud.retail.v2.UserEventImportSummary
+ 20, // [20:20] is the sub-list for method output_type
+ 20, // [20:20] is the sub-list for method input_type
+ 20, // [20:20] is the sub-list for extension type_name
+ 20, // [20:20] is the sub-list for extension extendee
+ 0, // [0:20] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_import_config_proto_init() }
+func file_google_cloud_retail_v2_import_config_proto_init() {
+ if File_google_cloud_retail_v2_import_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_product_proto_init()
+ file_google_cloud_retail_v2_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GcsSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BigQuerySource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportErrorsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventImportSummary); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*ImportErrorsConfig_GcsPrefix)(nil),
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[7].OneofWrappers = []interface{}{
+ (*ProductInputConfig_ProductInlineSource)(nil),
+ (*ProductInputConfig_GcsSource)(nil),
+ (*ProductInputConfig_BigQuerySource)(nil),
+ }
+ file_google_cloud_retail_v2_import_config_proto_msgTypes[8].OneofWrappers = []interface{}{
+ (*UserEventInputConfig_UserEventInlineSource)(nil),
+ (*UserEventInputConfig_GcsSource)(nil),
+ (*UserEventInputConfig_BigQuerySource)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_import_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 13,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_import_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_import_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_import_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_import_config_proto = out.File
+ file_google_cloud_retail_v2_import_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2_import_config_proto_goTypes = nil
+ file_google_cloud_retail_v2_import_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/prediction_service.pb.go b/googleapis/cloud/retail/v2/prediction_service.pb.go
new file mode 100644
index 000000000..8f50cca52
--- /dev/null
+++ b/googleapis/cloud/retail/v2/prediction_service.pb.go
@@ -0,0 +1,687 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/prediction_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for Predict method.
+type PredictRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of the format:
+ // {name=projects/*/locations/global/catalogs/default_catalog/placements/*}
+ // The id of the recommendation engine placement. This id is used to identify
+ // the set of models that will be used to make the prediction.
+ //
+ // We currently support three placements with the following IDs by default:
+ //
+ // * `shopping_cart`: Predicts products frequently bought together with one or
+ // more products in the same shopping session. Commonly displayed after
+ // `add-to-cart` events, on product detail pages, or on the shopping cart
+ // page.
+ //
+ // * `home_page`: Predicts the next product that a user will most likely
+ // engage with or purchase based on the shopping or viewing history of the
+ // specified `userId` or `visitorId`. For example - Recommendations for you.
+ //
+ // * `product_detail`: Predicts the next product that a user will most likely
+ // engage with or purchase. The prediction is based on the shopping or
+ // viewing history of the specified `userId` or `visitorId` and its
+ // relevance to a specified `CatalogItem`. Typically used on product detail
+ // pages. For example - More products like this.
+ //
+ // * `recently_viewed_default`: Returns up to 75 products recently viewed by
+ // the
+ // specified `userId` or `visitorId`, most recent ones first. Returns
+ // nothing if neither of them has viewed any products yet. For example -
+ // Recently viewed.
+ //
+ // The full list of available placements can be seen at
+ //
+ // https:
+ // //console.cloud.google.com/recommendatio
+ // // n/datafeeds/default_catalog/dashboard
+ Placement string `protobuf:"bytes,1,opt,name=placement,proto3" json:"placement,omitempty"`
+ // Required. Context about the user, what they are looking at and what action
+ // they took to trigger the predict request. Note that this user event detail
+ // won't be ingested to userEvent logs. Thus, a separate userEvent write
+ // request is required for event logging.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // Maximum number of results to return per page. Set this property
+ // to the number of prediction results needed. If zero, the service will
+ // choose a reasonable default.
+ PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // The previous PredictResponse.next_page_token.
+ PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // Filter for restricting prediction results. Accepts values for
+ // tags and the `filterOutOfStockItems` flag.
+ //
+ // * Tag expressions. Restricts predictions to products that match all of the
+ // specified tags. Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space. `-"tagA"` is also supported and is equivalent to
+ // `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded strings
+ // with a size limit of 1 KiB.
+ //
+ // * filterOutOfStockItems. Restricts predictions to products that do not
+ // have a
+ // stockState value of OUT_OF_STOCK.
+ //
+ // Examples:
+ //
+ // * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
+ // * filterOutOfStockItems tag=(-"promotional")
+ // * filterOutOfStockItems
+ //
+ // If your filter blocks all prediction results, nothing will be returned. If
+ // you want generic (unfiltered) popular products to be returned instead, set
+ // `strictFiltering` to false in `PredictRequest.params`.
+ Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
+ // Use validate only mode for this prediction query. If set to true, a
+ // dummy model will be used that returns arbitrary products.
+ // Note that the validate only mode should only be used for testing the API,
+ // or if the model is not ready.
+ ValidateOnly bool `protobuf:"varint,6,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+ // Additional domain specific parameters for the predictions.
+ //
+ // Allowed values:
+ //
+ // * `returnProduct`: Boolean. If set to true, the associated product
+ // object will be returned in the
+ // `PredictResponse.PredictionResult.productMetadata` object in the method
+ // response.
+ // * `returnScore`: Boolean. If set to true, the prediction 'score'
+ // corresponding to each returned product will be set in the `metadata`
+ // field in the prediction response. The given 'score' indicates the
+ // probability of an product being clicked/purchased given the user's
+ // context and history.
+ // * `strictFiltering`: Boolean. True by default. If set to false, the service
+ // will return generic (unfiltered) popular products instead of empty if
+ // your filter blocks all prediction results.
+ Params map[string]*structpb.Value `protobuf:"bytes,7,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The labels for the predict request.
+ //
+ // * Label keys can contain lowercase letters, digits and hyphens, must start
+ // with a letter, and must end with a letter or digit.
+ // * Non-zero label values can contain lowercase letters, digits and hyphens,
+ // must start with a letter, and must end with a letter or digit.
+ // * No more than 64 labels can be associated with a given request.
+ //
+ // See https://goo.gl/xmQnxf for more information on and examples of labels.
+ Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictRequest) Reset() {
+ *x = PredictRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictRequest) ProtoMessage() {}
+
+func (x *PredictRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictRequest.ProtoReflect.Descriptor instead.
+func (*PredictRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PredictRequest) GetPlacement() string {
+ if x != nil {
+ return x.Placement
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *PredictRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+func (x *PredictRequest) GetParams() map[string]*structpb.Value {
+ if x != nil {
+ return x.Params
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+// Response message for predict method.
+type PredictResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of recommended products. The order represents the ranking (from the
+ // most relevant product to the least).
+ Results []*PredictResponse_PredictionResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ // A unique attribution token. This should be included in the
+ // [UserEvent][google.cloud.retail.v2.UserEvent] logs resulting from this
+ // recommendation, which enables accurate attribution of recommendation model
+ // performance.
+ AttributionToken string `protobuf:"bytes,2,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // IDs of products in the request that were missing from the inventory.
+ MissingIds []string `protobuf:"bytes,3,rep,name=missing_ids,json=missingIds,proto3" json:"missing_ids,omitempty"`
+ // True if the validateOnly property was set in the request.
+ ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+}
+
+func (x *PredictResponse) Reset() {
+ *x = PredictResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse) ProtoMessage() {}
+
+func (x *PredictResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse.ProtoReflect.Descriptor instead.
+func (*PredictResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PredictResponse) GetResults() []*PredictResponse_PredictionResult {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *PredictResponse) GetMissingIds() []string {
+ if x != nil {
+ return x.MissingIds
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+// PredictionResult represents the recommendation prediction results.
+type PredictResponse_PredictionResult struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // ID of the recommended product
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Additional product metadata / annotations.
+ //
+ // Possible values:
+ //
+ // * `product`: JSON representation of the product. Will be set if
+ // `returnProduct` is set to true in `PredictRequest.params`.
+ // * `score`: Prediction score in double value. Will be set if
+ // `returnScore` is set to true in `PredictRequest.params`.
+ Metadata map[string]*structpb.Value `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictResponse_PredictionResult) Reset() {
+ *x = PredictResponse_PredictionResult{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse_PredictionResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse_PredictionResult) ProtoMessage() {}
+
+func (x *PredictResponse_PredictionResult) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse_PredictionResult.ProtoReflect.Descriptor instead.
+func (*PredictResponse_PredictionResult) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *PredictResponse_PredictionResult) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PredictResponse_PredictionResult) GetMetadata() map[string]*structpb.Value {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2_prediction_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_prediction_service_proto_rawDesc = []byte{
+ 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75,
+ 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x04, 0x0a, 0x0e, 0x50, 0x72, 0x65,
+ 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x70,
+ 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45,
+ 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
+ 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x4a,
+ 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0xb6, 0x03, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11,
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x73,
+ 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
+ 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x1a,
+ 0xdb, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x02, 0x69, 0x64, 0x12, 0x62, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x53, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61,
+ 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x8e, 0x02,
+ 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12,
+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70,
+ 0x6c, 0x61, 0x63, 0x65, 0x6d, 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x6c, 0x61, 0x63, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x3a, 0x01, 0x2a, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xcb,
+ 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x16, 0x50,
+ 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
+ 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
+ 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_prediction_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_prediction_service_proto_rawDescData = file_google_cloud_retail_v2_prediction_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_prediction_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_prediction_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_prediction_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_prediction_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_google_cloud_retail_v2_prediction_service_proto_goTypes = []interface{}{
+ (*PredictRequest)(nil), // 0: google.cloud.retail.v2.PredictRequest
+ (*PredictResponse)(nil), // 1: google.cloud.retail.v2.PredictResponse
+ nil, // 2: google.cloud.retail.v2.PredictRequest.ParamsEntry
+ nil, // 3: google.cloud.retail.v2.PredictRequest.LabelsEntry
+ (*PredictResponse_PredictionResult)(nil), // 4: google.cloud.retail.v2.PredictResponse.PredictionResult
+ nil, // 5: google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2.UserEvent
+ (*structpb.Value)(nil), // 7: google.protobuf.Value
+}
+var file_google_cloud_retail_v2_prediction_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2.PredictRequest.user_event:type_name -> google.cloud.retail.v2.UserEvent
+ 2, // 1: google.cloud.retail.v2.PredictRequest.params:type_name -> google.cloud.retail.v2.PredictRequest.ParamsEntry
+ 3, // 2: google.cloud.retail.v2.PredictRequest.labels:type_name -> google.cloud.retail.v2.PredictRequest.LabelsEntry
+ 4, // 3: google.cloud.retail.v2.PredictResponse.results:type_name -> google.cloud.retail.v2.PredictResponse.PredictionResult
+ 7, // 4: google.cloud.retail.v2.PredictRequest.ParamsEntry.value:type_name -> google.protobuf.Value
+ 5, // 5: google.cloud.retail.v2.PredictResponse.PredictionResult.metadata:type_name -> google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry
+ 7, // 6: google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry.value:type_name -> google.protobuf.Value
+ 0, // 7: google.cloud.retail.v2.PredictionService.Predict:input_type -> google.cloud.retail.v2.PredictRequest
+ 1, // 8: google.cloud.retail.v2.PredictionService.Predict:output_type -> google.cloud.retail.v2.PredictResponse
+ 8, // [8:9] is the sub-list for method output_type
+ 7, // [7:8] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_prediction_service_proto_init() }
+func file_google_cloud_retail_v2_prediction_service_proto_init() {
+ if File_google_cloud_retail_v2_prediction_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse_PredictionResult); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_prediction_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2_prediction_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_prediction_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_prediction_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_prediction_service_proto = out.File
+ file_google_cloud_retail_v2_prediction_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2_prediction_service_proto_goTypes = nil
+ file_google_cloud_retail_v2_prediction_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// PredictionServiceClient is the client API for PredictionService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type PredictionServiceClient interface {
+ // Makes a recommendation prediction.
+ Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error)
+}
+
+type predictionServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewPredictionServiceClient(cc grpc.ClientConnInterface) PredictionServiceClient {
+ return &predictionServiceClient{cc}
+}
+
+func (c *predictionServiceClient) Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error) {
+ out := new(PredictResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.PredictionService/Predict", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// PredictionServiceServer is the server API for PredictionService service.
+type PredictionServiceServer interface {
+ // Makes a recommendation prediction.
+ Predict(context.Context, *PredictRequest) (*PredictResponse, error)
+}
+
+// UnimplementedPredictionServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedPredictionServiceServer struct {
+}
+
+func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRequest) (*PredictResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Predict not implemented")
+}
+
+func RegisterPredictionServiceServer(s *grpc.Server, srv PredictionServiceServer) {
+ s.RegisterService(&_PredictionService_serviceDesc, srv)
+}
+
+func _PredictionService_Predict_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PredictionServiceServer).Predict(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.PredictionService/Predict",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PredictionServiceServer).Predict(ctx, req.(*PredictRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _PredictionService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2.PredictionService",
+ HandlerType: (*PredictionServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Predict",
+ Handler: _PredictionService_Predict_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2/prediction_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2/product.pb.go b/googleapis/cloud/retail/v2/product.pb.go
new file mode 100644
index 000000000..c4ca23319
--- /dev/null
+++ b/googleapis/cloud/retail/v2/product.pb.go
@@ -0,0 +1,662 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/product.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/known/durationpb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Product availability. If this field is unspecified, the product is
+// assumed to be in stock.
+type Product_Availability int32
+
+const (
+ // Default product availability. Default to
+ // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]
+ // if unset.
+ Product_AVAILABILITY_UNSPECIFIED Product_Availability = 0
+ // Product in stock.
+ Product_IN_STOCK Product_Availability = 1
+ // Product out of stock.
+ Product_OUT_OF_STOCK Product_Availability = 2
+ // Product that is in pre-order state.
+ Product_PREORDER Product_Availability = 3
+ // Product that is back-ordered (i.e. temporarily out of stock).
+ Product_BACKORDER Product_Availability = 4
+)
+
+// Enum value maps for Product_Availability.
+var (
+ Product_Availability_name = map[int32]string{
+ 0: "AVAILABILITY_UNSPECIFIED",
+ 1: "IN_STOCK",
+ 2: "OUT_OF_STOCK",
+ 3: "PREORDER",
+ 4: "BACKORDER",
+ }
+ Product_Availability_value = map[string]int32{
+ "AVAILABILITY_UNSPECIFIED": 0,
+ "IN_STOCK": 1,
+ "OUT_OF_STOCK": 2,
+ "PREORDER": 3,
+ "BACKORDER": 4,
+ }
+)
+
+func (x Product_Availability) Enum() *Product_Availability {
+ p := new(Product_Availability)
+ *p = x
+ return p
+}
+
+func (x Product_Availability) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Product_Availability) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2_product_proto_enumTypes[0].Descriptor()
+}
+
+func (Product_Availability) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2_product_proto_enumTypes[0]
+}
+
+func (x Product_Availability) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Product_Availability.Descriptor instead.
+func (Product_Availability) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// Product captures all metadata information of items to be recommended or
+// searched.
+type Product struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Immutable. Full resource name of the product, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id".
+ //
+ // The branch ID must be "default_branch".
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Immutable. [Product][google.cloud.retail.v2.Product] identifier, which is
+ // the final component of [name][google.cloud.retail.v2.Product.name]. For
+ // example, this field is "id_1", if
+ // [name][google.cloud.retail.v2.Product.name] is
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1".
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [id](https://support.google.com/merchants/answer/6324405).
+ // schema.org Property [Product.sku](https://schema.org/sku).
+ Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+ // Variant group identifier. Must be an
+ // [id][google.cloud.retail.v2.Product.id], with the same parent branch with
+ // this product. Otherwise, an error is thrown.
+ //
+ // The primary product may be empty during the creation, but cannot be updated
+ // from a non-empty string to an empty one. Otherwise an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Should only be set for [Type.VARIANT][]
+ // [Product][google.cloud.retail.v2.Product]s. A maximum of 1000 products are
+ // allowed to share the same [Type.PRIMARY][]
+ // [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Google Merchant Center Property
+ // [item_group_id](https://support.google.com/merchants/answer/6324507).
+ // schema.org Property
+ // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
+ //
+ // This field must be enabled before it can be used. [Learn
+ // more](/recommendations-ai/docs/catalog#item-group-id).
+ PrimaryProductId string `protobuf:"bytes,4,opt,name=primary_product_id,json=primaryProductId,proto3" json:"primary_product_id,omitempty"`
+ // Required. Product categories. This field is repeated for supporting one
+ // product belonging to several parallel categories. Each value is either the
+ // full path of the category, or the [category
+ //
+ // ID](https:
+ // //www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt).
+ // Strongly recommended using the full path for better search / recommendation
+ // quality.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // For example, if a shoes product belongs to both
+ // ["Shoes & Accessories" -> "Shoes"] and
+ // ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be
+ // represented as:
+ //
+ // "categories": [
+ // "Shoes & Accessories > Shoes",
+ // "Sports & Fitness > Athletic Clothing > Shoes"
+ // ]
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2.Product]. Empty values are not allowed.
+ // Each value must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ //
+ // [google_product_category](https:
+ // //support.google.com/merchants/answer/6324436).
+ // Schema.org property [Product.category] (https://schema.org/category).
+ Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"`
+ // Required. Product title.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [title](https://support.google.com/merchants/answer/6324415). Schema.org
+ // property [Product.name](https://schema.org/name).
+ Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
+ // Product description.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [description](https://support.google.com/merchants/answer/6324468).
+ // schema.org property [Product.description](https://schema.org/description).
+ Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
+ // Language of the title/description and other string attributes. Use language
+ // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
+ //
+ // The model automatically detects the text language. The
+ // [Product][google.cloud.retail.v2.Product] can include text in different
+ // languages, but duplicating [Product][google.cloud.retail.v2.Product]s to
+ // provide text in multiple languages can result in degraded model
+ // performance.
+ //
+ // Currently, recommendation supports all language codes, while the only
+ // supported language code for search is "en-US".
+ LanguageCode string `protobuf:"bytes,11,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
+ // Highly encouraged. Extra product attributes to be included. For example,
+ // for products, this could include the store name, vendor, style, color, etc.
+ // These are very strong signals for recommendation model, thus we highly
+ // recommend providing the attributes here.
+ //
+ // Features that can take on one of a limited number of possible values. Two
+ // types of features can be set are:
+ //
+ // Textual features. some examples would be the brand/maker of a product, or
+ // country of a customer. Numerical features. Some examples would be the
+ // height/weight of a product, or age of a customer.
+ //
+ // For example: { "vendor": {"text": ["vendor123", "vendor456"]},
+ // "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]}
+ // }.
+ //
+ // A maximum of 150 attributes are allowed. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,12,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Custom tags associated with the product.
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2.Product]. This value must be a UTF-8
+ // encoded string with a length limit of 1 KiB. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // This tag can be used for filtering recommendation results by passing the
+ // tag as part of the
+ // [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter].
+ //
+ // Google Merchant Center property
+ // [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+ Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"`
+ // Product price and cost information.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"`
+ // The timestamp when this [Product][google.cloud.retail.v2.Product] becomes
+ // available recommendation and search.
+ AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"`
+ // The online availability of the [Product][google.cloud.retail.v2.Product],
+ // which is parallel to and independent of [fulfillment_info][]. Default is
+ // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK].
+ //
+ // Google Merchant Center Property
+ // [availability](https://support.google.com/merchants/answer/6324448).
+ // schema.org Property [Offer.availability](https://schema.org/availability).
+ Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2.Product_Availability" json:"availability,omitempty"`
+ // The available quantity of the item.
+ AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
+ // Canonical URL directly linking to the product detail page.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [link](https://support.google.com/merchants/answer/6324416).
+ // Schema.org property [Offer.url](https://schema.org/url).
+ Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Product images for the product.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](https://schema.org/image).
+ Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"`
+ // Indicates which fields in the [variants][] are retrievable in [Search][].
+ // If not set or empty, the following fields are returned:
+ //
+ // * [name][google.cloud.retail.v2.Product.name]
+ // * [availability][google.cloud.retail.v2.Product.availability]
+ // * [color_info][]
+ //
+ // Supported fields:
+ //
+ // * [name][google.cloud.retail.v2.Product.name]
+ // * [availability][google.cloud.retail.v2.Product.availability]
+ // * [color_info][]
+ // * [gtin][]
+ // * [price_info][google.cloud.retail.v2.Product.price_info]
+ // * [sizes][]
+ // * [materials][]
+ // * [patterns][]
+ // * [conditions][]
+ // * [images][google.cloud.retail.v2.Product.images]
+ // * [attributes][google.cloud.retail.v2.Product.attributes]
+ //
+ // To mark custom attributes as retrievable, include paths of the form
+ // "attributes.key" where "key" is the key of a custom attribute, as
+ // specified in [attributes][google.cloud.retail.v2.Product.attributes].
+ //
+ // Maximum number of paths is 10. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ StockingUnitRetrievableFields *fieldmaskpb.FieldMask `protobuf:"bytes,30,opt,name=stocking_unit_retrievable_fields,json=stockingUnitRetrievableFields,proto3" json:"stocking_unit_retrievable_fields,omitempty"`
+}
+
+func (x *Product) Reset() {
+ *x = Product{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Product) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Product) ProtoMessage() {}
+
+func (x *Product) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Product.ProtoReflect.Descriptor instead.
+func (*Product) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Product) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Product) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *Product) GetPrimaryProductId() string {
+ if x != nil {
+ return x.PrimaryProductId
+ }
+ return ""
+}
+
+func (x *Product) GetCategories() []string {
+ if x != nil {
+ return x.Categories
+ }
+ return nil
+}
+
+func (x *Product) GetTitle() string {
+ if x != nil {
+ return x.Title
+ }
+ return ""
+}
+
+func (x *Product) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Product) GetLanguageCode() string {
+ if x != nil {
+ return x.LanguageCode
+ }
+ return ""
+}
+
+func (x *Product) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *Product) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *Product) GetPriceInfo() *PriceInfo {
+ if x != nil {
+ return x.PriceInfo
+ }
+ return nil
+}
+
+func (x *Product) GetAvailableTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.AvailableTime
+ }
+ return nil
+}
+
+func (x *Product) GetAvailability() Product_Availability {
+ if x != nil {
+ return x.Availability
+ }
+ return Product_AVAILABILITY_UNSPECIFIED
+}
+
+func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.AvailableQuantity
+ }
+ return nil
+}
+
+func (x *Product) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Product) GetImages() []*Image {
+ if x != nil {
+ return x.Images
+ }
+ return nil
+}
+
+func (x *Product) GetStockingUnitRetrievableFields() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.StockingUnitRetrievableFields
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2_product_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_product_proto_rawDesc = []byte{
+ 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 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, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
+ 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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,
+ 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0xfc, 0x08, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65,
+ 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a,
+ 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61,
+ 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x4f, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e,
+ 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x69,
+ 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 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, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69,
+ 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x61, 0x76, 0x61,
+ 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51,
+ 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x16,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x35, 0x0a, 0x06, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73,
+ 0x12, 0x63, 0x0a, 0x20, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69,
+ 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x1d, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x46,
+ 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x66, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 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, 0x3d, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69, 0x0a,
+ 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a,
+ 0x18, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e,
+ 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49,
+ 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54,
+ 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50,
+ 0x52, 0x45, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x43,
+ 0x4b, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01, 0x0a,
+ 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x5f,
+ 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d, 0x42,
+ 0xb0, 0x02, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x0c,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
+ 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52,
+ 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02,
+ 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a,
+ 0x3a, 0x56, 0x32, 0xea, 0x41, 0x6c, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d,
+ 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_product_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_product_proto_rawDescData = file_google_cloud_retail_v2_product_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_product_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_product_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_product_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_product_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_product_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_cloud_retail_v2_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2_product_proto_goTypes = []interface{}{
+ (Product_Availability)(0), // 0: google.cloud.retail.v2.Product.Availability
+ (*Product)(nil), // 1: google.cloud.retail.v2.Product
+ nil, // 2: google.cloud.retail.v2.Product.AttributesEntry
+ (*PriceInfo)(nil), // 3: google.cloud.retail.v2.PriceInfo
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*wrapperspb.Int32Value)(nil), // 5: google.protobuf.Int32Value
+ (*Image)(nil), // 6: google.cloud.retail.v2.Image
+ (*fieldmaskpb.FieldMask)(nil), // 7: google.protobuf.FieldMask
+ (*CustomAttribute)(nil), // 8: google.cloud.retail.v2.CustomAttribute
+}
+var file_google_cloud_retail_v2_product_proto_depIdxs = []int32{
+ 2, // 0: google.cloud.retail.v2.Product.attributes:type_name -> google.cloud.retail.v2.Product.AttributesEntry
+ 3, // 1: google.cloud.retail.v2.Product.price_info:type_name -> google.cloud.retail.v2.PriceInfo
+ 4, // 2: google.cloud.retail.v2.Product.available_time:type_name -> google.protobuf.Timestamp
+ 0, // 3: google.cloud.retail.v2.Product.availability:type_name -> google.cloud.retail.v2.Product.Availability
+ 5, // 4: google.cloud.retail.v2.Product.available_quantity:type_name -> google.protobuf.Int32Value
+ 6, // 5: google.cloud.retail.v2.Product.images:type_name -> google.cloud.retail.v2.Image
+ 7, // 6: google.cloud.retail.v2.Product.stocking_unit_retrievable_fields:type_name -> google.protobuf.FieldMask
+ 8, // 7: google.cloud.retail.v2.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2.CustomAttribute
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_product_proto_init() }
+func file_google_cloud_retail_v2_product_proto_init() {
+ if File_google_cloud_retail_v2_product_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_common_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Product); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_product_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_product_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_product_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2_product_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2_product_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_product_proto = out.File
+ file_google_cloud_retail_v2_product_proto_rawDesc = nil
+ file_google_cloud_retail_v2_product_proto_goTypes = nil
+ file_google_cloud_retail_v2_product_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/product_service.pb.go b/googleapis/cloud/retail/v2/product_service.pb.go
new file mode 100644
index 000000000..2c979786b
--- /dev/null
+++ b/googleapis/cloud/retail/v2/product_service.pb.go
@@ -0,0 +1,917 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/product_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for [CreateProduct][] method.
+type CreateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent catalog resource name, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The [Product][google.cloud.retail.v2.Product] to create.
+ Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
+ // Required. The ID to use for the [Product][google.cloud.retail.v2.Product],
+ // which will become the final component of the
+ // [Product.name][google.cloud.retail.v2.Product.name].
+ //
+ // If the caller does not have permission to create the
+ // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
+ // exists, a PERMISSION_DENIED error is returned.
+ //
+ // This field must be unique among all
+ // [Product][google.cloud.retail.v2.Product]s with the same
+ // [parent][google.cloud.retail.v2.CreateProductRequest.parent]. Otherwise, an
+ // ALREADY_EXISTS error is returned.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
+}
+
+func (x *CreateProductRequest) Reset() {
+ *x = CreateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateProductRequest) ProtoMessage() {}
+
+func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead.
+func (*CreateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CreateProductRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CreateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *CreateProductRequest) GetProductId() string {
+ if x != nil {
+ return x.ProductId
+ }
+ return ""
+}
+
+// Request message for [GetProduct][] method.
+type GetProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of [Product][google.cloud.retail.v2.Product],
+ // such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to access the
+ // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
+ // exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the requested [Product][google.cloud.retail.v2.Product] does not exist,
+ // a NOT_FOUND error is returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetProductRequest) Reset() {
+ *x = GetProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetProductRequest) ProtoMessage() {}
+
+func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.
+func (*GetProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GetProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for [UpdateProduct][] method.
+type UpdateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The product to update/create.
+ //
+ // If the caller does not have permission to update the
+ // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
+ // exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2.Product] to update does not exist,
+ // a NOT_FOUND error is returned.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Indicates which fields in the provided
+ // [Product][google.cloud.retail.v2.Product] to update. The immutable and
+ // output only fields are NOT supported. If not set, all supported fields (the
+ // fields that are neither immutable nor output only) are updated.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateProductRequest) Reset() {
+ *x = UpdateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateProductRequest) ProtoMessage() {}
+
+func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateProductRequest.ProtoReflect.Descriptor instead.
+func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for [DeleteProduct][] method.
+type DeleteProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of [Product][google.cloud.retail.v2.Product],
+ // such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to delete the
+ // [Product][google.cloud.retail.v2.Product], regardless of whether or not it
+ // exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2.Product] to delete does not exist,
+ // a NOT_FOUND error is returned.
+ //
+ // The [Product][google.cloud.retail.v2.Product] to delete can neither be a
+ // non-empty [Product.Type.COLLECTION][]
+ // [Product][google.cloud.retail.v2.Product] nor a [Product.Type.PRIMARY][]
+ // [Product][google.cloud.retail.v2.Product] with more than one
+ // [variants][Product.Type.VARIANT]. Otherwise, a FAILED_PRECONDITION error is
+ // returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *DeleteProductRequest) Reset() {
+ *x = DeleteProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteProductRequest) ProtoMessage() {}
+
+func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead.
+func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DeleteProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2_product_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_product_service_proto_rawDesc = []byte{
+ 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76,
+ 0x32, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 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, 0x1a, 0x1b, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70,
+ 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f,
+ 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
+ 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e,
+ 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b,
+ 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52,
+ 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xfa,
+ 0x0a, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0xcf, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x22, 0x42, 0x2f, 0x76, 0x32, 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, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
+ 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x5f, 0x69, 0x64, 0x12, 0xac, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x52,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x76, 0x32, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x12, 0xd2, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x32, 0x4b, 0x2f, 0x76, 0x32,
+ 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a,
+ 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xa9, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 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,
+ 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x76, 0x32, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x89, 0x02, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50,
+ 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 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, 0xaa, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x22, 0x48, 0x2f, 0x76, 0x32,
+ 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a,
+ 0x70, 0x75, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x54, 0x0a, 0x2c, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
+ 0x8e, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 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, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x76, 0x32, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65,
+ 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x69, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x56, 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+ 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xc8, 0x01, 0x0a, 0x1a,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
+ 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
+ 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2,
+ 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56,
+ 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_product_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_product_service_proto_rawDescData = file_google_cloud_retail_v2_product_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_product_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_product_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_product_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_product_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2_product_service_proto_goTypes = []interface{}{
+ (*CreateProductRequest)(nil), // 0: google.cloud.retail.v2.CreateProductRequest
+ (*GetProductRequest)(nil), // 1: google.cloud.retail.v2.GetProductRequest
+ (*UpdateProductRequest)(nil), // 2: google.cloud.retail.v2.UpdateProductRequest
+ (*DeleteProductRequest)(nil), // 3: google.cloud.retail.v2.DeleteProductRequest
+ (*Product)(nil), // 4: google.cloud.retail.v2.Product
+ (*fieldmaskpb.FieldMask)(nil), // 5: google.protobuf.FieldMask
+ (*PurgeProductsRequest)(nil), // 6: google.cloud.retail.v2.PurgeProductsRequest
+ (*ImportProductsRequest)(nil), // 7: google.cloud.retail.v2.ImportProductsRequest
+ (*emptypb.Empty)(nil), // 8: google.protobuf.Empty
+ (*longrunning.Operation)(nil), // 9: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2_product_service_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2.CreateProductRequest.product:type_name -> google.cloud.retail.v2.Product
+ 4, // 1: google.cloud.retail.v2.UpdateProductRequest.product:type_name -> google.cloud.retail.v2.Product
+ 5, // 2: google.cloud.retail.v2.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 3: google.cloud.retail.v2.ProductService.CreateProduct:input_type -> google.cloud.retail.v2.CreateProductRequest
+ 1, // 4: google.cloud.retail.v2.ProductService.GetProduct:input_type -> google.cloud.retail.v2.GetProductRequest
+ 2, // 5: google.cloud.retail.v2.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2.UpdateProductRequest
+ 3, // 6: google.cloud.retail.v2.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2.DeleteProductRequest
+ 6, // 7: google.cloud.retail.v2.ProductService.PurgeProducts:input_type -> google.cloud.retail.v2.PurgeProductsRequest
+ 7, // 8: google.cloud.retail.v2.ProductService.ImportProducts:input_type -> google.cloud.retail.v2.ImportProductsRequest
+ 4, // 9: google.cloud.retail.v2.ProductService.CreateProduct:output_type -> google.cloud.retail.v2.Product
+ 4, // 10: google.cloud.retail.v2.ProductService.GetProduct:output_type -> google.cloud.retail.v2.Product
+ 4, // 11: google.cloud.retail.v2.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2.Product
+ 8, // 12: google.cloud.retail.v2.ProductService.DeleteProduct:output_type -> google.protobuf.Empty
+ 9, // 13: google.cloud.retail.v2.ProductService.PurgeProducts:output_type -> google.longrunning.Operation
+ 9, // 14: google.cloud.retail.v2.ProductService.ImportProducts:output_type -> google.longrunning.Operation
+ 9, // [9:15] is the sub-list for method output_type
+ 3, // [3:9] 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_retail_v2_product_service_proto_init() }
+func file_google_cloud_retail_v2_product_service_proto_init() {
+ if File_google_cloud_retail_v2_product_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_import_config_proto_init()
+ file_google_cloud_retail_v2_product_proto_init()
+ file_google_cloud_retail_v2_purge_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_product_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2_product_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_product_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_product_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_product_service_proto = out.File
+ file_google_cloud_retail_v2_product_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2_product_service_proto_goTypes = nil
+ file_google_cloud_retail_v2_product_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// ProductServiceClient is the client API for ProductService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ProductServiceClient interface {
+ // Creates a [Product][google.cloud.retail.v2.Product].
+ CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2.Product].
+ GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Updates a [Product][google.cloud.retail.v2.Product]. Non-existing items
+ // will be created.
+ UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2.Product].
+ DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2.Product]s under a
+ // branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2.Product]s, this
+ // operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2.Product]s to be successfully updated.
+ ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type productServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient {
+ return &productServiceClient{cc}
+}
+
+func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/CreateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/GetProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/UpdateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/DeleteProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/PurgeProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/ImportProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ProductServiceServer is the server API for ProductService service.
+type ProductServiceServer interface {
+ // Creates a [Product][google.cloud.retail.v2.Product].
+ CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2.Product].
+ GetProduct(context.Context, *GetProductRequest) (*Product, error)
+ // Updates a [Product][google.cloud.retail.v2.Product]. Non-existing items
+ // will be created.
+ UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2.Product].
+ DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2.Product]s under a
+ // branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2.Product]s, this
+ // operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2.Product]s to be successfully updated.
+ ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedProductServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedProductServiceServer struct {
+}
+
+func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeProducts not implemented")
+}
+func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented")
+}
+
+func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) {
+ s.RegisterService(&_ProductService_serviceDesc, srv)
+}
+
+func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).CreateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/CreateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).GetProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/GetProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/UpdateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/DeleteProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_PurgeProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/PurgeProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, req.(*PurgeProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).ImportProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.ProductService/ImportProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _ProductService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2.ProductService",
+ HandlerType: (*ProductServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "CreateProduct",
+ Handler: _ProductService_CreateProduct_Handler,
+ },
+ {
+ MethodName: "GetProduct",
+ Handler: _ProductService_GetProduct_Handler,
+ },
+ {
+ MethodName: "UpdateProduct",
+ Handler: _ProductService_UpdateProduct_Handler,
+ },
+ {
+ MethodName: "DeleteProduct",
+ Handler: _ProductService_DeleteProduct_Handler,
+ },
+ {
+ MethodName: "PurgeProducts",
+ Handler: _ProductService_PurgeProducts_Handler,
+ },
+ {
+ MethodName: "ImportProducts",
+ Handler: _ProductService_ImportProducts_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2/product_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2/purge_config.pb.go b/googleapis/cloud/retail/v2/purge_config.pb.go
new file mode 100644
index 000000000..d4081a560
--- /dev/null
+++ b/googleapis/cloud/retail/v2/purge_config.pb.go
@@ -0,0 +1,585 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/purge_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Metadata related to the progress of the Purge operation.
+// This will be returned by the google.longrunning.Operation.metadata field.
+type PurgeMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The ID of the request / operation.
+ Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+}
+
+func (x *PurgeMetadata) Reset() {
+ *x = PurgeMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeMetadata) ProtoMessage() {}
+
+func (x *PurgeMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeMetadata.ProtoReflect.Descriptor instead.
+func (*PurgeMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PurgeMetadata) GetOperation() string {
+ if x != nil {
+ return x.Operation
+ }
+ return ""
+}
+
+func (x *PurgeMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+// Request message for PurgeProducts method.
+type PurgeProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the catalog under which the products are
+ // created. The format is
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. Filter matching the products to be purged. Only supported value
+ // at the moment is "*" (all items).
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // products to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeProductsRequest) Reset() {
+ *x = PurgeProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsRequest) ProtoMessage() {}
+
+func (x *PurgeProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PurgeProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeProductsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of products purged as a result of the operation.
+ PurgedCount int64 `protobuf:"varint,1,opt,name=purged_count,json=purgedCount,proto3" json:"purged_count,omitempty"`
+ // A random sampling of products deleted (or will be deleted) depending
+ // on the `force` property in the request. Max of 500 items will be returned.
+ // Currently, this is only populated if force=false.
+ ProductsSample []*Product `protobuf:"bytes,2,rep,name=products_sample,json=productsSample,proto3" json:"products_sample,omitempty"`
+}
+
+func (x *PurgeProductsResponse) Reset() {
+ *x = PurgeProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsResponse) ProtoMessage() {}
+
+func (x *PurgeProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurgeProductsResponse) GetPurgedCount() int64 {
+ if x != nil {
+ return x.PurgedCount
+ }
+ return 0
+}
+
+func (x *PurgeProductsResponse) GetProductsSample() []*Product {
+ if x != nil {
+ return x.ProductsSample
+ }
+ return nil
+}
+
+// Request message for PurgeUserEvents method.
+type PurgeUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the event_store under which the events are
+ // created. The format is
+ //
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The filter string to specify the events to be deleted. Empty
+ // string filter is not allowed. The eligible fields
+ // for filtering are:
+ //
+ // * `eventType`: UserEvent.eventType field of type string.
+ // * `eventTime`: in ISO 8601 "zulu" format.
+ // * `visitorId`: field of type string. Specifying this will delete all
+ // events associated with a visitor.
+ // * `userId`: field of type string. Specifying this will delete all events
+ // associated with a user.
+ //
+ // Examples:
+ //
+ // * Deleting all events in a time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z"
+ // eventTime < "2012-04-23T18:30:43.511Z"`
+ // * Deleting specific eventType in time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view"`
+ // * Deleting all events for a specific visitor:
+ // `visitorId = "visitor1024"`
+ //
+ // The filtering fields are assumed to have an implicit AND.
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // events to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeUserEventsRequest) Reset() {
+ *x = PurgeUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsRequest) ProtoMessage() {}
+
+func (x *PurgeUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *PurgeUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeUserEventsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of events purged as a result of the operation.
+ PurgedEventsCount int64 `protobuf:"varint,1,opt,name=purged_events_count,json=purgedEventsCount,proto3" json:"purged_events_count,omitempty"`
+ // A sampling of events deleted (or will be deleted) depending on the `force`
+ // property in the request. Max of 500 items will be returned.
+ UserEventsSample []*UserEvent `protobuf:"bytes,2,rep,name=user_events_sample,json=userEventsSample,proto3" json:"user_events_sample,omitempty"`
+}
+
+func (x *PurgeUserEventsResponse) Reset() {
+ *x = PurgeUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsResponse) ProtoMessage() {}
+
+func (x *PurgeUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_purge_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *PurgeUserEventsResponse) GetPurgedEventsCount() int64 {
+ if x != nil {
+ return x.PurgedEventsCount
+ }
+ return 0
+}
+
+func (x *PurgeUserEventsResponse) GetUserEventsSample() []*UserEvent {
+ if x != nil {
+ return x.UserEventsSample
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2_purge_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_purge_config_proto_rawDesc = []byte{
+ 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 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, 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, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x6a, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x66,
+ 0x0a, 0x14, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
+ 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x75, 0x72, 0x67, 0x65,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x5f,
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x0e, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x22, 0x68, 0x0a,
+ 0x16, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67,
+ 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x11, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x61,
+ 0x6d, 0x70, 0x6c, 0x65, 0x42, 0xc5, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x42, 0x10, 0x50, 0x75, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
+ 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
+ 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_purge_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_purge_config_proto_rawDescData = file_google_cloud_retail_v2_purge_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_purge_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_purge_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_purge_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_purge_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_purge_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_purge_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2_purge_config_proto_goTypes = []interface{}{
+ (*PurgeMetadata)(nil), // 0: google.cloud.retail.v2.PurgeMetadata
+ (*PurgeProductsRequest)(nil), // 1: google.cloud.retail.v2.PurgeProductsRequest
+ (*PurgeProductsResponse)(nil), // 2: google.cloud.retail.v2.PurgeProductsResponse
+ (*PurgeUserEventsRequest)(nil), // 3: google.cloud.retail.v2.PurgeUserEventsRequest
+ (*PurgeUserEventsResponse)(nil), // 4: google.cloud.retail.v2.PurgeUserEventsResponse
+ (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
+ (*Product)(nil), // 6: google.cloud.retail.v2.Product
+ (*UserEvent)(nil), // 7: google.cloud.retail.v2.UserEvent
+}
+var file_google_cloud_retail_v2_purge_config_proto_depIdxs = []int32{
+ 5, // 0: google.cloud.retail.v2.PurgeMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 6, // 1: google.cloud.retail.v2.PurgeProductsResponse.products_sample:type_name -> google.cloud.retail.v2.Product
+ 7, // 2: google.cloud.retail.v2.PurgeUserEventsResponse.user_events_sample:type_name -> google.cloud.retail.v2.UserEvent
+ 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_retail_v2_purge_config_proto_init() }
+func file_google_cloud_retail_v2_purge_config_proto_init() {
+ if File_google_cloud_retail_v2_purge_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_product_proto_init()
+ file_google_cloud_retail_v2_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_purge_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_purge_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_purge_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_purge_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_purge_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_purge_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_purge_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_purge_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_purge_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_purge_config_proto = out.File
+ file_google_cloud_retail_v2_purge_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2_purge_config_proto_goTypes = nil
+ file_google_cloud_retail_v2_purge_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/user_event.pb.go b/googleapis/cloud/retail/v2/user_event.pb.go
new file mode 100644
index 000000000..a7a32f82a
--- /dev/null
+++ b/googleapis/cloud/retail/v2/user_event.pb.go
@@ -0,0 +1,704 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/user_event.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// UserEvent captures all metadata information recommendation engine needs to
+// know about how end users interact with customers' website.
+type UserEvent struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. User event type. Allowed values are:
+ //
+ // * `add-to-cart` Products being added to cart.
+ // * `category-page-view` Special pages such as sale or promotion pages
+ // viewed.
+ // * `detail-page-view` Products detail page viewed.
+ // * `home-page-view` Homepage viewed.
+ // * `purchase-complete` User finishing a purchase.
+ // * `search`
+ // * `shopping-cart-page-view` User viewing a shopping cart.
+ EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
+ // Required. A unique identifier for tracking visitors. For example, this
+ // could be implemented with a http cookie, which should be able to uniquely
+ // identify a visitor on a single device. This unique identifier should not
+ // change if the visitor log in/out of the website.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ VisitorId string `protobuf:"bytes,2,opt,name=visitor_id,json=visitorId,proto3" json:"visitor_id,omitempty"`
+ // Only required for
+ // [UserEventService.ImportUserEvents][google.cloud.retail.v2.UserEventService.ImportUserEvents]
+ // method. Timestamp of when the user event happened.
+ EventTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
+ // A list of identifiers for the independent experiment groups
+ // this user event belongs to. This is used to distinguish between user events
+ // associated with different experiment setups (e.g. using Recommendations AI,
+ // using different recommendation models).
+ ExperimentIds []string `protobuf:"bytes,4,rep,name=experiment_ids,json=experimentIds,proto3" json:"experiment_ids,omitempty"`
+ // Highly recommended for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2.PredictionService.Predict].
+ // This field enables accurate attribution of recommendation model
+ // performance.
+ //
+ // The value must be a valid
+ // [PredictResponse.attribute_token][] for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2.PredictionService.Predict].
+ //
+ // This token enables us to accurately attribute page view or purchase back to
+ // the event and the particular predict response containing this
+ // clicked/purchased product. If user clicks on product K in the
+ // recommendation results, pass [PredictResponse.attribute_token][] as a url
+ // parameter to product K's page. When recording events on product K's page,
+ // log the [PredictResponse.attribute_token][] to this field.
+ AttributionToken string `protobuf:"bytes,5,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // The main product details related to the event.
+ //
+ // This field is required for the following event types:
+ //
+ // * `add-to-cart`
+ // * `detail-page-view`
+ // * `purchase-complete`
+ //
+ // In a `search` event, this field represents the products returned to the end
+ // user on the current page (the end user may have not finished broswing the
+ // whole page yet). When a new page is returned to the end user, after
+ // pagination/filtering/ordering even for the same query, a new SEARCH event
+ // with different
+ // [product_details][google.cloud.retail.v2.UserEvent.product_details] is
+ // desired. The end user may have not finished broswing the whole page yet.
+ ProductDetails []*ProductDetail `protobuf:"bytes,6,rep,name=product_details,json=productDetails,proto3" json:"product_details,omitempty"`
+ // Extra user event features to include in the recommendation model.
+ //
+ // For product recommendation, an example of extra user information is
+ // traffic_channel, i.e. how user arrives at the site. Users can arrive
+ // at the site by coming to the site directly, or coming through Google
+ // search, and etc.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,7,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The id or name of the associated shopping cart. This id is used
+ // to associate multiple items added or present in the cart before purchase.
+ //
+ // This can only be set for `add-to-cart`, `remove-from-cart`,
+ // `checkout-start`, `purchase-complete`, or `shopping-cart-page-view` events.
+ CartId string `protobuf:"bytes,8,opt,name=cart_id,json=cartId,proto3" json:"cart_id,omitempty"`
+ // A transaction represents the entire purchase transaction.
+ //
+ // Required for `purchase-complete` events. Optional for `checkout-start`
+ // events. Other event types should not set this field. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PurchaseTransaction *PurchaseTransaction `protobuf:"bytes,9,opt,name=purchase_transaction,json=purchaseTransaction,proto3" json:"purchase_transaction,omitempty"`
+ // The user's search query.
+ //
+ // The value must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Required for `search` events. Other event types should not set this field.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ SearchQuery string `protobuf:"bytes,10,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"`
+ // The categories associated with a category page.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // Category pages include special pages such as sales or promotions. For
+ // instance, a special sale page may have the category hierarchy:
+ // "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+ //
+ // Required for `category-page-view` events. Other event types should not set
+ // this field. Otherwise, an INVALID_ARGUMENT error is returned.
+ PageCategories []string `protobuf:"bytes,11,rep,name=page_categories,json=pageCategories,proto3" json:"page_categories,omitempty"`
+ // User information.
+ UserInfo *UserInfo `protobuf:"bytes,12,opt,name=user_info,json=userInfo,proto3" json:"user_info,omitempty"`
+ // Complete url (window.location.href) of the user's current page.
+ // When using the client side event reporting with JavaScript pixel and Google
+ // Tag Manager, this value is filled in automatically. Maximum length 5KB.
+ Uri string `protobuf:"bytes,13,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The referrer url of the current page. When using
+ // the client side event reporting with JavaScript pixel and Google Tag
+ // Manager, this value is filled in automatically.
+ ReferrerUri string `protobuf:"bytes,14,opt,name=referrer_uri,json=referrerUri,proto3" json:"referrer_uri,omitempty"`
+ // A unique id of a web page view.
+ // This should be kept the same for all user events triggered from the same
+ // pageview. For example, an item detail page view could trigger multiple
+ // events as the user is browsing the page.
+ // The `pageViewId` property should be kept the same for all these events so
+ // that they can be grouped together properly. This `pageViewId` will be
+ // automatically generated if using the client side event reporting with
+ // JavaScript pixel and Google Tag Manager.
+ PageViewId string `protobuf:"bytes,15,opt,name=page_view_id,json=pageViewId,proto3" json:"page_view_id,omitempty"`
+ // User event source.
+ // Acceptable values are:
+ //
+ // * `client_tag` if the event is ingested via a JavaScript tag or
+ // Recommendations AI Tag through automl datalayer or JS Macros.
+ // * `client_tag_ecommerce` if the event is ingested via Recommendations AI
+ // Tag through
+ // Enhanced Ecommerce datalayer.
+ // * 'batch_upload' if the event is ingested via ImportUserEvents API.
+ //
+ // This field should *not* be set when using client side event reporting with
+ // JavaScript pixel and Google Tag Manager or the Recommendations AI Tag.
+ EventSource string `protobuf:"bytes,16,opt,name=event_source,json=eventSource,proto3" json:"event_source,omitempty"`
+}
+
+func (x *UserEvent) Reset() {
+ *x = UserEvent{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEvent) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEvent) ProtoMessage() {}
+
+func (x *UserEvent) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEvent.ProtoReflect.Descriptor instead.
+func (*UserEvent) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *UserEvent) GetEventType() string {
+ if x != nil {
+ return x.EventType
+ }
+ return ""
+}
+
+func (x *UserEvent) GetVisitorId() string {
+ if x != nil {
+ return x.VisitorId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.EventTime
+ }
+ return nil
+}
+
+func (x *UserEvent) GetExperimentIds() []string {
+ if x != nil {
+ return x.ExperimentIds
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *UserEvent) GetProductDetails() []*ProductDetail {
+ if x != nil {
+ return x.ProductDetails
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *UserEvent) GetCartId() string {
+ if x != nil {
+ return x.CartId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPurchaseTransaction() *PurchaseTransaction {
+ if x != nil {
+ return x.PurchaseTransaction
+ }
+ return nil
+}
+
+func (x *UserEvent) GetSearchQuery() string {
+ if x != nil {
+ return x.SearchQuery
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageCategories() []string {
+ if x != nil {
+ return x.PageCategories
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUserInfo() *UserInfo {
+ if x != nil {
+ return x.UserInfo
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetReferrerUri() string {
+ if x != nil {
+ return x.ReferrerUri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageViewId() string {
+ if x != nil {
+ return x.PageViewId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventSource() string {
+ if x != nil {
+ return x.EventSource
+ }
+ return ""
+}
+
+// Detailed product information associated with a user event.
+type ProductDetail struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. [Product][google.cloud.retail.v2.Product] information.
+ // Only [Product][id] field must to be set.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Quantity of the product associated with the user event. For
+ // example, this field will be 2 if two products are added to the shopping
+ // cart for `purchase-complete` event. Required for `add-to-cart` and
+ // `purchase-complete` event types.
+ Quantity *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"`
+}
+
+func (x *ProductDetail) Reset() {
+ *x = ProductDetail{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductDetail) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductDetail) ProtoMessage() {}
+
+func (x *ProductDetail) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductDetail.ProtoReflect.Descriptor instead.
+func (*ProductDetail) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ProductDetail) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *ProductDetail) GetQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.Quantity
+ }
+ return nil
+}
+
+// A transaction represents the entire purchase transaction.
+type PurchaseTransaction struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The transaction ID with a length limit of 128 bytes.
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Required. Total revenue or grand total associated with the transaction.
+ // This value include shipping, tax, or other adjustments to total revenue
+ // that you want to include as part of your revenue calculations. This field
+ // is not required if the event type is `refund`.
+ Revenue float32 `protobuf:"fixed32,2,opt,name=revenue,proto3" json:"revenue,omitempty"`
+ // All the taxes associated with the transaction.
+ Tax float32 `protobuf:"fixed32,3,opt,name=tax,proto3" json:"tax,omitempty"`
+ // All the costs associated with the product. These can be
+ // manufacturing costs, shipping expenses not borne by the end user, or any
+ // other costs.
+ //
+ // Total product cost such that
+ // profit = revenue - tax + [Product][pricing][cost]
+ // If product_cost is not set, then
+ // profit = revenue - tax - [Product][pricing][cost].
+ //
+ // If [Product][pricing][cost] is not specified for one of the products,
+ // [Product][pricing][cost] based profit *cannot* be calculated for this
+ // Transaction.
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+ // Required. Currency code. Use three-character ISO-4217 code. This field
+ // is not required if the event type is `refund`.
+ CurrencyCode string `protobuf:"bytes,5,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+}
+
+func (x *PurchaseTransaction) Reset() {
+ *x = PurchaseTransaction{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurchaseTransaction) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurchaseTransaction) ProtoMessage() {}
+
+func (x *PurchaseTransaction) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurchaseTransaction.ProtoReflect.Descriptor instead.
+func (*PurchaseTransaction) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurchaseTransaction) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PurchaseTransaction) GetRevenue() float32 {
+ if x != nil {
+ return x.Revenue
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetTax() float32 {
+ if x != nil {
+ return x.Tax
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2_user_event_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_user_event_proto_rawDesc = []byte{
+ 0x0a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 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,
+ 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, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x1a, 0x1e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
+ 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x06, 0x0a,
+ 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22,
+ 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x03, 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, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a,
+ 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e,
+ 0x74, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x4e, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18,
+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x74, 0x49, 0x64, 0x12, 0x5e, 0x0a,
+ 0x14, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61,
+ 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61,
+ 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a,
+ 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
+ 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x43,
+ 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18,
+ 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x20, 0x0a,
+ 0x0c, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x49, 0x64, 0x12,
+ 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
+ 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x1a, 0x66, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
+ 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x01, 0x0a, 0x0d, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x3e, 0x0a, 0x07,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x08,
+ 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x71, 0x75, 0x61,
+ 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61,
+ 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
+ 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a,
+ 0x07, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03,
+ 0x74, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x74, 0x61, 0x78, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f,
+ 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c,
+ 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x42, 0xc3, 0x01, 0x0a,
+ 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x0e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
+ 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45,
+ 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a,
+ 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a,
+ 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_user_event_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_user_event_proto_rawDescData = file_google_cloud_retail_v2_user_event_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_user_event_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_user_event_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_user_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_user_event_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_user_event_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_user_event_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2_user_event_proto_goTypes = []interface{}{
+ (*UserEvent)(nil), // 0: google.cloud.retail.v2.UserEvent
+ (*ProductDetail)(nil), // 1: google.cloud.retail.v2.ProductDetail
+ (*PurchaseTransaction)(nil), // 2: google.cloud.retail.v2.PurchaseTransaction
+ nil, // 3: google.cloud.retail.v2.UserEvent.AttributesEntry
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*UserInfo)(nil), // 5: google.cloud.retail.v2.UserInfo
+ (*Product)(nil), // 6: google.cloud.retail.v2.Product
+ (*wrapperspb.Int32Value)(nil), // 7: google.protobuf.Int32Value
+ (*CustomAttribute)(nil), // 8: google.cloud.retail.v2.CustomAttribute
+}
+var file_google_cloud_retail_v2_user_event_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2.UserEvent.event_time:type_name -> google.protobuf.Timestamp
+ 1, // 1: google.cloud.retail.v2.UserEvent.product_details:type_name -> google.cloud.retail.v2.ProductDetail
+ 3, // 2: google.cloud.retail.v2.UserEvent.attributes:type_name -> google.cloud.retail.v2.UserEvent.AttributesEntry
+ 2, // 3: google.cloud.retail.v2.UserEvent.purchase_transaction:type_name -> google.cloud.retail.v2.PurchaseTransaction
+ 5, // 4: google.cloud.retail.v2.UserEvent.user_info:type_name -> google.cloud.retail.v2.UserInfo
+ 6, // 5: google.cloud.retail.v2.ProductDetail.product:type_name -> google.cloud.retail.v2.Product
+ 7, // 6: google.cloud.retail.v2.ProductDetail.quantity:type_name -> google.protobuf.Int32Value
+ 8, // 7: google.cloud.retail.v2.UserEvent.AttributesEntry.value:type_name -> google.cloud.retail.v2.CustomAttribute
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_user_event_proto_init() }
+func file_google_cloud_retail_v2_user_event_proto_init() {
+ if File_google_cloud_retail_v2_user_event_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_common_proto_init()
+ file_google_cloud_retail_v2_product_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_user_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEvent); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductDetail); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurchaseTransaction); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_user_event_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2_user_event_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_user_event_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2_user_event_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_user_event_proto = out.File
+ file_google_cloud_retail_v2_user_event_proto_rawDesc = nil
+ file_google_cloud_retail_v2_user_event_proto_goTypes = nil
+ file_google_cloud_retail_v2_user_event_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2/user_event_service.pb.go b/googleapis/cloud/retail/v2/user_event_service.pb.go
new file mode 100644
index 000000000..0bf4f0799
--- /dev/null
+++ b/googleapis/cloud/retail/v2/user_event_service.pb.go
@@ -0,0 +1,964 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2/user_event_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ httpbody "google.golang.org/genproto/googleapis/api/httpbody"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ 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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The scope of events to be rejoined with latest catalog. If the rejoining
+// aims at reducing number of unjoined events, set UserEventRejoinScope to
+// UNJOINED_EVENTS. If the rejoining aims at correcting catalog information
+// in joined_events, set UserEventRejoinScope to JOINED_EVENTS. If all events
+// needs to be rejoined, set UserEventRejoinScope to
+// USER_EVENT_REJOIN_SCOPE_UNSPECIFIED.
+type RejoinUserEventsRequest_UserEventRejoinScope int32
+
+const (
+ // Rejoin catalogs with all events including both joined events and
+ // unjoined events.
+ RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED RejoinUserEventsRequest_UserEventRejoinScope = 0
+ // Only rejoin catalogs with joined events.
+ RejoinUserEventsRequest_JOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 1
+ // Only rejoin catalogs with unjoined events.
+ RejoinUserEventsRequest_UNJOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 2
+)
+
+// Enum value maps for RejoinUserEventsRequest_UserEventRejoinScope.
+var (
+ RejoinUserEventsRequest_UserEventRejoinScope_name = map[int32]string{
+ 0: "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED",
+ 1: "JOINED_EVENTS",
+ 2: "UNJOINED_EVENTS",
+ }
+ RejoinUserEventsRequest_UserEventRejoinScope_value = map[string]int32{
+ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED": 0,
+ "JOINED_EVENTS": 1,
+ "UNJOINED_EVENTS": 2,
+ }
+)
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Enum() *RejoinUserEventsRequest_UserEventRejoinScope {
+ p := new(RejoinUserEventsRequest_UserEventRejoinScope)
+ *p = x
+ return p
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2_user_event_service_proto_enumTypes[0].Descriptor()
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2_user_event_service_proto_enumTypes[0]
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest_UserEventRejoinScope.Descriptor instead.
+func (RejoinUserEventsRequest_UserEventRejoinScope) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{2, 0}
+}
+
+// Request message for WriteUserEvent method.
+type WriteUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore resource name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. User event to write.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+}
+
+func (x *WriteUserEventRequest) Reset() {
+ *x = WriteUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WriteUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WriteUserEventRequest) ProtoMessage() {}
+
+func (x *WriteUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WriteUserEventRequest.ProtoReflect.Descriptor instead.
+func (*WriteUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *WriteUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *WriteUserEventRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+// Request message for CollectUserEvent method.
+type CollectUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. URL encoded UserEvent proto.
+ UserEvent string `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // The url including cgi-parameters but excluding the hash fragment. The URL
+ // must be truncated to 1.5K bytes to conservatively be under the 2K bytes.
+ // This is often more useful than the referer url, because many browsers only
+ // send the domain for 3rd party requests.
+ Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The event timestamp in milliseconds. This prevents browser caching of
+ // otherwise identical get requests. The name is abbreviated to reduce the
+ // payload bytes.
+ Ets int64 `protobuf:"varint,4,opt,name=ets,proto3" json:"ets,omitempty"`
+}
+
+func (x *CollectUserEventRequest) Reset() {
+ *x = CollectUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CollectUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CollectUserEventRequest) ProtoMessage() {}
+
+func (x *CollectUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CollectUserEventRequest.ProtoReflect.Descriptor instead.
+func (*CollectUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *CollectUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUserEvent() string {
+ if x != nil {
+ return x.UserEvent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetEts() int64 {
+ if x != nil {
+ return x.Ets
+ }
+ return 0
+}
+
+// Request message for CatalogRejoin method.
+type RejoinUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of user event, such as
+ // "projects/*/locations/*/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The type of the catalog rejoin to define the scope and range of
+ // the user events to be rejoined with catalog items.
+ UserEventRejoinScope RejoinUserEventsRequest_UserEventRejoinScope `protobuf:"varint,2,opt,name=user_event_rejoin_scope,json=userEventRejoinScope,proto3,enum=google.cloud.retail.v2.RejoinUserEventsRequest_UserEventRejoinScope" json:"user_event_rejoin_scope,omitempty"`
+}
+
+func (x *RejoinUserEventsRequest) Reset() {
+ *x = RejoinUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsRequest) ProtoMessage() {}
+
+func (x *RejoinUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RejoinUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *RejoinUserEventsRequest) GetUserEventRejoinScope() RejoinUserEventsRequest_UserEventRejoinScope {
+ if x != nil {
+ return x.UserEventRejoinScope
+ }
+ return RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED
+}
+
+// Response message for RejoinUserEvents method.
+type RejoinUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of user events that were joined with latest catalog items.
+ RejoinedUserEventsCount int64 `protobuf:"varint,1,opt,name=rejoined_user_events_count,json=rejoinedUserEventsCount,proto3" json:"rejoined_user_events_count,omitempty"`
+}
+
+func (x *RejoinUserEventsResponse) Reset() {
+ *x = RejoinUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsResponse) ProtoMessage() {}
+
+func (x *RejoinUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *RejoinUserEventsResponse) GetRejoinedUserEventsCount() int64 {
+ if x != nil {
+ return x.RejoinedUserEventsCount
+ }
+ return 0
+}
+
+// Metadata for RejoinUserEvents method.
+type RejoinUserEventsMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RejoinUserEventsMetadata) Reset() {
+ *x = RejoinUserEventsMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsMetadata) ProtoMessage() {}
+
+func (x *RejoinUserEventsMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2_user_event_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsMetadata.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP(), []int{4}
+}
+
+var File_google_cloud_retail_v2_user_event_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2_user_event_service_proto_rawDesc = []byte{
+ 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 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, 0x68, 0x74,
+ 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x7b, 0x0a, 0x15, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x7e,
+ 0x0a, 0x17, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
+ 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03,
+ 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x74, 0x73, 0x22, 0xa2,
+ 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x63,
+ 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x42,
+ 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x67, 0x0a, 0x14, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f,
+ 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
+ 0x5f, 0x52, 0x45, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x55, 0x4e,
+ 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4a,
+ 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x01, 0x12, 0x13,
+ 0x0a, 0x0f, 0x55, 0x4e, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
+ 0x53, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x17, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1a, 0x0a, 0x18,
+ 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0xbf, 0x09, 0x0a, 0x10, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x01,
+ 0x0a, 0x0e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x22, 0x3f, 0x2f, 0x76, 0x32, 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, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x0a, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c,
+ 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42,
+ 0x6f, 0x64, 0x79, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, 0x41, 0x2f, 0x76, 0x32,
+ 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x86,
+ 0x02, 0x0a, 0x0f, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x72, 0x67,
+ 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xa3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x32, 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, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41,
+ 0x56, 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x8b, 0x02, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xa6, 0x01, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x22, 0x40, 0x2f, 0x76, 0x32, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x58, 0x0a, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 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, 0x82, 0x01, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x45, 0x22, 0x40, 0x2f, 0x76, 0x32, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x72,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x34, 0x0a, 0x18, 0x52, 0x65, 0x6a,
+ 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a,
+ 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xca, 0x01, 0x0a, 0x1a, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2_user_event_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2_user_event_service_proto_rawDescData = file_google_cloud_retail_v2_user_event_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2_user_event_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2_user_event_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2_user_event_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_user_event_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2_user_event_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2_user_event_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_cloud_retail_v2_user_event_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2_user_event_service_proto_goTypes = []interface{}{
+ (RejoinUserEventsRequest_UserEventRejoinScope)(0), // 0: google.cloud.retail.v2.RejoinUserEventsRequest.UserEventRejoinScope
+ (*WriteUserEventRequest)(nil), // 1: google.cloud.retail.v2.WriteUserEventRequest
+ (*CollectUserEventRequest)(nil), // 2: google.cloud.retail.v2.CollectUserEventRequest
+ (*RejoinUserEventsRequest)(nil), // 3: google.cloud.retail.v2.RejoinUserEventsRequest
+ (*RejoinUserEventsResponse)(nil), // 4: google.cloud.retail.v2.RejoinUserEventsResponse
+ (*RejoinUserEventsMetadata)(nil), // 5: google.cloud.retail.v2.RejoinUserEventsMetadata
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2.UserEvent
+ (*PurgeUserEventsRequest)(nil), // 7: google.cloud.retail.v2.PurgeUserEventsRequest
+ (*ImportUserEventsRequest)(nil), // 8: google.cloud.retail.v2.ImportUserEventsRequest
+ (*httpbody.HttpBody)(nil), // 9: google.api.HttpBody
+ (*longrunning.Operation)(nil), // 10: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2_user_event_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2.WriteUserEventRequest.user_event:type_name -> google.cloud.retail.v2.UserEvent
+ 0, // 1: google.cloud.retail.v2.RejoinUserEventsRequest.user_event_rejoin_scope:type_name -> google.cloud.retail.v2.RejoinUserEventsRequest.UserEventRejoinScope
+ 1, // 2: google.cloud.retail.v2.UserEventService.WriteUserEvent:input_type -> google.cloud.retail.v2.WriteUserEventRequest
+ 2, // 3: google.cloud.retail.v2.UserEventService.CollectUserEvent:input_type -> google.cloud.retail.v2.CollectUserEventRequest
+ 7, // 4: google.cloud.retail.v2.UserEventService.PurgeUserEvents:input_type -> google.cloud.retail.v2.PurgeUserEventsRequest
+ 8, // 5: google.cloud.retail.v2.UserEventService.ImportUserEvents:input_type -> google.cloud.retail.v2.ImportUserEventsRequest
+ 3, // 6: google.cloud.retail.v2.UserEventService.RejoinUserEvents:input_type -> google.cloud.retail.v2.RejoinUserEventsRequest
+ 6, // 7: google.cloud.retail.v2.UserEventService.WriteUserEvent:output_type -> google.cloud.retail.v2.UserEvent
+ 9, // 8: google.cloud.retail.v2.UserEventService.CollectUserEvent:output_type -> google.api.HttpBody
+ 10, // 9: google.cloud.retail.v2.UserEventService.PurgeUserEvents:output_type -> google.longrunning.Operation
+ 10, // 10: google.cloud.retail.v2.UserEventService.ImportUserEvents:output_type -> google.longrunning.Operation
+ 10, // 11: google.cloud.retail.v2.UserEventService.RejoinUserEvents:output_type -> google.longrunning.Operation
+ 7, // [7:12] is the sub-list for method output_type
+ 2, // [2:7] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2_user_event_service_proto_init() }
+func file_google_cloud_retail_v2_user_event_service_proto_init() {
+ if File_google_cloud_retail_v2_user_event_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2_import_config_proto_init()
+ file_google_cloud_retail_v2_purge_config_proto_init()
+ file_google_cloud_retail_v2_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2_user_event_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WriteUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CollectUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2_user_event_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2_user_event_service_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2_user_event_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2_user_event_service_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2_user_event_service_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2_user_event_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2_user_event_service_proto = out.File
+ file_google_cloud_retail_v2_user_event_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2_user_event_service_proto_goTypes = nil
+ file_google_cloud_retail_v2_user_event_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// UserEventServiceClient is the client API for UserEventService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type UserEventServiceClient interface {
+ // Writes a single user event.
+ WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type userEventServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewUserEventServiceClient(cc grpc.ClientConnInterface) UserEventServiceClient {
+ return &userEventServiceClient{cc}
+}
+
+func (c *userEventServiceClient) WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error) {
+ out := new(UserEvent)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.UserEventService/WriteUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) {
+ out := new(httpbody.HttpBody)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.UserEventService/CollectUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.UserEventService/PurgeUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.UserEventService/ImportUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.UserEventService/RejoinUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// UserEventServiceServer is the server API for UserEventService service.
+type UserEventServiceServer interface {
+ // Writes a single user event.
+ WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedUserEventServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedUserEventServiceServer struct {
+}
+
+func (*UnimplementedUserEventServiceServer) WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method WriteUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CollectUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RejoinUserEvents not implemented")
+}
+
+func RegisterUserEventServiceServer(s *grpc.Server, srv UserEventServiceServer) {
+ s.RegisterService(&_UserEventService_serviceDesc, srv)
+}
+
+func _UserEventService_WriteUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(WriteUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.UserEventService/WriteUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, req.(*WriteUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_CollectUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CollectUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.UserEventService/CollectUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, req.(*CollectUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_PurgeUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.UserEventService/PurgeUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, req.(*PurgeUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_ImportUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.UserEventService/ImportUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, req.(*ImportUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_RejoinUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RejoinUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2.UserEventService/RejoinUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, req.(*RejoinUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _UserEventService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2.UserEventService",
+ HandlerType: (*UserEventServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "WriteUserEvent",
+ Handler: _UserEventService_WriteUserEvent_Handler,
+ },
+ {
+ MethodName: "CollectUserEvent",
+ Handler: _UserEventService_CollectUserEvent_Handler,
+ },
+ {
+ MethodName: "PurgeUserEvents",
+ Handler: _UserEventService_PurgeUserEvents_Handler,
+ },
+ {
+ MethodName: "ImportUserEvents",
+ Handler: _UserEventService_ImportUserEvents_Handler,
+ },
+ {
+ MethodName: "RejoinUserEvents",
+ Handler: _UserEventService_RejoinUserEvents_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2/user_event_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2alpha/catalog.pb.go b/googleapis/cloud/retail/v2alpha/catalog.pb.go
new file mode 100644
index 000000000..077f8eb0b
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/catalog.pb.go
@@ -0,0 +1,339 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/catalog.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Configures what level the product should be uploaded with regards to
+// how users will be send events and how predictions will be made.
+type ProductLevelConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The level of a [Catalog][google.cloud.retail.v2alpha.Catalog] at which the
+ // [UserEvent][google.cloud.retail.v2alpha.UserEvent]s are uploaded.
+ // Acceptable values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `primary` and
+ // [predict_product_level][google.cloud.retail.v2alpha.ProductLevelConfig.predict_product_level]
+ // is `variant`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ EventProductLevel string `protobuf:"bytes,1,opt,name=event_product_level,json=eventProductLevel,proto3" json:"event_product_level,omitempty"`
+ // The level of a [Catalog][google.cloud.retail.v2alpha.Catalog] at which the
+ // [PredictionService.Predict][google.cloud.retail.v2alpha.PredictionService.Predict]
+ // is called. Acceptable values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `variant` and
+ // [event_product_level][google.cloud.retail.v2alpha.ProductLevelConfig.event_product_level]
+ // is `primary`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ PredictProductLevel string `protobuf:"bytes,2,opt,name=predict_product_level,json=predictProductLevel,proto3" json:"predict_product_level,omitempty"`
+}
+
+func (x *ProductLevelConfig) Reset() {
+ *x = ProductLevelConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductLevelConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductLevelConfig) ProtoMessage() {}
+
+func (x *ProductLevelConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductLevelConfig.ProtoReflect.Descriptor instead.
+func (*ProductLevelConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_catalog_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ProductLevelConfig) GetEventProductLevel() string {
+ if x != nil {
+ return x.EventProductLevel
+ }
+ return ""
+}
+
+func (x *ProductLevelConfig) GetPredictProductLevel() string {
+ if x != nil {
+ return x.PredictProductLevel
+ }
+ return ""
+}
+
+// The catalog configuration.
+// Next ID: 5.
+type Catalog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Immutable. The fully qualified resource name of the catalog.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Required. Immutable. The catalog display name.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
+ // Required. The product level configuration.
+ ProductLevelConfig *ProductLevelConfig `protobuf:"bytes,4,opt,name=product_level_config,json=productLevelConfig,proto3" json:"product_level_config,omitempty"`
+}
+
+func (x *Catalog) Reset() {
+ *x = Catalog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Catalog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Catalog) ProtoMessage() {}
+
+func (x *Catalog) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Catalog.ProtoReflect.Descriptor instead.
+func (*Catalog) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_catalog_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Catalog) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Catalog) GetDisplayName() string {
+ if x != nil {
+ return x.DisplayName
+ }
+ return ""
+}
+
+func (x *Catalog) GetProductLevelConfig() *ProductLevelConfig {
+ if x != nil {
+ return x.ProductLevelConfig
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2alpha_catalog_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_catalog_proto_rawDesc = []byte{
+ 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 0x78, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76,
+ 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64,
+ 0x69, 0x63, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65,
+ 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x98, 0x02, 0x0a,
+ 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0,
+ 0x41, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x66, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65,
+ 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1d, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3a, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x42, 0xa6, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0c, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67,
+ 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02,
+ 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0xea, 0x41, 0x49, 0x0a, 0x1e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c,
+ 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 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,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_catalog_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_catalog_proto_rawDescData = file_google_cloud_retail_v2alpha_catalog_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_catalog_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_catalog_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_catalog_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_catalog_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_catalog_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2alpha_catalog_proto_goTypes = []interface{}{
+ (*ProductLevelConfig)(nil), // 0: google.cloud.retail.v2alpha.ProductLevelConfig
+ (*Catalog)(nil), // 1: google.cloud.retail.v2alpha.Catalog
+}
+var file_google_cloud_retail_v2alpha_catalog_proto_depIdxs = []int32{
+ 0, // 0: google.cloud.retail.v2alpha.Catalog.product_level_config:type_name -> google.cloud.retail.v2alpha.ProductLevelConfig
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_catalog_proto_init() }
+func file_google_cloud_retail_v2alpha_catalog_proto_init() {
+ if File_google_cloud_retail_v2alpha_catalog_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductLevelConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_catalog_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Catalog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_catalog_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_catalog_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_catalog_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_catalog_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_catalog_proto = out.File
+ file_google_cloud_retail_v2alpha_catalog_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_catalog_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_catalog_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/catalog_service.pb.go b/googleapis/cloud/retail/v2alpha/catalog_service.pb.go
new file mode 100644
index 000000000..b6cdbe68b
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/catalog_service.pb.go
@@ -0,0 +1,587 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/catalog_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2alpha.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The account resource name with an associated location.
+ //
+ // If the caller does not have permission to list
+ // [Catalog][google.cloud.retail.v2alpha.Catalog]s under this location,
+ // regardless of whether or not this location exists, a PERMISSION_DENIED
+ // error is returned.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of [Catalog][google.cloud.retail.v2alpha.Catalog]s to
+ // return. If unspecified, defaults to 50. The maximum allowed value is 1000.
+ // Values above 1000 will be coerced to 1000.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // A page token
+ // [ListCatalogsResponse.next_page_token][google.cloud.retail.v2alpha.ListCatalogsResponse.next_page_token],
+ // received from a previous
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2alpha.CatalogService.ListCatalogs]
+ // call. Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2alpha.CatalogService.ListCatalogs]
+ // must match the call that provided the page token. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+}
+
+func (x *ListCatalogsRequest) Reset() {
+ *x = ListCatalogsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsRequest) ProtoMessage() {}
+
+func (x *ListCatalogsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsRequest.ProtoReflect.Descriptor instead.
+func (*ListCatalogsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ListCatalogsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListCatalogsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListCatalogsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+// Response for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2alpha.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // All the customer's [Catalog][google.cloud.retail.v2alpha.Catalog]s.
+ Catalogs []*Catalog `protobuf:"bytes,1,rep,name=catalogs,proto3" json:"catalogs,omitempty"`
+ // A token that can be sent as
+ // [ListCatalogsRequest.page_token][google.cloud.retail.v2alpha.ListCatalogsRequest.page_token]
+ // to retrieve the next page. If this field is omitted, there are no
+ // subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+}
+
+func (x *ListCatalogsResponse) Reset() {
+ *x = ListCatalogsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsResponse) ProtoMessage() {}
+
+func (x *ListCatalogsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsResponse.ProtoReflect.Descriptor instead.
+func (*ListCatalogsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListCatalogsResponse) GetCatalogs() []*Catalog {
+ if x != nil {
+ return x.Catalogs
+ }
+ return nil
+}
+
+func (x *ListCatalogsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+// Request for
+// [CatalogService.UpdateCatalog][google.cloud.retail.v2alpha.CatalogService.UpdateCatalog]
+// method.
+type UpdateCatalogRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The [Catalog][google.cloud.retail.v2alpha.Catalog] to update.
+ //
+ // If the caller does not have permission to update the
+ // [Catalog][google.cloud.retail.v2alpha.Catalog], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Catalog][google.cloud.retail.v2alpha.Catalog] to update does not
+ // exist, a NOT_FOUND error is returned.
+ Catalog *Catalog `protobuf:"bytes,1,opt,name=catalog,proto3" json:"catalog,omitempty"`
+ // Indicates which fields in the provided
+ // [Catalog][google.cloud.retail.v2alpha.Catalog] to update. If not set, will
+ // only update the
+ // [Catalog.product_level_config][google.cloud.retail.v2alpha.Catalog.product_level_config]
+ // field, which is also the only currently supported field to update.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateCatalogRequest) Reset() {
+ *x = UpdateCatalogRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateCatalogRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateCatalogRequest) ProtoMessage() {}
+
+func (x *UpdateCatalogRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateCatalogRequest.ProtoReflect.Descriptor instead.
+func (*UpdateCatalogRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateCatalogRequest) GetCatalog() *Catalog {
+ if x != nil {
+ return x.Catalog
+ }
+ return nil
+}
+
+func (x *UpdateCatalogRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2alpha_catalog_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_catalog_service_proto_rawDesc = []byte{
+ 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x91, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20,
+ 0x0a, 0x1e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67,
+ 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a,
+ 0x08, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12,
+ 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61,
+ 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x43, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61,
+ 0x73, 0x6b, 0x32, 0xe2, 0x03, 0x0a, 0x0e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c,
+ 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0xca, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x60, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x44, 0x32, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x07, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0xda, 0x41, 0x13, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x49, 0xca, 0x41,
+ 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xe1, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x13, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
+ 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescData = file_google_cloud_retail_v2alpha_catalog_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_catalog_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_google_cloud_retail_v2alpha_catalog_service_proto_goTypes = []interface{}{
+ (*ListCatalogsRequest)(nil), // 0: google.cloud.retail.v2alpha.ListCatalogsRequest
+ (*ListCatalogsResponse)(nil), // 1: google.cloud.retail.v2alpha.ListCatalogsResponse
+ (*UpdateCatalogRequest)(nil), // 2: google.cloud.retail.v2alpha.UpdateCatalogRequest
+ (*Catalog)(nil), // 3: google.cloud.retail.v2alpha.Catalog
+ (*fieldmaskpb.FieldMask)(nil), // 4: google.protobuf.FieldMask
+}
+var file_google_cloud_retail_v2alpha_catalog_service_proto_depIdxs = []int32{
+ 3, // 0: google.cloud.retail.v2alpha.ListCatalogsResponse.catalogs:type_name -> google.cloud.retail.v2alpha.Catalog
+ 3, // 1: google.cloud.retail.v2alpha.UpdateCatalogRequest.catalog:type_name -> google.cloud.retail.v2alpha.Catalog
+ 4, // 2: google.cloud.retail.v2alpha.UpdateCatalogRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 3: google.cloud.retail.v2alpha.CatalogService.ListCatalogs:input_type -> google.cloud.retail.v2alpha.ListCatalogsRequest
+ 2, // 4: google.cloud.retail.v2alpha.CatalogService.UpdateCatalog:input_type -> google.cloud.retail.v2alpha.UpdateCatalogRequest
+ 1, // 5: google.cloud.retail.v2alpha.CatalogService.ListCatalogs:output_type -> google.cloud.retail.v2alpha.ListCatalogsResponse
+ 3, // 6: google.cloud.retail.v2alpha.CatalogService.UpdateCatalog:output_type -> google.cloud.retail.v2alpha.Catalog
+ 5, // [5:7] is the sub-list for method output_type
+ 3, // [3:5] 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_retail_v2alpha_catalog_service_proto_init() }
+func file_google_cloud_retail_v2alpha_catalog_service_proto_init() {
+ if File_google_cloud_retail_v2alpha_catalog_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_catalog_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateCatalogRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_catalog_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_catalog_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_catalog_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_catalog_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_catalog_service_proto = out.File
+ file_google_cloud_retail_v2alpha_catalog_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_catalog_service_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_catalog_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// CatalogServiceClient is the client API for CatalogService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type CatalogServiceClient interface {
+ // Lists all the [Catalog][google.cloud.retail.v2alpha.Catalog]s associated
+ // with the project.
+ ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2alpha.Catalog]s.
+ UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
+}
+
+type catalogServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewCatalogServiceClient(cc grpc.ClientConnInterface) CatalogServiceClient {
+ return &catalogServiceClient{cc}
+}
+
+func (c *catalogServiceClient) ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error) {
+ out := new(ListCatalogsResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.CatalogService/ListCatalogs", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *catalogServiceClient) UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
+ out := new(Catalog)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.CatalogService/UpdateCatalog", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// CatalogServiceServer is the server API for CatalogService service.
+type CatalogServiceServer interface {
+ // Lists all the [Catalog][google.cloud.retail.v2alpha.Catalog]s associated
+ // with the project.
+ ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2alpha.Catalog]s.
+ UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error)
+}
+
+// UnimplementedCatalogServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedCatalogServiceServer struct {
+}
+
+func (*UnimplementedCatalogServiceServer) ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListCatalogs not implemented")
+}
+func (*UnimplementedCatalogServiceServer) UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateCatalog not implemented")
+}
+
+func RegisterCatalogServiceServer(s *grpc.Server, srv CatalogServiceServer) {
+ s.RegisterService(&_CatalogService_serviceDesc, srv)
+}
+
+func _CatalogService_ListCatalogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListCatalogsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.CatalogService/ListCatalogs",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, req.(*ListCatalogsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _CatalogService_UpdateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateCatalogRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.CatalogService/UpdateCatalog",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, req.(*UpdateCatalogRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _CatalogService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2alpha.CatalogService",
+ HandlerType: (*CatalogServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListCatalogs",
+ Handler: _CatalogService_ListCatalogs_Handler,
+ },
+ {
+ MethodName: "UpdateCatalog",
+ Handler: _CatalogService_UpdateCatalog_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2alpha/catalog_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2alpha/common.pb.go b/googleapis/cloud/retail/v2alpha/common.pb.go
new file mode 100644
index 000000000..7c43a6301
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/common.pb.go
@@ -0,0 +1,1332 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/common.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// An intended audience of the [Product][google.cloud.retail.v2alpha.Product]
+// for whom it's sold.
+type Audience struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The genders of the audience. Strongly encouraged to use the standard
+ // values: "male", "female", "unisex".
+ //
+ // At most 5 values are allowed. Each value must be a UTF-8 encoded string
+ // with a length limit of 128 bytes. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ //
+ // Google Merchant Center property
+ // [gender](https://support.google.com/merchants/answer/6324479). Schema.org
+ // property
+ // [Product.audience.suggestedGender](https://schema.org/suggestedGender).
+ Genders []string `protobuf:"bytes,1,rep,name=genders,proto3" json:"genders,omitempty"`
+ // The age groups of the audience. Strongly encouraged to use the standard
+ // values: "newborn" (up to 3 months old), "infant" (3–12 months old),
+ // "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically
+ // teens or older).
+ //
+ // At most 5 values are allowed. Each value must be a UTF-8 encoded string
+ // with a length limit of 128 bytes. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ //
+ // Google Merchant Center property
+ // [age_group](https://support.google.com/merchants/answer/6324463).
+ // Schema.org property
+ // [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and
+ // [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
+ AgeGroups []string `protobuf:"bytes,2,rep,name=age_groups,json=ageGroups,proto3" json:"age_groups,omitempty"`
+}
+
+func (x *Audience) Reset() {
+ *x = Audience{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Audience) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Audience) ProtoMessage() {}
+
+func (x *Audience) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Audience.ProtoReflect.Descriptor instead.
+func (*Audience) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Audience) GetGenders() []string {
+ if x != nil {
+ return x.Genders
+ }
+ return nil
+}
+
+func (x *Audience) GetAgeGroups() []string {
+ if x != nil {
+ return x.AgeGroups
+ }
+ return nil
+}
+
+// The color information of a [Product][google.cloud.retail.v2alpha.Product].
+type ColorInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The standard color families. Strongly recommended to use the following
+ // standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple",
+ // "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and
+ // "Mixed". Normally it is expected to have only 1 color family. May consider
+ // using single "Mixed" instead of multiple values.
+ //
+ // A maximum of 5 values are allowed. Each value must be a UTF-8 encoded
+ // string with a length limit of 128 bytes. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Google Merchant Center property
+ // [color](https://support.google.com/merchants/answer/6324487). Schema.org
+ // property [Product.color](https://schema.org/color).
+ ColorFamilies []string `protobuf:"bytes,1,rep,name=color_families,json=colorFamilies,proto3" json:"color_families,omitempty"`
+ // The color display names, which may be different from standard color family
+ // names, such as the color aliases used in the website frontend. Normally
+ // it is expected to have only 1 color. May consider using single "Mixed"
+ // instead of multiple values.
+ //
+ // A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded
+ // string with a length limit of 128 bytes. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Google Merchant Center property
+ // [color](https://support.google.com/merchants/answer/6324487). Schema.org
+ // property [Product.color](https://schema.org/color).
+ Colors []string `protobuf:"bytes,2,rep,name=colors,proto3" json:"colors,omitempty"`
+}
+
+func (x *ColorInfo) Reset() {
+ *x = ColorInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ColorInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ColorInfo) ProtoMessage() {}
+
+func (x *ColorInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ColorInfo.ProtoReflect.Descriptor instead.
+func (*ColorInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ColorInfo) GetColorFamilies() []string {
+ if x != nil {
+ return x.ColorFamilies
+ }
+ return nil
+}
+
+func (x *ColorInfo) GetColors() []string {
+ if x != nil {
+ return x.Colors
+ }
+ return nil
+}
+
+// A custom attribute that is not explicitly modeled in
+// [Product][google.cloud.retail.v2alpha.Product]].
+type CustomAttribute struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The textual values of this custom attribute. For example, `["yellow",
+ // "green"]` when the key is "color".
+ //
+ // At most 400 values are allowed. Empty values are not allowed. Each value
+ // must be a UTF-8 encoded string with a length limit of 256 bytes. Otherwise,
+ // an INVALID_ARGUMENT error is returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2alpha.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2alpha.CustomAttribute.numbers] should be
+ // set. Otherwise, a FAILED_PRECONDITION error is returned.
+ Text []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
+ // The numerical values of this custom attribute. For example, `[2.3, 15.4]`
+ // when the key is "lengths_cm".
+ //
+ // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2alpha.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2alpha.CustomAttribute.numbers] should be
+ // set. Otherwise, a FAILED_PRECONDITION error is returned.
+ Numbers []float64 `protobuf:"fixed64,2,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
+ // If true, custom attribute values are searchable by text queries in
+ // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search].
+ //
+ // Only set if type [text][google.cloud.retail.v2alpha.CustomAttribute.text]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ Searchable bool `protobuf:"varint,3,opt,name=searchable,proto3" json:"searchable,omitempty"`
+ // If true, custom attribute values are indexed, so that it can be filtered,
+ // facted or boosted in
+ // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search].
+ //
+ // See
+ // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter],
+ // [SearchRequest.facet_specs][google.cloud.retail.v2alpha.SearchRequest.facet_specs]
+ // and
+ // [SearchRequest.boost_spec][google.cloud.retail.v2alpha.SearchRequest.boost_spec]
+ // for more details.
+ Indexable bool `protobuf:"varint,4,opt,name=indexable,proto3" json:"indexable,omitempty"`
+}
+
+func (x *CustomAttribute) Reset() {
+ *x = CustomAttribute{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CustomAttribute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CustomAttribute) ProtoMessage() {}
+
+func (x *CustomAttribute) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CustomAttribute.ProtoReflect.Descriptor instead.
+func (*CustomAttribute) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *CustomAttribute) GetText() []string {
+ if x != nil {
+ return x.Text
+ }
+ return nil
+}
+
+func (x *CustomAttribute) GetNumbers() []float64 {
+ if x != nil {
+ return x.Numbers
+ }
+ return nil
+}
+
+func (x *CustomAttribute) GetSearchable() bool {
+ if x != nil {
+ return x.Searchable
+ }
+ return false
+}
+
+func (x *CustomAttribute) GetIndexable() bool {
+ if x != nil {
+ return x.Indexable
+ }
+ return false
+}
+
+// Fulfillment information, such as the store IDs for in-store pickup or region
+// IDs for different shipping methods.
+type FulfillmentInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The fulfillment type, including commonly used types (such as pickup in
+ // store and same day delivery), and custom types. Customers have to map
+ // custom types to their display names before rendering UI.
+ //
+ // Suppored values:
+ //
+ // * "pickup-in-store"
+ // * "ship-to-store"
+ // * "same-day-delivery"
+ // * "next-day-delivery"
+ // * "custom-type-1"
+ // * "custom-type-2"
+ // * "custom-type-3"
+ // * "custom-type-4"
+ // * "custom-type-5"
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ // The IDs for this [type][google.cloud.retail.v2alpha.FulfillmentInfo.type],
+ // such as the store IDs for [FulfillmentInfo.Type.PICKUP_IN_STORE][] or the
+ // region IDs for [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
+ //
+ // A maximum of 2000 values are allowed. Each value must be a string with a
+ // length limit of 10 bytes, matching the pattern [a-zA-Z0-9_-]+, such as
+ // "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
+ PlaceIds []string `protobuf:"bytes,2,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"`
+}
+
+func (x *FulfillmentInfo) Reset() {
+ *x = FulfillmentInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FulfillmentInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FulfillmentInfo) ProtoMessage() {}
+
+func (x *FulfillmentInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FulfillmentInfo.ProtoReflect.Descriptor instead.
+func (*FulfillmentInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *FulfillmentInfo) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+func (x *FulfillmentInfo) GetPlaceIds() []string {
+ if x != nil {
+ return x.PlaceIds
+ }
+ return nil
+}
+
+// [Product][google.cloud.retail.v2alpha.Product] thumbnail/detail image.
+type Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. URI of the image.
+ //
+ // This field must be a valid UTF-8 encoded URI with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](http://schema.org/image).
+ Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Height of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
+ // Width of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
+}
+
+func (x *Image) Reset() {
+ *x = Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Image) ProtoMessage() {}
+
+func (x *Image) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Image.ProtoReflect.Descriptor instead.
+func (*Image) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *Image) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Image) GetHeight() int32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *Image) GetWidth() int32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+// A floating point interval.
+type Interval struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The lower bound of the interval. If neither of the min fields are set, then
+ // the lower bound is negative infinity.
+ //
+ // This field must be not larger than
+ // [max][google.cloud.retail.v2alpha.Interval.max]. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Types that are assignable to Min:
+ // *Interval_Minimum
+ // *Interval_ExclusiveMinimum
+ Min isInterval_Min `protobuf_oneof:"min"`
+ // The upper bound of the interval. If neither of the max fields are set, then
+ // the upper bound is positive infinity.
+ //
+ // This field must be not smaller than
+ // [min][google.cloud.retail.v2alpha.Interval.min]. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Types that are assignable to Max:
+ // *Interval_Maximum
+ // *Interval_ExclusiveMaximum
+ Max isInterval_Max `protobuf_oneof:"max"`
+}
+
+func (x *Interval) Reset() {
+ *x = Interval{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Interval) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Interval) ProtoMessage() {}
+
+func (x *Interval) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Interval.ProtoReflect.Descriptor instead.
+func (*Interval) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{5}
+}
+
+func (m *Interval) GetMin() isInterval_Min {
+ if m != nil {
+ return m.Min
+ }
+ return nil
+}
+
+func (x *Interval) GetMinimum() float64 {
+ if x, ok := x.GetMin().(*Interval_Minimum); ok {
+ return x.Minimum
+ }
+ return 0
+}
+
+func (x *Interval) GetExclusiveMinimum() float64 {
+ if x, ok := x.GetMin().(*Interval_ExclusiveMinimum); ok {
+ return x.ExclusiveMinimum
+ }
+ return 0
+}
+
+func (m *Interval) GetMax() isInterval_Max {
+ if m != nil {
+ return m.Max
+ }
+ return nil
+}
+
+func (x *Interval) GetMaximum() float64 {
+ if x, ok := x.GetMax().(*Interval_Maximum); ok {
+ return x.Maximum
+ }
+ return 0
+}
+
+func (x *Interval) GetExclusiveMaximum() float64 {
+ if x, ok := x.GetMax().(*Interval_ExclusiveMaximum); ok {
+ return x.ExclusiveMaximum
+ }
+ return 0
+}
+
+type isInterval_Min interface {
+ isInterval_Min()
+}
+
+type Interval_Minimum struct {
+ // Inclusive lower bound.
+ Minimum float64 `protobuf:"fixed64,1,opt,name=minimum,proto3,oneof"`
+}
+
+type Interval_ExclusiveMinimum struct {
+ // Exclusive lower bound.
+ ExclusiveMinimum float64 `protobuf:"fixed64,2,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3,oneof"`
+}
+
+func (*Interval_Minimum) isInterval_Min() {}
+
+func (*Interval_ExclusiveMinimum) isInterval_Min() {}
+
+type isInterval_Max interface {
+ isInterval_Max()
+}
+
+type Interval_Maximum struct {
+ // Inclusive upper bound.
+ Maximum float64 `protobuf:"fixed64,3,opt,name=maximum,proto3,oneof"`
+}
+
+type Interval_ExclusiveMaximum struct {
+ // Exclusive upper bound.
+ ExclusiveMaximum float64 `protobuf:"fixed64,4,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3,oneof"`
+}
+
+func (*Interval_Maximum) isInterval_Max() {}
+
+func (*Interval_ExclusiveMaximum) isInterval_Max() {}
+
+// The price information of a [Product][google.cloud.retail.v2alpha.Product].
+type PriceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The 3-letter currency code defined in [ISO
+ // 4217][https://www.iso.org/iso-4217-currency-codes.html].
+ //
+ // If this field is an unrecognizable currency code, an INVALID_ARGUMENT
+ // error is returned.
+ CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+ // Price of the product.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ // Schema.org property
+ // [Offer.priceSpecification](https://schema.org/priceSpecification).
+ Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"`
+ // Price of the product without any discount. If zero, by default set to be
+ // the [price][google.cloud.retail.v2alpha.PriceInfo.price].
+ OriginalPrice float32 `protobuf:"fixed32,3,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
+ // The costs associated with the sale of a particular product. Used for gross
+ // profit reporting.
+ //
+ // * Profit = [price][google.cloud.retail.v2alpha.PriceInfo.price] -
+ // [cost][google.cloud.retail.v2alpha.PriceInfo.cost]
+ //
+ // Google Merchant Center property
+ // [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895)
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+ // The timestamp when the [price][google.cloud.retail.v2alpha.PriceInfo.price]
+ // starts to be effective. This can be set as a future timestamp, and the
+ // [price][google.cloud.retail.v2alpha.PriceInfo.price] is only used for
+ // search after
+ // [price_effective_time][google.cloud.retail.v2alpha.PriceInfo.price_effective_time].
+ // If so, the
+ // [original_price][google.cloud.retail.v2alpha.PriceInfo.original_price] must
+ // be set and
+ // [original_price][google.cloud.retail.v2alpha.PriceInfo.original_price] is
+ // used before
+ // [price_effective_time][google.cloud.retail.v2alpha.PriceInfo.price_effective_time].
+ //
+ // Do not set if [price][google.cloud.retail.v2alpha.PriceInfo.price] is
+ // always effective because it will cause additional latency during search.
+ PriceEffectiveTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=price_effective_time,json=priceEffectiveTime,proto3" json:"price_effective_time,omitempty"`
+ // The timestamp when the [price][google.cloud.retail.v2alpha.PriceInfo.price]
+ // stops to be effective. The
+ // [price][google.cloud.retail.v2alpha.PriceInfo.price] is used for search
+ // before
+ // [price_expire_time][google.cloud.retail.v2alpha.PriceInfo.price_expire_time].
+ // If this field is set, the
+ // [original_price][google.cloud.retail.v2alpha.PriceInfo.original_price] must
+ // be set and
+ // [original_price][google.cloud.retail.v2alpha.PriceInfo.original_price] is
+ // used after
+ // [price_expire_time][google.cloud.retail.v2alpha.PriceInfo.price_expire_time].
+ //
+ // Do not set if [price][google.cloud.retail.v2alpha.PriceInfo.price] is
+ // always effective because it will cause additional latency during search.
+ PriceExpireTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=price_expire_time,json=priceExpireTime,proto3" json:"price_expire_time,omitempty"`
+ // Output only. The price range of all the child
+ // [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s grouped together on the
+ // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product] or
+ // [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
+ // [Product][google.cloud.retail.v2alpha.Product].
+ PriceRange *PriceInfo_PriceRange `protobuf:"bytes,7,opt,name=price_range,json=priceRange,proto3" json:"price_range,omitempty"`
+}
+
+func (x *PriceInfo) Reset() {
+ *x = PriceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PriceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PriceInfo) ProtoMessage() {}
+
+func (x *PriceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PriceInfo.ProtoReflect.Descriptor instead.
+func (*PriceInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *PriceInfo) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+func (x *PriceInfo) GetPrice() float32 {
+ if x != nil {
+ return x.Price
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetOriginalPrice() float32 {
+ if x != nil {
+ return x.OriginalPrice
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetPriceEffectiveTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.PriceEffectiveTime
+ }
+ return nil
+}
+
+func (x *PriceInfo) GetPriceExpireTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.PriceExpireTime
+ }
+ return nil
+}
+
+func (x *PriceInfo) GetPriceRange() *PriceInfo_PriceRange {
+ if x != nil {
+ return x.PriceRange
+ }
+ return nil
+}
+
+// The rating of a [Product][google.cloud.retail.v2alpha.Product].
+type Rating struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total number of ratings. This value is independent of the value of
+ // [rating_histogram][google.cloud.retail.v2alpha.Rating.rating_histogram].
+ //
+ // This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ RatingCount int32 `protobuf:"varint,1,opt,name=rating_count,json=ratingCount,proto3" json:"rating_count,omitempty"`
+ // The average rating of the [Product][google.cloud.retail.v2alpha.Product].
+ //
+ // The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ AverageRating float32 `protobuf:"fixed32,2,opt,name=average_rating,json=averageRating,proto3" json:"average_rating,omitempty"`
+ // List of rating counts per rating value (index = rating - 1). The list is
+ // empty if there is no rating. If the list is non-empty, its size is
+ // always 5. Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // For example, [41, 14, 13, 47, 303]. It means that the [Product][] got 41
+ // ratings with 1 star, 14 ratings with 2 star, and so on.
+ RatingHistogram []int32 `protobuf:"varint,3,rep,packed,name=rating_histogram,json=ratingHistogram,proto3" json:"rating_histogram,omitempty"`
+}
+
+func (x *Rating) Reset() {
+ *x = Rating{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Rating) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Rating) ProtoMessage() {}
+
+func (x *Rating) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Rating.ProtoReflect.Descriptor instead.
+func (*Rating) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *Rating) GetRatingCount() int32 {
+ if x != nil {
+ return x.RatingCount
+ }
+ return 0
+}
+
+func (x *Rating) GetAverageRating() float32 {
+ if x != nil {
+ return x.AverageRating
+ }
+ return 0
+}
+
+func (x *Rating) GetRatingHistogram() []int32 {
+ if x != nil {
+ return x.RatingHistogram
+ }
+ return nil
+}
+
+// Information of an end user.
+type UserInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Highly recommended for logged-in users. Unique identifier for logged-in
+ // user, such as a user name.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ // The end user's IP address. This field is used to extract location
+ // information for personalization.
+ //
+ // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
+ // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2alpha.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2alpha.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
+ // User agent as included in the HTTP header.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 1 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the client side event reporting with
+ // GTM or JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2alpha.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2alpha.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
+ // True if the request is made directly from the end user, in which case the
+ // [ip_address][google.cloud.retail.v2alpha.UserInfo.ip_address] and
+ // [user_agent][google.cloud.retail.v2alpha.UserInfo.user_agent] can be
+ // populated from the HTTP request. This flag should be set only if the API
+ // request is made directly from the end user such as a mobile app (and not if
+ // a gateway or a server is processing and pushing the user events).
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2alpha.UserEventService.CollectUserEvent].
+ // Otherwise, a FAILED_PRECONDITION error is returned.
+ DirectUserRequest bool `protobuf:"varint,4,opt,name=direct_user_request,json=directUserRequest,proto3" json:"direct_user_request,omitempty"`
+}
+
+func (x *UserInfo) Reset() {
+ *x = UserInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserInfo) ProtoMessage() {}
+
+func (x *UserInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
+func (*UserInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *UserInfo) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *UserInfo) GetIpAddress() string {
+ if x != nil {
+ return x.IpAddress
+ }
+ return ""
+}
+
+func (x *UserInfo) GetUserAgent() string {
+ if x != nil {
+ return x.UserAgent
+ }
+ return ""
+}
+
+func (x *UserInfo) GetDirectUserRequest() bool {
+ if x != nil {
+ return x.DirectUserRequest
+ }
+ return false
+}
+
+// The price range of all
+// [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+// [Product][google.cloud.retail.v2alpha.Product] having the same
+// [Product.primary_product_id][google.cloud.retail.v2alpha.Product.primary_product_id].
+type PriceInfo_PriceRange struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The inclusive [Product.pricing_info.price][] interval of all
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product] having the same
+ // [Product.primary_product_id][google.cloud.retail.v2alpha.Product.primary_product_id].
+ Price *Interval `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
+ // The inclusive [Product.pricing_info.original_price][] internal of all
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product] having the same
+ // [Product.primary_product_id][google.cloud.retail.v2alpha.Product.primary_product_id].
+ OriginalPrice *Interval `protobuf:"bytes,2,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
+}
+
+func (x *PriceInfo_PriceRange) Reset() {
+ *x = PriceInfo_PriceRange{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PriceInfo_PriceRange) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PriceInfo_PriceRange) ProtoMessage() {}
+
+func (x *PriceInfo_PriceRange) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_common_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PriceInfo_PriceRange.ProtoReflect.Descriptor instead.
+func (*PriceInfo_PriceRange) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP(), []int{6, 0}
+}
+
+func (x *PriceInfo_PriceRange) GetPrice() *Interval {
+ if x != nil {
+ return x.Price
+ }
+ return nil
+}
+
+func (x *PriceInfo_PriceRange) GetOriginalPrice() *Interval {
+ if x != nil {
+ return x.OriginalPrice
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2alpha_common_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_common_proto_rawDesc = []byte{
+ 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 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, 0x43, 0x0a, 0x08, 0x41, 0x75, 0x64, 0x69, 0x65,
+ 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x09, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x4a, 0x0a, 0x09,
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c,
+ 0x6f, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73,
+ 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x22, 0x7d, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74,
+ 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12,
+ 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x01,
+ 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61,
+ 0x72, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73,
+ 0x65, 0x61, 0x72, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64,
+ 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e,
+ 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x42, 0x0a, 0x0f, 0x46, 0x75, 0x6c, 0x66, 0x69,
+ 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b,
+ 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x05, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x68,
+ 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xae, 0x01, 0x0a, 0x08, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
+ 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,
+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52,
+ 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x12, 0x1a, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x01, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2d, 0x0a,
+ 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d,
+ 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c,
+ 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x42, 0x05, 0x0a, 0x03,
+ 0x6d, 0x69, 0x6e, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x22, 0x8a, 0x04, 0x0a, 0x09, 0x50,
+ 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72,
+ 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72,
+ 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69,
+ 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
+ 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c,
+ 0x0a, 0x14, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x52, 0x12, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45,
+ 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 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, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65,
+ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61,
+ 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66,
+ 0x6f, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41,
+ 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x97, 0x01,
+ 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x05,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
+ 0x61, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x6f, 0x72, 0x69,
+ 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
+ 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7d, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e,
+ 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43,
+ 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f,
+ 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76,
+ 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x72,
+ 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x69, 0x73,
+ 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49,
+ 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69,
+ 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55,
+ 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0xd9, 0x01, 0x0a, 0x1f, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0b,
+ 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
+ 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_common_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_common_proto_rawDescData = file_google_cloud_retail_v2alpha_common_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_common_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_common_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_common_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_common_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_common_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_google_cloud_retail_v2alpha_common_proto_goTypes = []interface{}{
+ (*Audience)(nil), // 0: google.cloud.retail.v2alpha.Audience
+ (*ColorInfo)(nil), // 1: google.cloud.retail.v2alpha.ColorInfo
+ (*CustomAttribute)(nil), // 2: google.cloud.retail.v2alpha.CustomAttribute
+ (*FulfillmentInfo)(nil), // 3: google.cloud.retail.v2alpha.FulfillmentInfo
+ (*Image)(nil), // 4: google.cloud.retail.v2alpha.Image
+ (*Interval)(nil), // 5: google.cloud.retail.v2alpha.Interval
+ (*PriceInfo)(nil), // 6: google.cloud.retail.v2alpha.PriceInfo
+ (*Rating)(nil), // 7: google.cloud.retail.v2alpha.Rating
+ (*UserInfo)(nil), // 8: google.cloud.retail.v2alpha.UserInfo
+ (*PriceInfo_PriceRange)(nil), // 9: google.cloud.retail.v2alpha.PriceInfo.PriceRange
+ (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp
+}
+var file_google_cloud_retail_v2alpha_common_proto_depIdxs = []int32{
+ 10, // 0: google.cloud.retail.v2alpha.PriceInfo.price_effective_time:type_name -> google.protobuf.Timestamp
+ 10, // 1: google.cloud.retail.v2alpha.PriceInfo.price_expire_time:type_name -> google.protobuf.Timestamp
+ 9, // 2: google.cloud.retail.v2alpha.PriceInfo.price_range:type_name -> google.cloud.retail.v2alpha.PriceInfo.PriceRange
+ 5, // 3: google.cloud.retail.v2alpha.PriceInfo.PriceRange.price:type_name -> google.cloud.retail.v2alpha.Interval
+ 5, // 4: google.cloud.retail.v2alpha.PriceInfo.PriceRange.original_price:type_name -> google.cloud.retail.v2alpha.Interval
+ 5, // [5:5] is the sub-list for method output_type
+ 5, // [5:5] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_common_proto_init() }
+func file_google_cloud_retail_v2alpha_common_proto_init() {
+ if File_google_cloud_retail_v2alpha_common_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Audience); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ColorInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CustomAttribute); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FulfillmentInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Interval); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PriceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Rating); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PriceInfo_PriceRange); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2alpha_common_proto_msgTypes[5].OneofWrappers = []interface{}{
+ (*Interval_Minimum)(nil),
+ (*Interval_ExclusiveMinimum)(nil),
+ (*Interval_Maximum)(nil),
+ (*Interval_ExclusiveMaximum)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_common_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 10,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_common_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_common_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_common_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_common_proto = out.File
+ file_google_cloud_retail_v2alpha_common_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_common_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_common_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/export_config.pb.go b/googleapis/cloud/retail/v2alpha/export_config.pb.go
new file mode 100644
index 000000000..61e9f9415
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/export_config.pb.go
@@ -0,0 +1,1049 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/export_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The output configuration setting.
+type OutputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The configuration of destination for holding output data.
+ //
+ // Types that are assignable to Destination:
+ // *OutputConfig_GcsDestination_
+ // *OutputConfig_BigqueryDestination
+ Destination isOutputConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *OutputConfig) Reset() {
+ *x = OutputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig) ProtoMessage() {}
+
+func (x *OutputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead.
+func (*OutputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *OutputConfig) GetDestination() isOutputConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *OutputConfig) GetGcsDestination() *OutputConfig_GcsDestination {
+ if x, ok := x.GetDestination().(*OutputConfig_GcsDestination_); ok {
+ return x.GcsDestination
+ }
+ return nil
+}
+
+func (x *OutputConfig) GetBigqueryDestination() *OutputConfig_BigQueryDestination {
+ if x, ok := x.GetDestination().(*OutputConfig_BigqueryDestination); ok {
+ return x.BigqueryDestination
+ }
+ return nil
+}
+
+type isOutputConfig_Destination interface {
+ isOutputConfig_Destination()
+}
+
+type OutputConfig_GcsDestination_ struct {
+ // The Google Cloud Storage location where the output is to be written to.
+ GcsDestination *OutputConfig_GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"`
+}
+
+type OutputConfig_BigqueryDestination struct {
+ // The BigQuery location where the output is to be written to.
+ BigqueryDestination *OutputConfig_BigQueryDestination `protobuf:"bytes,2,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"`
+}
+
+func (*OutputConfig_GcsDestination_) isOutputConfig_Destination() {}
+
+func (*OutputConfig_BigqueryDestination) isOutputConfig_Destination() {}
+
+// Configuration of destination for Export related errors.
+type ExportErrorsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Errors destination.
+ //
+ // Types that are assignable to Destination:
+ // *ExportErrorsConfig_GcsPrefix
+ Destination isExportErrorsConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *ExportErrorsConfig) Reset() {
+ *x = ExportErrorsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportErrorsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportErrorsConfig) ProtoMessage() {}
+
+func (x *ExportErrorsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportErrorsConfig.ProtoReflect.Descriptor instead.
+func (*ExportErrorsConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (m *ExportErrorsConfig) GetDestination() isExportErrorsConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *ExportErrorsConfig) GetGcsPrefix() string {
+ if x, ok := x.GetDestination().(*ExportErrorsConfig_GcsPrefix); ok {
+ return x.GcsPrefix
+ }
+ return ""
+}
+
+type isExportErrorsConfig_Destination interface {
+ isExportErrorsConfig_Destination()
+}
+
+type ExportErrorsConfig_GcsPrefix struct {
+ // Google Cloud Storage path for import errors. This must be an empty,
+ // existing Cloud Storage bucket. Export errors will be written to a file in
+ // this bucket, one per line, as a JSON-encoded
+ // `google.rpc.Status` message.
+ GcsPrefix string `protobuf:"bytes,1,opt,name=gcs_prefix,json=gcsPrefix,proto3,oneof"`
+}
+
+func (*ExportErrorsConfig_GcsPrefix) isExportErrorsConfig_Destination() {}
+
+// Request message for ExportProducts method.
+type ExportProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required.
+ // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Unique identifier provided by client, within the ancestor
+ // dataset scope. Ensures idempotency for expensive long running operations.
+ // Server-generated if unspecified. Up to 128 characters long. This is
+ // returned as google.longrunning.Operation.name in the response.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Required. The desired output location of the data.
+ OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
+ // Filtering expression to specify restrictions over
+ // returned products. This is a sequence of terms, where each term applies
+ // some kind of a restriction to the returned products. Use this expression to
+ // restrict results to a specific time range, tag, stock state or filter
+ // products by product type.
+ // eg: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // lastModifiedTime<"2012-04-23T18:25:43.511Z" productType=primary
+ //
+ // We expect only 4 types of fields:
+ //
+ // * lastModifiedTime: this can be specified a maximum of 2 times, once
+ // with a
+ // less than operator and once with a greater than operator. The
+ // lastModifiedTime restrict should result in one contiguous valid last
+ // modified time range.
+ //
+ // * productType: supported values are 'primary' and 'variant'. Boolean
+ // operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // productType values by a space.
+ //
+ // * availability: supported values are IN_STOCK, OUT_OF_STOCK,
+ // PREORDER and BACKORDER. Boolean operators `OR` and `NOT` are
+ // supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // availability values by a space.
+ //
+ // * Tag expressions. Restricts output to products that match all of the
+ // specified tags. Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space. `-"tagA"` is also supported and is equivalent
+ // to `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded
+ // strings with a size limit of 1 KiB.
+ //
+ // Some examples of valid filters expressions:
+ //
+ // * Example 1: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // lastModifiedTime < "2012-04-23T18:30:43.511Z"
+ // * Example 2: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // productType = "variant"
+ // * Example 3: tag=("Red" OR "Blue") tag="New-Arrival"
+ // tag=(NOT "promotional")
+ // productType = "primary" lastModifiedTime <
+ // "2018-04-23T18:30:43.511Z"
+ // * Example 4: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // * Example 5: availability = (IN_STOCK OR BACKORDER)
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+}
+
+func (x *ExportProductsRequest) Reset() {
+ *x = ExportProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportProductsRequest) ProtoMessage() {}
+
+func (x *ExportProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportProductsRequest.ProtoReflect.Descriptor instead.
+func (*ExportProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ExportProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ExportProductsRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportProductsRequest) GetOutputConfig() *OutputConfig {
+ if x != nil {
+ return x.OutputConfig
+ }
+ return nil
+}
+
+func (x *ExportProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+// Request message for ExportUserEvents method.
+type ExportUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. "projects/1234/locations/global/catalogs/default_catalog"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Unique identifier provided by client, within the ancestor
+ // dataset scope. Ensures idempotency for expensive long running operations.
+ // Server-generated if unspecified. Up to 128 characters long. This is
+ // returned as google.longrunning.Operation.name in the response.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Required. The desired output location of the data.
+ OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
+ // Filtering expression to specify restrictions over
+ // returned events. This is a sequence of terms, where each term applies some
+ // kind of a restriction to the returned user events. Use this expression to
+ // restrict results to a specific time range, or filter events by eventType.
+ // eg: eventTime > "2012-04-23T18:25:43.511Z" eventsMissingCatalogItems
+ // eventTime<"2012-04-23T18:25:43.511Z" eventType=search
+ //
+ // We expect only 3 types of fields:
+ //
+ // * eventTime: this can be specified a maximum of 2 times, once with a
+ // less than operator and once with a greater than operator. The
+ // eventTime restrict should result in one contiguous valid eventTime
+ // range.
+ //
+ // * eventType: Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space.
+ //
+ // * eventsMissingCatalogItems: specifying this will restrict results
+ // to events for which catalog items were not found in the catalog. The
+ // default behavior is to return only those events for which catalog
+ // items were found.
+ //
+ // Some examples of valid filters expressions:
+ //
+ // * Example 1: eventTime > "2012-04-23T18:25:43.511Z"
+ // eventTime < "2012-04-23T18:30:43.511Z"
+ // * Example 2: eventTime > "2012-04-23T18:25:43.511Z"
+ // eventType = detail-page-view
+ // * Example 3: eventsMissingCatalogItems
+ // eventType = (NOT search) eventTime < "2018-04-23T18:30:43.511Z"
+ // * Example 4: eventTime > "2012-04-23T18:25:43.511Z"
+ // * Example 5: eventType = (search OR impression)
+ // * Example 6: eventsMissingCatalogItems
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+}
+
+func (x *ExportUserEventsRequest) Reset() {
+ *x = ExportUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportUserEventsRequest) ProtoMessage() {}
+
+func (x *ExportUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*ExportUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ExportUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ExportUserEventsRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportUserEventsRequest) GetOutputConfig() *OutputConfig {
+ if x != nil {
+ return x.OutputConfig
+ }
+ return nil
+}
+
+func (x *ExportUserEventsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+// Metadata related to the progress of the Export operation. This will be
+// returned by the google.longrunning.Operation.metadata field.
+type ExportMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name of the operation.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Id of the request / operation. This is parroting back the requestId that
+ // was passed in the request.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Operation last update time. If the operation is done, this is also the
+ // finish time.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+}
+
+func (x *ExportMetadata) Reset() {
+ *x = ExportMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportMetadata) ProtoMessage() {}
+
+func (x *ExportMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportMetadata.ProtoReflect.Descriptor instead.
+func (*ExportMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ExportMetadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ExportMetadata) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *ExportMetadata) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+// Response of the ExportProductsRequest. If the long running
+// operation is done, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ExportProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors in the request if set.
+ ErrorsConfig *ExportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ExportProductsResponse) Reset() {
+ *x = ExportProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportProductsResponse) ProtoMessage() {}
+
+func (x *ExportProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportProductsResponse.ProtoReflect.Descriptor instead.
+func (*ExportProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ExportProductsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ExportProductsResponse) GetErrorsConfig() *ExportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// Response of the ExportUserEventsRequest. If the long running
+// operation was successful, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ExportUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors if this field was set in
+ // the request.
+ ErrorsConfig *ExportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ExportUserEventsResponse) Reset() {
+ *x = ExportUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportUserEventsResponse) ProtoMessage() {}
+
+func (x *ExportUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*ExportUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ExportUserEventsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ExportUserEventsResponse) GetErrorsConfig() *ExportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// The Google Cloud Storage output destination configuration.
+type OutputConfig_GcsDestination struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The output uri prefix for saving output data to json files.
+ // Some mapping examples are as follows:
+ // output_uri_prefix sample output(assuming the object is foo.json)
+ // ======================== =============================================
+ // gs://bucket/ gs://bucket/foo.json
+ // gs://bucket/folder/ gs://bucket/folder/foo.json
+ // gs://bucket/folder/item_ gs://bucket/folder/item_foo.json
+ OutputUriPrefix string `protobuf:"bytes,1,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"`
+}
+
+func (x *OutputConfig_GcsDestination) Reset() {
+ *x = OutputConfig_GcsDestination{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig_GcsDestination) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig_GcsDestination) ProtoMessage() {}
+
+func (x *OutputConfig_GcsDestination) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig_GcsDestination.ProtoReflect.Descriptor instead.
+func (*OutputConfig_GcsDestination) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *OutputConfig_GcsDestination) GetOutputUriPrefix() string {
+ if x != nil {
+ return x.OutputUriPrefix
+ }
+ return ""
+}
+
+// The BigQuery output destination configuration.
+type OutputConfig_BigQueryDestination struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The ID of a BigQuery Dataset.
+ DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
+}
+
+func (x *OutputConfig_BigQueryDestination) Reset() {
+ *x = OutputConfig_BigQueryDestination{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig_BigQueryDestination) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig_BigQueryDestination) ProtoMessage() {}
+
+func (x *OutputConfig_BigQueryDestination) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig_BigQueryDestination.ProtoReflect.Descriptor instead.
+func (*OutputConfig_BigQueryDestination) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *OutputConfig_BigQueryDestination) GetDatasetId() string {
+ if x != nil {
+ return x.DatasetId
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2alpha_export_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_export_config_proto_rawDesc = []byte{
+ 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x65, 0x78,
+ 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 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, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0xef, 0x02, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75,
+ 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x12, 0x72, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x41, 0x0a, 0x0e,
+ 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f,
+ 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65,
+ 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f,
+ 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a,
+ 0x34, 0x0a, 0x13, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65,
+ 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61,
+ 0x73, 0x65, 0x74, 0x49, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72,
+ 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, 0x63,
+ 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
+ 0x52, 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x64,
+ 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x01, 0x0a, 0x15, 0x45,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64,
+ 0x12, 0x53, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xc2, 0x01,
+ 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x16, 0x0a, 0x06, 0x66, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x22, 0xbd, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
+ 0x6d, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a,
+ 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70,
+ 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f,
+ 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa9, 0x01, 0x0a,
+ 0x18, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72,
+ 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0xdf, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x11, 0x45, 0x78,
+ 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
+ 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
+ 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_export_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_export_config_proto_rawDescData = file_google_cloud_retail_v2alpha_export_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_export_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_export_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_export_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_export_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_export_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_export_config_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
+var file_google_cloud_retail_v2alpha_export_config_proto_goTypes = []interface{}{
+ (*OutputConfig)(nil), // 0: google.cloud.retail.v2alpha.OutputConfig
+ (*ExportErrorsConfig)(nil), // 1: google.cloud.retail.v2alpha.ExportErrorsConfig
+ (*ExportProductsRequest)(nil), // 2: google.cloud.retail.v2alpha.ExportProductsRequest
+ (*ExportUserEventsRequest)(nil), // 3: google.cloud.retail.v2alpha.ExportUserEventsRequest
+ (*ExportMetadata)(nil), // 4: google.cloud.retail.v2alpha.ExportMetadata
+ (*ExportProductsResponse)(nil), // 5: google.cloud.retail.v2alpha.ExportProductsResponse
+ (*ExportUserEventsResponse)(nil), // 6: google.cloud.retail.v2alpha.ExportUserEventsResponse
+ (*OutputConfig_GcsDestination)(nil), // 7: google.cloud.retail.v2alpha.OutputConfig.GcsDestination
+ (*OutputConfig_BigQueryDestination)(nil), // 8: google.cloud.retail.v2alpha.OutputConfig.BigQueryDestination
+ (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp
+ (*status.Status)(nil), // 10: google.rpc.Status
+}
+var file_google_cloud_retail_v2alpha_export_config_proto_depIdxs = []int32{
+ 7, // 0: google.cloud.retail.v2alpha.OutputConfig.gcs_destination:type_name -> google.cloud.retail.v2alpha.OutputConfig.GcsDestination
+ 8, // 1: google.cloud.retail.v2alpha.OutputConfig.bigquery_destination:type_name -> google.cloud.retail.v2alpha.OutputConfig.BigQueryDestination
+ 0, // 2: google.cloud.retail.v2alpha.ExportProductsRequest.output_config:type_name -> google.cloud.retail.v2alpha.OutputConfig
+ 0, // 3: google.cloud.retail.v2alpha.ExportUserEventsRequest.output_config:type_name -> google.cloud.retail.v2alpha.OutputConfig
+ 9, // 4: google.cloud.retail.v2alpha.ExportMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 9, // 5: google.cloud.retail.v2alpha.ExportMetadata.update_time:type_name -> google.protobuf.Timestamp
+ 10, // 6: google.cloud.retail.v2alpha.ExportProductsResponse.error_samples:type_name -> google.rpc.Status
+ 1, // 7: google.cloud.retail.v2alpha.ExportProductsResponse.errors_config:type_name -> google.cloud.retail.v2alpha.ExportErrorsConfig
+ 10, // 8: google.cloud.retail.v2alpha.ExportUserEventsResponse.error_samples:type_name -> google.rpc.Status
+ 1, // 9: google.cloud.retail.v2alpha.ExportUserEventsResponse.errors_config:type_name -> google.cloud.retail.v2alpha.ExportErrorsConfig
+ 10, // [10:10] is the sub-list for method output_type
+ 10, // [10:10] is the sub-list for method input_type
+ 10, // [10:10] is the sub-list for extension type_name
+ 10, // [10:10] is the sub-list for extension extendee
+ 0, // [0:10] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_export_config_proto_init() }
+func file_google_cloud_retail_v2alpha_export_config_proto_init() {
+ if File_google_cloud_retail_v2alpha_export_config_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportErrorsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig_GcsDestination); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig_BigQueryDestination); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*OutputConfig_GcsDestination_)(nil),
+ (*OutputConfig_BigqueryDestination)(nil),
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*ExportErrorsConfig_GcsPrefix)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_export_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 9,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_export_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_export_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_export_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_export_config_proto = out.File
+ file_google_cloud_retail_v2alpha_export_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_export_config_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_export_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/import_config.pb.go b/googleapis/cloud/retail/v2alpha/import_config.pb.go
new file mode 100644
index 000000000..99ab8a93b
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/import_config.pb.go
@@ -0,0 +1,1490 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/import_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Google Cloud Storage location for input content.
+// format.
+type GcsSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Google Cloud Storage URIs to input files. URI can be up to
+ // 2000 characters long. URIs can match the full object path (for example,
+ // gs://bucket/directory/object.json) or a pattern matching one or more
+ // files, such as gs://bucket/directory/*.json. A request can
+ // contain at most 100 files, and each file can be up to 2 GB. See
+ // [Importing product information](/recommendations-ai/docs/upload-catalog)
+ // for the expected file format and setup instructions.
+ InputUris []string `protobuf:"bytes,1,rep,name=input_uris,json=inputUris,proto3" json:"input_uris,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for product imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user events imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,2,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *GcsSource) Reset() {
+ *x = GcsSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GcsSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GcsSource) ProtoMessage() {}
+
+func (x *GcsSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GcsSource.ProtoReflect.Descriptor instead.
+func (*GcsSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GcsSource) GetInputUris() []string {
+ if x != nil {
+ return x.InputUris
+ }
+ return nil
+}
+
+func (x *GcsSource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// BigQuery source import data from.
+type BigQuerySource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The project id (can be project # or id) that the BigQuery source is in. If
+ // not specified, inherits the project id from the parent request.
+ ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ // Required. The BigQuery data set to copy the data from.
+ DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
+ // Required. The BigQuery table to copy the data from.
+ TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+ // Intermediate Cloud Storage directory used for the import. Can be specified
+ // if one wants to have the BigQuery export to a specific Cloud Storage
+ // directory.
+ GcsStagingDir string `protobuf:"bytes,3,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for catalog imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user event imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,4,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *BigQuerySource) Reset() {
+ *x = BigQuerySource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BigQuerySource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BigQuerySource) ProtoMessage() {}
+
+func (x *BigQuerySource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BigQuerySource.ProtoReflect.Descriptor instead.
+func (*BigQuerySource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *BigQuerySource) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDatasetId() string {
+ if x != nil {
+ return x.DatasetId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetTableId() string {
+ if x != nil {
+ return x.TableId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetGcsStagingDir() string {
+ if x != nil {
+ return x.GcsStagingDir
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// The inline source for the input config for ImportProducts method.
+type ProductInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of products to update/create. Recommended max of 10k items.
+ Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
+}
+
+func (x *ProductInlineSource) Reset() {
+ *x = ProductInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInlineSource) ProtoMessage() {}
+
+func (x *ProductInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInlineSource.ProtoReflect.Descriptor instead.
+func (*ProductInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ProductInlineSource) GetProducts() []*Product {
+ if x != nil {
+ return x.Products
+ }
+ return nil
+}
+
+// The inline source for the input config for ImportUserEvents method.
+type UserEventInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of user events to import. Recommended max of 10k items.
+ UserEvents []*UserEvent `protobuf:"bytes,1,rep,name=user_events,json=userEvents,proto3" json:"user_events,omitempty"`
+}
+
+func (x *UserEventInlineSource) Reset() {
+ *x = UserEventInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInlineSource) ProtoMessage() {}
+
+func (x *UserEventInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInlineSource.ProtoReflect.Descriptor instead.
+func (*UserEventInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UserEventInlineSource) GetUserEvents() []*UserEvent {
+ if x != nil {
+ return x.UserEvents
+ }
+ return nil
+}
+
+// Configuration of destination for Import related errors.
+type ImportErrorsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Errors destination.
+ //
+ // Types that are assignable to Destination:
+ // *ImportErrorsConfig_GcsPrefix
+ Destination isImportErrorsConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *ImportErrorsConfig) Reset() {
+ *x = ImportErrorsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportErrorsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportErrorsConfig) ProtoMessage() {}
+
+func (x *ImportErrorsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportErrorsConfig.ProtoReflect.Descriptor instead.
+func (*ImportErrorsConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (m *ImportErrorsConfig) GetDestination() isImportErrorsConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *ImportErrorsConfig) GetGcsPrefix() string {
+ if x, ok := x.GetDestination().(*ImportErrorsConfig_GcsPrefix); ok {
+ return x.GcsPrefix
+ }
+ return ""
+}
+
+type isImportErrorsConfig_Destination interface {
+ isImportErrorsConfig_Destination()
+}
+
+type ImportErrorsConfig_GcsPrefix struct {
+ // Google Cloud Storage path for import errors. This must be an empty,
+ // existing Cloud Storage bucket. Import errors will be written to a file in
+ // this bucket, one per line, as a JSON-encoded
+ // `google.rpc.Status` message.
+ GcsPrefix string `protobuf:"bytes,1,opt,name=gcs_prefix,json=gcsPrefix,proto3,oneof"`
+}
+
+func (*ImportErrorsConfig_GcsPrefix) isImportErrorsConfig_Destination() {}
+
+// Request message for Import methods.
+type ImportProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required.
+ // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch"
+ //
+ // If no updateMask is specified, requires products.create permission.
+ // If updateMask is specified, requires products.update permission.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *ProductInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Indicates which fields in the provided imported 'products' to update. If
+ // not set, will by default update all fields.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *ImportProductsRequest) Reset() {
+ *x = ImportProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsRequest) ProtoMessage() {}
+
+func (x *ImportProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsRequest.ProtoReflect.Descriptor instead.
+func (*ImportProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ImportProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportProductsRequest) GetInputConfig() *ProductInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for the ImportUserEvents request.
+type ImportUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. "projects/1234/locations/global/catalogs/default_catalog"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *UserEventInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportUserEventsRequest) Reset() {
+ *x = ImportUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsRequest) ProtoMessage() {}
+
+func (x *ImportUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ImportUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportUserEventsRequest) GetInputConfig() *UserEventInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// The input config source for products.
+type ProductInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *ProductInputConfig_ProductInlineSource
+ // *ProductInputConfig_GcsSource
+ // *ProductInputConfig_BigQuerySource
+ Source isProductInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *ProductInputConfig) Reset() {
+ *x = ProductInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInputConfig) ProtoMessage() {}
+
+func (x *ProductInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInputConfig.ProtoReflect.Descriptor instead.
+func (*ProductInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{7}
+}
+
+func (m *ProductInputConfig) GetSource() isProductInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetProductInlineSource() *ProductInlineSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_ProductInlineSource); ok {
+ return x.ProductInlineSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*ProductInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isProductInputConfig_Source interface {
+ isProductInputConfig_Source()
+}
+
+type ProductInputConfig_ProductInlineSource struct {
+ // The Inline source for the input content for products.
+ ProductInlineSource *ProductInlineSource `protobuf:"bytes,1,opt,name=product_inline_source,json=productInlineSource,proto3,oneof"`
+}
+
+type ProductInputConfig_GcsSource struct {
+ // Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type ProductInputConfig_BigQuerySource struct {
+ // BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*ProductInputConfig_ProductInlineSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_GcsSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_BigQuerySource) isProductInputConfig_Source() {}
+
+// The input config source for user events.
+type UserEventInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *UserEventInputConfig_UserEventInlineSource
+ // *UserEventInputConfig_GcsSource
+ // *UserEventInputConfig_BigQuerySource
+ Source isUserEventInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *UserEventInputConfig) Reset() {
+ *x = UserEventInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInputConfig) ProtoMessage() {}
+
+func (x *UserEventInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInputConfig.ProtoReflect.Descriptor instead.
+func (*UserEventInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{8}
+}
+
+func (m *UserEventInputConfig) GetSource() isUserEventInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetUserEventInlineSource() *UserEventInlineSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_UserEventInlineSource); ok {
+ return x.UserEventInlineSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isUserEventInputConfig_Source interface {
+ isUserEventInputConfig_Source()
+}
+
+type UserEventInputConfig_UserEventInlineSource struct {
+ // Required. The Inline source for the input content for UserEvents.
+ UserEventInlineSource *UserEventInlineSource `protobuf:"bytes,1,opt,name=user_event_inline_source,json=userEventInlineSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_GcsSource struct {
+ // Required. Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_BigQuerySource struct {
+ // Required. BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*UserEventInputConfig_UserEventInlineSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_GcsSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_BigQuerySource) isUserEventInputConfig_Source() {}
+
+// Metadata related to the progress of the Import operation. This will be
+// returned by the google.longrunning.Operation.metadata field.
+type ImportMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name of the operation.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Operation last update time. If the operation is done, this is also the
+ // finish time.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+ // Count of entries that were processed successfully.
+ SuccessCount int64 `protobuf:"varint,4,opt,name=success_count,json=successCount,proto3" json:"success_count,omitempty"`
+ // Count of entries that encountered errors while processing.
+ FailureCount int64 `protobuf:"varint,5,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"`
+}
+
+func (x *ImportMetadata) Reset() {
+ *x = ImportMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportMetadata) ProtoMessage() {}
+
+func (x *ImportMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportMetadata.ProtoReflect.Descriptor instead.
+func (*ImportMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ImportMetadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ImportMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetSuccessCount() int64 {
+ if x != nil {
+ return x.SuccessCount
+ }
+ return 0
+}
+
+func (x *ImportMetadata) GetFailureCount() int64 {
+ if x != nil {
+ return x.FailureCount
+ }
+ return 0
+}
+
+// Response of the
+// [ImportProductsRequest][google.cloud.retail.v2alpha.ImportProductsRequest].
+// If the long running operation is done, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors in the request if set.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportProductsResponse) Reset() {
+ *x = ImportProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsResponse) ProtoMessage() {}
+
+func (x *ImportProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsResponse.ProtoReflect.Descriptor instead.
+func (*ImportProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *ImportProductsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportProductsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// Response of the ImportUserEventsRequest. If the long running
+// operation was successful, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors if this field was set in
+ // the request.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Aggregated statistics of user event import status.
+ ImportSummary *UserEventImportSummary `protobuf:"bytes,3,opt,name=import_summary,json=importSummary,proto3" json:"import_summary,omitempty"`
+}
+
+func (x *ImportUserEventsResponse) Reset() {
+ *x = ImportUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsResponse) ProtoMessage() {}
+
+func (x *ImportUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *ImportUserEventsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetImportSummary() *UserEventImportSummary {
+ if x != nil {
+ return x.ImportSummary
+ }
+ return nil
+}
+
+// A summary of import result. The UserEventImportSummary summarizes
+// the import status for user events.
+type UserEventImportSummary struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Count of user events imported with complete existing catalog information.
+ JoinedEventsCount int64 `protobuf:"varint,1,opt,name=joined_events_count,json=joinedEventsCount,proto3" json:"joined_events_count,omitempty"`
+ // Count of user events imported, but with catalog information not found
+ // in the imported catalog.
+ UnjoinedEventsCount int64 `protobuf:"varint,2,opt,name=unjoined_events_count,json=unjoinedEventsCount,proto3" json:"unjoined_events_count,omitempty"`
+}
+
+func (x *UserEventImportSummary) Reset() {
+ *x = UserEventImportSummary{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventImportSummary) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventImportSummary) ProtoMessage() {}
+
+func (x *UserEventImportSummary) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventImportSummary.ProtoReflect.Descriptor instead.
+func (*UserEventImportSummary) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UserEventImportSummary) GetJoinedEventsCount() int64 {
+ if x != nil {
+ return x.JoinedEventsCount
+ }
+ return 0
+}
+
+func (x *UserEventImportSummary) GetUnjoinedEventsCount() int64 {
+ if x != nil {
+ return x.UnjoinedEventsCount
+ }
+ return 0
+}
+
+var File_google_cloud_retail_v2alpha_import_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_import_config_proto_rawDesc = []byte{
+ 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x69, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63,
+ 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a,
+ 0x09, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e,
+ 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22,
+ 0xbc, 0x01, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49,
+ 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61,
+ 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61,
+ 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+ 0x67, 0x63, 0x73, 0x53, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x57,
+ 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x22, 0x60, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x12, 0x47, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x75,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x1f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
+ 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0xa0, 0x02, 0x0a, 0x15, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0,
+ 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61,
+ 0x73, 0x6b, 0x22, 0xe7, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b,
+ 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa8, 0x02, 0x0a,
+ 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69,
+ 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49,
+ 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x67,
+ 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x63,
+ 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x69, 0x67,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62,
+ 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a,
+ 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x72, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69,
+ 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x15, 0x75,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00,
+ 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b,
+ 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x52,
+ 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73,
+ 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
+ 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3c, 0xea, 0x41, 0x39, 0x0a, 0x1f, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x6f, 0x70, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x7d, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37,
+ 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
+ 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x85, 0x02,
+ 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70,
+ 0x6c, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x0e, 0x69, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53,
+ 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75,
+ 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x7c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12,
+ 0x2e, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6a, 0x6f,
+ 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+ 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13,
+ 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x42, 0xdf, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
+ 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
+ 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2,
+ 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_import_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_import_config_proto_rawDescData = file_google_cloud_retail_v2alpha_import_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_import_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_import_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_import_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_import_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_import_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_import_config_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_google_cloud_retail_v2alpha_import_config_proto_goTypes = []interface{}{
+ (*GcsSource)(nil), // 0: google.cloud.retail.v2alpha.GcsSource
+ (*BigQuerySource)(nil), // 1: google.cloud.retail.v2alpha.BigQuerySource
+ (*ProductInlineSource)(nil), // 2: google.cloud.retail.v2alpha.ProductInlineSource
+ (*UserEventInlineSource)(nil), // 3: google.cloud.retail.v2alpha.UserEventInlineSource
+ (*ImportErrorsConfig)(nil), // 4: google.cloud.retail.v2alpha.ImportErrorsConfig
+ (*ImportProductsRequest)(nil), // 5: google.cloud.retail.v2alpha.ImportProductsRequest
+ (*ImportUserEventsRequest)(nil), // 6: google.cloud.retail.v2alpha.ImportUserEventsRequest
+ (*ProductInputConfig)(nil), // 7: google.cloud.retail.v2alpha.ProductInputConfig
+ (*UserEventInputConfig)(nil), // 8: google.cloud.retail.v2alpha.UserEventInputConfig
+ (*ImportMetadata)(nil), // 9: google.cloud.retail.v2alpha.ImportMetadata
+ (*ImportProductsResponse)(nil), // 10: google.cloud.retail.v2alpha.ImportProductsResponse
+ (*ImportUserEventsResponse)(nil), // 11: google.cloud.retail.v2alpha.ImportUserEventsResponse
+ (*UserEventImportSummary)(nil), // 12: google.cloud.retail.v2alpha.UserEventImportSummary
+ (*Product)(nil), // 13: google.cloud.retail.v2alpha.Product
+ (*UserEvent)(nil), // 14: google.cloud.retail.v2alpha.UserEvent
+ (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask
+ (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
+ (*status.Status)(nil), // 17: google.rpc.Status
+}
+var file_google_cloud_retail_v2alpha_import_config_proto_depIdxs = []int32{
+ 13, // 0: google.cloud.retail.v2alpha.ProductInlineSource.products:type_name -> google.cloud.retail.v2alpha.Product
+ 14, // 1: google.cloud.retail.v2alpha.UserEventInlineSource.user_events:type_name -> google.cloud.retail.v2alpha.UserEvent
+ 7, // 2: google.cloud.retail.v2alpha.ImportProductsRequest.input_config:type_name -> google.cloud.retail.v2alpha.ProductInputConfig
+ 4, // 3: google.cloud.retail.v2alpha.ImportProductsRequest.errors_config:type_name -> google.cloud.retail.v2alpha.ImportErrorsConfig
+ 15, // 4: google.cloud.retail.v2alpha.ImportProductsRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 8, // 5: google.cloud.retail.v2alpha.ImportUserEventsRequest.input_config:type_name -> google.cloud.retail.v2alpha.UserEventInputConfig
+ 4, // 6: google.cloud.retail.v2alpha.ImportUserEventsRequest.errors_config:type_name -> google.cloud.retail.v2alpha.ImportErrorsConfig
+ 2, // 7: google.cloud.retail.v2alpha.ProductInputConfig.product_inline_source:type_name -> google.cloud.retail.v2alpha.ProductInlineSource
+ 0, // 8: google.cloud.retail.v2alpha.ProductInputConfig.gcs_source:type_name -> google.cloud.retail.v2alpha.GcsSource
+ 1, // 9: google.cloud.retail.v2alpha.ProductInputConfig.big_query_source:type_name -> google.cloud.retail.v2alpha.BigQuerySource
+ 3, // 10: google.cloud.retail.v2alpha.UserEventInputConfig.user_event_inline_source:type_name -> google.cloud.retail.v2alpha.UserEventInlineSource
+ 0, // 11: google.cloud.retail.v2alpha.UserEventInputConfig.gcs_source:type_name -> google.cloud.retail.v2alpha.GcsSource
+ 1, // 12: google.cloud.retail.v2alpha.UserEventInputConfig.big_query_source:type_name -> google.cloud.retail.v2alpha.BigQuerySource
+ 16, // 13: google.cloud.retail.v2alpha.ImportMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 16, // 14: google.cloud.retail.v2alpha.ImportMetadata.update_time:type_name -> google.protobuf.Timestamp
+ 17, // 15: google.cloud.retail.v2alpha.ImportProductsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 16: google.cloud.retail.v2alpha.ImportProductsResponse.errors_config:type_name -> google.cloud.retail.v2alpha.ImportErrorsConfig
+ 17, // 17: google.cloud.retail.v2alpha.ImportUserEventsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 18: google.cloud.retail.v2alpha.ImportUserEventsResponse.errors_config:type_name -> google.cloud.retail.v2alpha.ImportErrorsConfig
+ 12, // 19: google.cloud.retail.v2alpha.ImportUserEventsResponse.import_summary:type_name -> google.cloud.retail.v2alpha.UserEventImportSummary
+ 20, // [20:20] is the sub-list for method output_type
+ 20, // [20:20] is the sub-list for method input_type
+ 20, // [20:20] is the sub-list for extension type_name
+ 20, // [20:20] is the sub-list for extension extendee
+ 0, // [0:20] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_import_config_proto_init() }
+func file_google_cloud_retail_v2alpha_import_config_proto_init() {
+ if File_google_cloud_retail_v2alpha_import_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_product_proto_init()
+ file_google_cloud_retail_v2alpha_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GcsSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BigQuerySource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportErrorsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventImportSummary); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*ImportErrorsConfig_GcsPrefix)(nil),
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[7].OneofWrappers = []interface{}{
+ (*ProductInputConfig_ProductInlineSource)(nil),
+ (*ProductInputConfig_GcsSource)(nil),
+ (*ProductInputConfig_BigQuerySource)(nil),
+ }
+ file_google_cloud_retail_v2alpha_import_config_proto_msgTypes[8].OneofWrappers = []interface{}{
+ (*UserEventInputConfig_UserEventInlineSource)(nil),
+ (*UserEventInputConfig_GcsSource)(nil),
+ (*UserEventInputConfig_BigQuerySource)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_import_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 13,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_import_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_import_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_import_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_import_config_proto = out.File
+ file_google_cloud_retail_v2alpha_import_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_import_config_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_import_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/prediction_service.pb.go b/googleapis/cloud/retail/v2alpha/prediction_service.pb.go
new file mode 100644
index 000000000..9f86f9596
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/prediction_service.pb.go
@@ -0,0 +1,692 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/prediction_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for Predict method.
+type PredictRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of the format:
+ // {name=projects/*/locations/global/catalogs/default_catalog/placements/*}
+ // The id of the recommendation engine placement. This id is used to identify
+ // the set of models that will be used to make the prediction.
+ //
+ // We currently support three placements with the following IDs by default:
+ //
+ // * `shopping_cart`: Predicts products frequently bought together with one or
+ // more products in the same shopping session. Commonly displayed after
+ // `add-to-cart` events, on product detail pages, or on the shopping cart
+ // page.
+ //
+ // * `home_page`: Predicts the next product that a user will most likely
+ // engage with or purchase based on the shopping or viewing history of the
+ // specified `userId` or `visitorId`. For example - Recommendations for you.
+ //
+ // * `product_detail`: Predicts the next product that a user will most likely
+ // engage with or purchase. The prediction is based on the shopping or
+ // viewing history of the specified `userId` or `visitorId` and its
+ // relevance to a specified `CatalogItem`. Typically used on product detail
+ // pages. For example - More products like this.
+ //
+ // * `recently_viewed_default`: Returns up to 75 products recently viewed by
+ // the
+ // specified `userId` or `visitorId`, most recent ones first. Returns
+ // nothing if neither of them has viewed any products yet. For example -
+ // Recently viewed.
+ //
+ // The full list of available placements can be seen at
+ //
+ // https:
+ // //console.cloud.google.com/recommendatio
+ // // n/datafeeds/default_catalog/dashboard
+ Placement string `protobuf:"bytes,1,opt,name=placement,proto3" json:"placement,omitempty"`
+ // Required. Context about the user, what they are looking at and what action
+ // they took to trigger the predict request. Note that this user event detail
+ // won't be ingested to userEvent logs. Thus, a separate userEvent write
+ // request is required for event logging.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // Maximum number of results to return per page. Set this property
+ // to the number of prediction results needed. If zero, the service will
+ // choose a reasonable default.
+ PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // The previous PredictResponse.next_page_token.
+ PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // Filter for restricting prediction results. Accepts values for
+ // tags and the `filterOutOfStockItems` flag.
+ //
+ // * Tag expressions. Restricts predictions to products that match all of the
+ // specified tags. Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space. `-"tagA"` is also supported and is equivalent to
+ // `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded strings
+ // with a size limit of 1 KiB.
+ //
+ // * filterOutOfStockItems. Restricts predictions to products that do not
+ // have a
+ // stockState value of OUT_OF_STOCK.
+ //
+ // Examples:
+ //
+ // * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
+ // * filterOutOfStockItems tag=(-"promotional")
+ // * filterOutOfStockItems
+ //
+ // If your filter blocks all prediction results, nothing will be returned. If
+ // you want generic (unfiltered) popular products to be returned instead, set
+ // `strictFiltering` to false in `PredictRequest.params`.
+ Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
+ // Use validate only mode for this prediction query. If set to true, a
+ // dummy model will be used that returns arbitrary products.
+ // Note that the validate only mode should only be used for testing the API,
+ // or if the model is not ready.
+ ValidateOnly bool `protobuf:"varint,6,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+ // Additional domain specific parameters for the predictions.
+ //
+ // Allowed values:
+ //
+ // * `returnProduct`: Boolean. If set to true, the associated product
+ // object will be returned in the
+ // `PredictResponse.PredictionResult.productMetadata` object in the method
+ // response.
+ // * `returnScore`: Boolean. If set to true, the prediction 'score'
+ // corresponding to each returned product will be set in the `metadata`
+ // field in the prediction response. The given 'score' indicates the
+ // probability of an product being clicked/purchased given the user's
+ // context and history.
+ // * `strictFiltering`: Boolean. True by default. If set to false, the service
+ // will return generic (unfiltered) popular products instead of empty if
+ // your filter blocks all prediction results.
+ Params map[string]*structpb.Value `protobuf:"bytes,7,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The labels for the predict request.
+ //
+ // * Label keys can contain lowercase letters, digits and hyphens, must start
+ // with a letter, and must end with a letter or digit.
+ // * Non-zero label values can contain lowercase letters, digits and hyphens,
+ // must start with a letter, and must end with a letter or digit.
+ // * No more than 64 labels can be associated with a given request.
+ //
+ // See https://goo.gl/xmQnxf for more information on and examples of labels.
+ Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictRequest) Reset() {
+ *x = PredictRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictRequest) ProtoMessage() {}
+
+func (x *PredictRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictRequest.ProtoReflect.Descriptor instead.
+func (*PredictRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PredictRequest) GetPlacement() string {
+ if x != nil {
+ return x.Placement
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *PredictRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+func (x *PredictRequest) GetParams() map[string]*structpb.Value {
+ if x != nil {
+ return x.Params
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+// Response message for predict method.
+type PredictResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of recommended products. The order represents the ranking (from the
+ // most relevant product to the least).
+ Results []*PredictResponse_PredictionResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ // A unique attribution token. This should be included in the
+ // [UserEvent][google.cloud.retail.v2alpha.UserEvent] logs resulting from this
+ // recommendation, which enables accurate attribution of recommendation model
+ // performance.
+ AttributionToken string `protobuf:"bytes,2,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // IDs of products in the request that were missing from the inventory.
+ MissingIds []string `protobuf:"bytes,3,rep,name=missing_ids,json=missingIds,proto3" json:"missing_ids,omitempty"`
+ // True if the validateOnly property was set in the request.
+ ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+}
+
+func (x *PredictResponse) Reset() {
+ *x = PredictResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse) ProtoMessage() {}
+
+func (x *PredictResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse.ProtoReflect.Descriptor instead.
+func (*PredictResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PredictResponse) GetResults() []*PredictResponse_PredictionResult {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *PredictResponse) GetMissingIds() []string {
+ if x != nil {
+ return x.MissingIds
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+// PredictionResult represents the recommendation prediction results.
+type PredictResponse_PredictionResult struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // ID of the recommended product
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Additional product metadata / annotations.
+ //
+ // Possible values:
+ //
+ // * `product`: JSON representation of the product. Will be set if
+ // `returnProduct` is set to true in `PredictRequest.params`.
+ // * `score`: Prediction score in double value. Will be set if
+ // `returnScore` is set to true in `PredictRequest.params`.
+ Metadata map[string]*structpb.Value `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictResponse_PredictionResult) Reset() {
+ *x = PredictResponse_PredictionResult{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse_PredictionResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse_PredictionResult) ProtoMessage() {}
+
+func (x *PredictResponse_PredictionResult) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse_PredictionResult.ProtoReflect.Descriptor instead.
+func (*PredictResponse_PredictionResult) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *PredictResponse_PredictionResult) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PredictResponse_PredictionResult) GetMetadata() map[string]*structpb.Value {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2alpha_prediction_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_prediction_service_proto_rawDesc = []byte{
+ 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72,
+ 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 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, 0x2c, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63,
+ 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x04, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64,
+ 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a,
+ 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
+ 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61,
+ 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
+ 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a,
+ 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e,
+ 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0xc0, 0x03, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12,
+ 0x2b, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a,
+ 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e,
+ 0x6c, 0x79, 0x1a, 0xe0, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x67, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+ 0x1a, 0x53, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x9d, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x07,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x22, 0x4b, 0x2f, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f,
+ 0x2a, 0x2f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a,
+ 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xe4, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x16, 0x50, 0x72, 0x65, 0x64, 0x69,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
+ 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa,
+ 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescData = file_google_cloud_retail_v2alpha_prediction_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_prediction_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_google_cloud_retail_v2alpha_prediction_service_proto_goTypes = []interface{}{
+ (*PredictRequest)(nil), // 0: google.cloud.retail.v2alpha.PredictRequest
+ (*PredictResponse)(nil), // 1: google.cloud.retail.v2alpha.PredictResponse
+ nil, // 2: google.cloud.retail.v2alpha.PredictRequest.ParamsEntry
+ nil, // 3: google.cloud.retail.v2alpha.PredictRequest.LabelsEntry
+ (*PredictResponse_PredictionResult)(nil), // 4: google.cloud.retail.v2alpha.PredictResponse.PredictionResult
+ nil, // 5: google.cloud.retail.v2alpha.PredictResponse.PredictionResult.MetadataEntry
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2alpha.UserEvent
+ (*structpb.Value)(nil), // 7: google.protobuf.Value
+}
+var file_google_cloud_retail_v2alpha_prediction_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2alpha.PredictRequest.user_event:type_name -> google.cloud.retail.v2alpha.UserEvent
+ 2, // 1: google.cloud.retail.v2alpha.PredictRequest.params:type_name -> google.cloud.retail.v2alpha.PredictRequest.ParamsEntry
+ 3, // 2: google.cloud.retail.v2alpha.PredictRequest.labels:type_name -> google.cloud.retail.v2alpha.PredictRequest.LabelsEntry
+ 4, // 3: google.cloud.retail.v2alpha.PredictResponse.results:type_name -> google.cloud.retail.v2alpha.PredictResponse.PredictionResult
+ 7, // 4: google.cloud.retail.v2alpha.PredictRequest.ParamsEntry.value:type_name -> google.protobuf.Value
+ 5, // 5: google.cloud.retail.v2alpha.PredictResponse.PredictionResult.metadata:type_name -> google.cloud.retail.v2alpha.PredictResponse.PredictionResult.MetadataEntry
+ 7, // 6: google.cloud.retail.v2alpha.PredictResponse.PredictionResult.MetadataEntry.value:type_name -> google.protobuf.Value
+ 0, // 7: google.cloud.retail.v2alpha.PredictionService.Predict:input_type -> google.cloud.retail.v2alpha.PredictRequest
+ 1, // 8: google.cloud.retail.v2alpha.PredictionService.Predict:output_type -> google.cloud.retail.v2alpha.PredictResponse
+ 8, // [8:9] is the sub-list for method output_type
+ 7, // [7:8] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_prediction_service_proto_init() }
+func file_google_cloud_retail_v2alpha_prediction_service_proto_init() {
+ if File_google_cloud_retail_v2alpha_prediction_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse_PredictionResult); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_prediction_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_prediction_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_prediction_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_prediction_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_prediction_service_proto = out.File
+ file_google_cloud_retail_v2alpha_prediction_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_prediction_service_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_prediction_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// PredictionServiceClient is the client API for PredictionService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type PredictionServiceClient interface {
+ // Makes a recommendation prediction.
+ Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error)
+}
+
+type predictionServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewPredictionServiceClient(cc grpc.ClientConnInterface) PredictionServiceClient {
+ return &predictionServiceClient{cc}
+}
+
+func (c *predictionServiceClient) Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error) {
+ out := new(PredictResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.PredictionService/Predict", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// PredictionServiceServer is the server API for PredictionService service.
+type PredictionServiceServer interface {
+ // Makes a recommendation prediction.
+ Predict(context.Context, *PredictRequest) (*PredictResponse, error)
+}
+
+// UnimplementedPredictionServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedPredictionServiceServer struct {
+}
+
+func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRequest) (*PredictResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Predict not implemented")
+}
+
+func RegisterPredictionServiceServer(s *grpc.Server, srv PredictionServiceServer) {
+ s.RegisterService(&_PredictionService_serviceDesc, srv)
+}
+
+func _PredictionService_Predict_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PredictionServiceServer).Predict(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.PredictionService/Predict",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PredictionServiceServer).Predict(ctx, req.(*PredictRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _PredictionService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2alpha.PredictionService",
+ HandlerType: (*PredictionServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Predict",
+ Handler: _PredictionService_Predict_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2alpha/prediction_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2alpha/product.pb.go b/googleapis/cloud/retail/v2alpha/product.pb.go
new file mode 100644
index 000000000..25772dbb4
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/product.pb.go
@@ -0,0 +1,1105 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/product.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ durationpb "google.golang.org/protobuf/types/known/durationpb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The type of this product.
+type Product_Type int32
+
+const (
+ // Default value. Default to
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY] if
+ // unset.
+ Product_TYPE_UNSPECIFIED Product_Type = 0
+ // The primary type.
+ //
+ // As the primary unit for indexing and search serving, a
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product] is grouped with multiple
+ // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s.
+ Product_PRIMARY Product_Type = 1
+ // The variant type.
+ //
+ // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s usually share some common
+ // attributes on the same
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product]s, but they have variant
+ // attributes like different colors, sizes and prices, etc.
+ Product_VARIANT Product_Type = 2
+ // The collection type. Collection products are bundled
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product]s or
+ // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s that are sold together,
+ // such as a jewelry set with necklaces, earrings and rings, etc.
+ Product_COLLECTION Product_Type = 3
+)
+
+// Enum value maps for Product_Type.
+var (
+ Product_Type_name = map[int32]string{
+ 0: "TYPE_UNSPECIFIED",
+ 1: "PRIMARY",
+ 2: "VARIANT",
+ 3: "COLLECTION",
+ }
+ Product_Type_value = map[string]int32{
+ "TYPE_UNSPECIFIED": 0,
+ "PRIMARY": 1,
+ "VARIANT": 2,
+ "COLLECTION": 3,
+ }
+)
+
+func (x Product_Type) Enum() *Product_Type {
+ p := new(Product_Type)
+ *p = x
+ return p
+}
+
+func (x Product_Type) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Product_Type) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2alpha_product_proto_enumTypes[0].Descriptor()
+}
+
+func (Product_Type) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2alpha_product_proto_enumTypes[0]
+}
+
+func (x Product_Type) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Product_Type.Descriptor instead.
+func (Product_Type) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// Product availability. If this field is unspecified, the product is
+// assumed to be in stock.
+type Product_Availability int32
+
+const (
+ // Default product availability. Default to
+ // [Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK]
+ // if unset.
+ Product_AVAILABILITY_UNSPECIFIED Product_Availability = 0
+ // Product in stock.
+ Product_IN_STOCK Product_Availability = 1
+ // Product out of stock.
+ Product_OUT_OF_STOCK Product_Availability = 2
+ // Product that is in pre-order state.
+ Product_PREORDER Product_Availability = 3
+ // Product that is back-ordered (i.e. temporarily out of stock).
+ Product_BACKORDER Product_Availability = 4
+)
+
+// Enum value maps for Product_Availability.
+var (
+ Product_Availability_name = map[int32]string{
+ 0: "AVAILABILITY_UNSPECIFIED",
+ 1: "IN_STOCK",
+ 2: "OUT_OF_STOCK",
+ 3: "PREORDER",
+ 4: "BACKORDER",
+ }
+ Product_Availability_value = map[string]int32{
+ "AVAILABILITY_UNSPECIFIED": 0,
+ "IN_STOCK": 1,
+ "OUT_OF_STOCK": 2,
+ "PREORDER": 3,
+ "BACKORDER": 4,
+ }
+)
+
+func (x Product_Availability) Enum() *Product_Availability {
+ p := new(Product_Availability)
+ *p = x
+ return p
+}
+
+func (x Product_Availability) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Product_Availability) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2alpha_product_proto_enumTypes[1].Descriptor()
+}
+
+func (Product_Availability) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2alpha_product_proto_enumTypes[1]
+}
+
+func (x Product_Availability) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Product_Availability.Descriptor instead.
+func (Product_Availability) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_proto_rawDescGZIP(), []int{0, 1}
+}
+
+// Product captures all metadata information of items to be recommended or
+// searched.
+type Product struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Expiration:
+ // *Product_ExpireTime
+ // *Product_Ttl
+ Expiration isProduct_Expiration `protobuf_oneof:"expiration"`
+ // Immutable. Full resource name of the product, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id".
+ //
+ // The branch ID must be "default_branch".
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Immutable. [Product][google.cloud.retail.v2alpha.Product] identifier, which
+ // is the final component of [name][google.cloud.retail.v2alpha.Product.name].
+ // For example, this field is "id_1", if
+ // [name][google.cloud.retail.v2alpha.Product.name] is
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1".
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [id](https://support.google.com/merchants/answer/6324405).
+ // schema.org Property [Product.sku](https://schema.org/sku).
+ Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+ // Immutable. The type of the product.
+ //
+ // Default to [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // if unset.
+ Type Product_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.retail.v2alpha.Product_Type" json:"type,omitempty"`
+ // Variant group identifier. Must be an
+ // [id][google.cloud.retail.v2alpha.Product.id], with the same parent branch
+ // with this product. Otherwise, an error is thrown.
+ //
+ // The primary product may be empty during the creation, but cannot be updated
+ // from a non-empty string to an empty one. Otherwise an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Should only be set for
+ // [Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s. A maximum of 1000 products
+ // are allowed to share the same
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product]. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center Property
+ // [item_group_id](https://support.google.com/merchants/answer/6324507).
+ // schema.org Property
+ // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
+ //
+ // This field must be enabled before it can be used. [Learn
+ // more](/recommendations-ai/docs/catalog#item-group-id).
+ PrimaryProductId string `protobuf:"bytes,4,opt,name=primary_product_id,json=primaryProductId,proto3" json:"primary_product_id,omitempty"`
+ // The [id][google.cloud.retail.v2alpha.Product.id] of the collection members
+ // when [type][google.cloud.retail.v2alpha.Product.type] is
+ // [Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION].
+ //
+ // Should not set it for other types. A maximum of 1000 values are allowed.
+ // Otherwise, an INVALID_ARGUMENT error is return.
+ CollectionMemberIds []string `protobuf:"bytes,5,rep,name=collection_member_ids,json=collectionMemberIds,proto3" json:"collection_member_ids,omitempty"`
+ // The Global Trade Item Number (GTIN) of the product.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [gtin](https://support.google.com/merchants/answer/6324461).
+ // Schema.org property
+ // [Product.isbn](http://schema.org/isbn) or
+ // [Product.gtin8](http://schema.org/gtin8) or
+ // [Product.gtin12](http://schema.org/gtin12) or
+ // [Product.gtin13](http://schema.org/gtin13) or
+ // [Product.gtin14](http://schema.org/gtin14).
+ //
+ // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned.
+ Gtin string `protobuf:"bytes,6,opt,name=gtin,proto3" json:"gtin,omitempty"`
+ // Required. Product categories. This field is repeated for supporting one
+ // product belonging to several parallel categories. Each value is either the
+ // full path of the category, or the [category
+ //
+ // ID](https:
+ // //www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt).
+ // Strongly recommended using the full path for better search / recommendation
+ // quality.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // For example, if a shoes product belongs to both
+ // ["Shoes & Accessories" -> "Shoes"] and
+ // ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be
+ // represented as:
+ //
+ // "categories": [
+ // "Shoes & Accessories > Shoes",
+ // "Sports & Fitness > Athletic Clothing > Shoes"
+ // ]
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2alpha.Product]. Empty values are not
+ // allowed. Each value must be a UTF-8 encoded string with a length limit of 5
+ // KiB. Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ //
+ // [google_product_category](https:
+ // //support.google.com/merchants/answer/6324436).
+ // Schema.org property [Product.category] (https://schema.org/category).
+ Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"`
+ // Required. Product title.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [title](https://support.google.com/merchants/answer/6324415). Schema.org
+ // property [Product.name](https://schema.org/name).
+ Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
+ // The brand of the product.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 1 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // This field can only be set in a
+ // [Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product]. Otherwise, a
+ // FAILED_PRECONDITION error is returned.
+ //
+ // Google Merchant Center property
+ // [brand](https://support.google.com/merchants/answer/6324351). Schema.org
+ // property [Product.brand](https://schema.org/brand).
+ Brand string `protobuf:"bytes,9,opt,name=brand,proto3" json:"brand,omitempty"`
+ // Product description.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [description](https://support.google.com/merchants/answer/6324468).
+ // schema.org property [Product.description](https://schema.org/description).
+ Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
+ // Language of the title/description and other string attributes. Use language
+ // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
+ //
+ // The model automatically detects the text language. The
+ // [Product][google.cloud.retail.v2alpha.Product] can include text in
+ // different languages, but duplicating
+ // [Product][google.cloud.retail.v2alpha.Product]s to provide text in multiple
+ // languages can result in degraded model performance.
+ //
+ // Currently, recommendation supports all language codes, while the only
+ // supported language code for search is "en-US".
+ LanguageCode string `protobuf:"bytes,11,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
+ // Highly encouraged. Extra product attributes to be included. For example,
+ // for products, this could include the store name, vendor, style, color, etc.
+ // These are very strong signals for recommendation model, thus we highly
+ // recommend providing the attributes here.
+ //
+ // Features that can take on one of a limited number of possible values. Two
+ // types of features can be set are:
+ //
+ // Textual features. some examples would be the brand/maker of a product, or
+ // country of a customer. Numerical features. Some examples would be the
+ // height/weight of a product, or age of a customer.
+ //
+ // For example: { "vendor": {"text": ["vendor123", "vendor456"]},
+ // "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]}
+ // }.
+ //
+ // A maximum of 150 attributes are allowed. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,12,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Custom tags associated with the product.
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2alpha.Product]. This value must be a UTF-8
+ // encoded string with a length limit of 1 KiB. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // This tag can be used for filtering recommendation results by passing the
+ // tag as part of the
+ // [PredictRequest.filter][google.cloud.retail.v2alpha.PredictRequest.filter].
+ //
+ // Google Merchant Center property
+ // [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+ Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"`
+ // Product price and cost information.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"`
+ // The rating of this product.
+ Rating *Rating `protobuf:"bytes,15,opt,name=rating,proto3" json:"rating,omitempty"`
+ // The timestamp when this [Product][google.cloud.retail.v2alpha.Product]
+ // becomes available recommendation and search.
+ AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"`
+ // The online availability of the
+ // [Product][google.cloud.retail.v2alpha.Product], which is parallel to and
+ // independent of
+ // [fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info].
+ // Default is
+ // [Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK].
+ //
+ // Google Merchant Center Property
+ // [availability](https://support.google.com/merchants/answer/6324448).
+ // schema.org Property [Offer.availability](https://schema.org/availability).
+ Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2alpha.Product_Availability" json:"availability,omitempty"`
+ // The available quantity of the item.
+ AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
+ // Fulfillment information, such as the store IDs for in-store pickup or
+ // region IDs for different shipping methods.
+ //
+ // All the elements must have distinct
+ // [FulfillmentInfo.type][google.cloud.retail.v2alpha.FulfillmentInfo.type].
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ FulfillmentInfo []*FulfillmentInfo `protobuf:"bytes,21,rep,name=fulfillment_info,json=fulfillmentInfo,proto3" json:"fulfillment_info,omitempty"`
+ // Canonical URL directly linking to the product detail page.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [link](https://support.google.com/merchants/answer/6324416).
+ // Schema.org property [Offer.url](https://schema.org/url).
+ Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Product images for the product.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](https://schema.org/image).
+ Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"`
+ // The target group associated with a given audience (e.g. male, veterans,
+ // car owners, musicians, etc.) of the product.
+ Audience *Audience `protobuf:"bytes,24,opt,name=audience,proto3" json:"audience,omitempty"`
+ // The color of the product.
+ //
+ // Google Merchant Center property
+ // [color](https://support.google.com/merchants/answer/6324487). Schema.org
+ // property [Product.color](https://schema.org/color).
+ ColorInfo *ColorInfo `protobuf:"bytes,25,opt,name=color_info,json=colorInfo,proto3" json:"color_info,omitempty"`
+ // The size of the product. To represent different size systems or size types,
+ // consider using this format: [[[size_system:]size_type:]size_value].
+ //
+ // For example, in "US:MENS:M", "US" represents size system; "MENS" represents
+ // size type; "M" represents size value. In "GIRLS:27", size system is empty;
+ // "GIRLS" represents size type; "27" represents size value. In "32 inches",
+ // both size system and size type are empty, while size value is "32 inches".
+ //
+ // A maximum of 20 values are allowed per
+ // [Product][google.cloud.retail.v2alpha.Product]. Each value must be a UTF-8
+ // encoded string with a length limit of 128 bytes. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [size](https://support.google.com/merchants/answer/6324492),
+ // [size_type](https://support.google.com/merchants/answer/6324497) and
+ // [size_system](https://support.google.com/merchants/answer/6324502).
+ // Schema.org property [Product.size](https://schema.org/size).
+ Sizes []string `protobuf:"bytes,26,rep,name=sizes,proto3" json:"sizes,omitempty"`
+ // The material of the product. For example, "leather", "wooden".
+ //
+ // A maximum of 5 values are allowed. Each value must be a UTF-8 encoded
+ // string with a length limit of 128 bytes. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Google Merchant Center property
+ // [material](https://support.google.com/merchants/answer/6324410). Schema.org
+ // property [Product.material](https://schema.org/material).
+ Materials []string `protobuf:"bytes,27,rep,name=materials,proto3" json:"materials,omitempty"`
+ // The pattern or graphic print of the product. For example, "striped", "polka
+ // dot", "paisley".
+ //
+ // A maximum of 5 values are allowed per
+ // [Product][google.cloud.retail.v2alpha.Product]. Each value must be a UTF-8
+ // encoded string with a length limit of 128 bytes. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org
+ // property [Product.pattern](https://schema.org/pattern).
+ Patterns []string `protobuf:"bytes,28,rep,name=patterns,proto3" json:"patterns,omitempty"`
+ // The condition of the product. Strongly encouraged to use the standard
+ // values: "new", "refurbished", "used".
+ //
+ // A maximum of 5 values are allowed per
+ // [Product][google.cloud.retail.v2alpha.Product]. Each value must be a UTF-8
+ // encoded string with a length limit of 128 bytes. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [condition](https://support.google.com/merchants/answer/6324469).
+ // Schema.org property [Offer.itemCondition](http://schema.org/itemCondition).
+ Conditions []string `protobuf:"bytes,29,rep,name=conditions,proto3" json:"conditions,omitempty"`
+ // Indicates which fields in the
+ // [variants][google.cloud.retail.v2alpha.Product.variants] are retrievable in
+ // [Search][]. If not set or empty, the following fields are returned:
+ //
+ // * [name][google.cloud.retail.v2alpha.Product.name]
+ // * [availability][google.cloud.retail.v2alpha.Product.availability]
+ // * [color_info][google.cloud.retail.v2alpha.Product.color_info]
+ //
+ // Supported fields:
+ //
+ // * [name][google.cloud.retail.v2alpha.Product.name]
+ // * [availability][google.cloud.retail.v2alpha.Product.availability]
+ // * [color_info][google.cloud.retail.v2alpha.Product.color_info]
+ // * [gtin][google.cloud.retail.v2alpha.Product.gtin]
+ // * [price_info][google.cloud.retail.v2alpha.Product.price_info]
+ // * [sizes][google.cloud.retail.v2alpha.Product.sizes]
+ // * [materials][google.cloud.retail.v2alpha.Product.materials]
+ // * [patterns][google.cloud.retail.v2alpha.Product.patterns]
+ // * [conditions][google.cloud.retail.v2alpha.Product.conditions]
+ // * [images][google.cloud.retail.v2alpha.Product.images]
+ // * [attributes][google.cloud.retail.v2alpha.Product.attributes]
+ //
+ // To mark custom attributes as retrievable, include paths of the form
+ // "attributes.key" where "key" is the key of a custom attribute, as
+ // specified in [attributes][google.cloud.retail.v2alpha.Product.attributes].
+ //
+ // Maximum number of paths is 10. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ StockingUnitRetrievableFields *fieldmaskpb.FieldMask `protobuf:"bytes,30,opt,name=stocking_unit_retrievable_fields,json=stockingUnitRetrievableFields,proto3" json:"stocking_unit_retrievable_fields,omitempty"`
+ // Output only. Product variants grouped together on primary product which
+ // share similar product attributes. It's automatically grouped by
+ // [primary_product_id][google.cloud.retail.v2alpha.Product.primary_product_id]
+ // for all the product variants. Only populated for [Type.PARIMARY][]
+ // [Product][google.cloud.retail.v2alpha.Product]s.
+ //
+ // Note: This field is OUTPUT_ONLY for API calls. In BigQuery inventory batch
+ // import, it can be used as the input to import both product and product
+ // variants together at once. For API requests, do not set this field.
+ Variants []*Product `protobuf:"bytes,31,rep,name=variants,proto3" json:"variants,omitempty"`
+}
+
+func (x *Product) Reset() {
+ *x = Product{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Product) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Product) ProtoMessage() {}
+
+func (x *Product) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Product.ProtoReflect.Descriptor instead.
+func (*Product) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *Product) GetExpiration() isProduct_Expiration {
+ if m != nil {
+ return m.Expiration
+ }
+ return nil
+}
+
+func (x *Product) GetExpireTime() *timestamppb.Timestamp {
+ if x, ok := x.GetExpiration().(*Product_ExpireTime); ok {
+ return x.ExpireTime
+ }
+ return nil
+}
+
+func (x *Product) GetTtl() *durationpb.Duration {
+ if x, ok := x.GetExpiration().(*Product_Ttl); ok {
+ return x.Ttl
+ }
+ return nil
+}
+
+func (x *Product) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Product) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *Product) GetType() Product_Type {
+ if x != nil {
+ return x.Type
+ }
+ return Product_TYPE_UNSPECIFIED
+}
+
+func (x *Product) GetPrimaryProductId() string {
+ if x != nil {
+ return x.PrimaryProductId
+ }
+ return ""
+}
+
+func (x *Product) GetCollectionMemberIds() []string {
+ if x != nil {
+ return x.CollectionMemberIds
+ }
+ return nil
+}
+
+func (x *Product) GetGtin() string {
+ if x != nil {
+ return x.Gtin
+ }
+ return ""
+}
+
+func (x *Product) GetCategories() []string {
+ if x != nil {
+ return x.Categories
+ }
+ return nil
+}
+
+func (x *Product) GetTitle() string {
+ if x != nil {
+ return x.Title
+ }
+ return ""
+}
+
+func (x *Product) GetBrand() string {
+ if x != nil {
+ return x.Brand
+ }
+ return ""
+}
+
+func (x *Product) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Product) GetLanguageCode() string {
+ if x != nil {
+ return x.LanguageCode
+ }
+ return ""
+}
+
+func (x *Product) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *Product) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *Product) GetPriceInfo() *PriceInfo {
+ if x != nil {
+ return x.PriceInfo
+ }
+ return nil
+}
+
+func (x *Product) GetRating() *Rating {
+ if x != nil {
+ return x.Rating
+ }
+ return nil
+}
+
+func (x *Product) GetAvailableTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.AvailableTime
+ }
+ return nil
+}
+
+func (x *Product) GetAvailability() Product_Availability {
+ if x != nil {
+ return x.Availability
+ }
+ return Product_AVAILABILITY_UNSPECIFIED
+}
+
+func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.AvailableQuantity
+ }
+ return nil
+}
+
+func (x *Product) GetFulfillmentInfo() []*FulfillmentInfo {
+ if x != nil {
+ return x.FulfillmentInfo
+ }
+ return nil
+}
+
+func (x *Product) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Product) GetImages() []*Image {
+ if x != nil {
+ return x.Images
+ }
+ return nil
+}
+
+func (x *Product) GetAudience() *Audience {
+ if x != nil {
+ return x.Audience
+ }
+ return nil
+}
+
+func (x *Product) GetColorInfo() *ColorInfo {
+ if x != nil {
+ return x.ColorInfo
+ }
+ return nil
+}
+
+func (x *Product) GetSizes() []string {
+ if x != nil {
+ return x.Sizes
+ }
+ return nil
+}
+
+func (x *Product) GetMaterials() []string {
+ if x != nil {
+ return x.Materials
+ }
+ return nil
+}
+
+func (x *Product) GetPatterns() []string {
+ if x != nil {
+ return x.Patterns
+ }
+ return nil
+}
+
+func (x *Product) GetConditions() []string {
+ if x != nil {
+ return x.Conditions
+ }
+ return nil
+}
+
+func (x *Product) GetStockingUnitRetrievableFields() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.StockingUnitRetrievableFields
+ }
+ return nil
+}
+
+func (x *Product) GetVariants() []*Product {
+ if x != nil {
+ return x.Variants
+ }
+ return nil
+}
+
+type isProduct_Expiration interface {
+ isProduct_Expiration()
+}
+
+type Product_ExpireTime struct {
+ // The timestamp when this product becomes unavailable for recommendation
+ // and search.
+ //
+ // If it is set, the [Product][google.cloud.retail.v2alpha.Product] is not
+ // available for recommendation and search after
+ // [expire_time][google.cloud.retail.v2alpha.Product.expire_time]. However,
+ // the product can still be retrieved by
+ // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct]
+ // and
+ // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts].
+ //
+ // Google Merchant Center property
+ // [expiration_date](https://support.google.com/merchants/answer/6324499).
+ ExpireTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=expire_time,json=expireTime,proto3,oneof"`
+}
+
+type Product_Ttl struct {
+ // Input only. The TTL (time to live) of the product.
+ //
+ // If it is set,
+ // [expire_time][google.cloud.retail.v2alpha.Product.expire_time] is set as
+ // current timestamp plus [ttl][google.cloud.retail.v2alpha.Product.ttl].
+ // The derived
+ // [expire_time][google.cloud.retail.v2alpha.Product.expire_time] is
+ // returned in the output and [ttl][google.cloud.retail.v2alpha.Product.ttl]
+ // is left blank when retrieving the
+ // [Product][google.cloud.retail.v2alpha.Product].
+ //
+ // If it is set, the product is not available for recommendation and search
+ // after current timestamp plus
+ // [ttl][google.cloud.retail.v2alpha.Product.ttl]. However, the product can
+ // still be retrieved by
+ // [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct]
+ // and
+ // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts].
+ Ttl *durationpb.Duration `protobuf:"bytes,17,opt,name=ttl,proto3,oneof"`
+}
+
+func (*Product_ExpireTime) isProduct_Expiration() {}
+
+func (*Product_Ttl) isProduct_Expiration() {}
+
+var File_google_cloud_retail_v2alpha_product_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_product_proto_rawDesc = []byte{
+ 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x1a,
+ 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+ 0xd7, 0x0f, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x65,
+ 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 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, 0x48, 0x00, 0x52, 0x0a,
+ 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x74, 0x74,
+ 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x48, 0x00, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x17,
+ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
+ 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x32,
+ 0x0a, 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d,
+ 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63,
+ 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49,
+ 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x74, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x67, 0x74, 0x69, 0x6e, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
+ 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74,
+ 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b,
+ 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23,
+ 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x74,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67,
+ 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a,
+ 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65,
+ 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0f,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e,
+ 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x12, 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, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
+ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69,
+ 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51,
+ 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x66, 0x69,
+ 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x15, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x0f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
+ 0x72, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x41,
+ 0x0a, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41,
+ 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63,
+ 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
+ 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63,
+ 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x7a, 0x65,
+ 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x12, 0x1c,
+ 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08,
+ 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
+ 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f,
+ 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x20, 0x73, 0x74, 0x6f, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65,
+ 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x1e, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x1d,
+ 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x74, 0x72,
+ 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x45, 0x0a,
+ 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69,
+ 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x6b, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x65, 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, 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x22, 0x46, 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,
+ 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
+ 0x56, 0x41, 0x52, 0x49, 0x41, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4c,
+ 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x69, 0x0a, 0x0c, 0x41, 0x76, 0x61,
+ 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x56, 0x41,
+ 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x5f, 0x53, 0x54,
+ 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f,
+ 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x4f, 0x52,
+ 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x43, 0x4b, 0x4f, 0x52, 0x44,
+ 0x45, 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01, 0x0a, 0x1d, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x5f, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f,
+ 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d, 0x42, 0x0c, 0x0a, 0x0a, 0x65,
+ 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc9, 0x02, 0x0a, 0x1f, 0x63, 0x6f,
+ 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0c, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
+ 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x41, 0x6c, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c,
+ 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_product_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_product_proto_rawDescData = file_google_cloud_retail_v2alpha_product_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_product_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_product_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_product_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_product_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_product_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_google_cloud_retail_v2alpha_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2alpha_product_proto_goTypes = []interface{}{
+ (Product_Type)(0), // 0: google.cloud.retail.v2alpha.Product.Type
+ (Product_Availability)(0), // 1: google.cloud.retail.v2alpha.Product.Availability
+ (*Product)(nil), // 2: google.cloud.retail.v2alpha.Product
+ nil, // 3: google.cloud.retail.v2alpha.Product.AttributesEntry
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*durationpb.Duration)(nil), // 5: google.protobuf.Duration
+ (*PriceInfo)(nil), // 6: google.cloud.retail.v2alpha.PriceInfo
+ (*Rating)(nil), // 7: google.cloud.retail.v2alpha.Rating
+ (*wrapperspb.Int32Value)(nil), // 8: google.protobuf.Int32Value
+ (*FulfillmentInfo)(nil), // 9: google.cloud.retail.v2alpha.FulfillmentInfo
+ (*Image)(nil), // 10: google.cloud.retail.v2alpha.Image
+ (*Audience)(nil), // 11: google.cloud.retail.v2alpha.Audience
+ (*ColorInfo)(nil), // 12: google.cloud.retail.v2alpha.ColorInfo
+ (*fieldmaskpb.FieldMask)(nil), // 13: google.protobuf.FieldMask
+ (*CustomAttribute)(nil), // 14: google.cloud.retail.v2alpha.CustomAttribute
+}
+var file_google_cloud_retail_v2alpha_product_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2alpha.Product.expire_time:type_name -> google.protobuf.Timestamp
+ 5, // 1: google.cloud.retail.v2alpha.Product.ttl:type_name -> google.protobuf.Duration
+ 0, // 2: google.cloud.retail.v2alpha.Product.type:type_name -> google.cloud.retail.v2alpha.Product.Type
+ 3, // 3: google.cloud.retail.v2alpha.Product.attributes:type_name -> google.cloud.retail.v2alpha.Product.AttributesEntry
+ 6, // 4: google.cloud.retail.v2alpha.Product.price_info:type_name -> google.cloud.retail.v2alpha.PriceInfo
+ 7, // 5: google.cloud.retail.v2alpha.Product.rating:type_name -> google.cloud.retail.v2alpha.Rating
+ 4, // 6: google.cloud.retail.v2alpha.Product.available_time:type_name -> google.protobuf.Timestamp
+ 1, // 7: google.cloud.retail.v2alpha.Product.availability:type_name -> google.cloud.retail.v2alpha.Product.Availability
+ 8, // 8: google.cloud.retail.v2alpha.Product.available_quantity:type_name -> google.protobuf.Int32Value
+ 9, // 9: google.cloud.retail.v2alpha.Product.fulfillment_info:type_name -> google.cloud.retail.v2alpha.FulfillmentInfo
+ 10, // 10: google.cloud.retail.v2alpha.Product.images:type_name -> google.cloud.retail.v2alpha.Image
+ 11, // 11: google.cloud.retail.v2alpha.Product.audience:type_name -> google.cloud.retail.v2alpha.Audience
+ 12, // 12: google.cloud.retail.v2alpha.Product.color_info:type_name -> google.cloud.retail.v2alpha.ColorInfo
+ 13, // 13: google.cloud.retail.v2alpha.Product.stocking_unit_retrievable_fields:type_name -> google.protobuf.FieldMask
+ 2, // 14: google.cloud.retail.v2alpha.Product.variants:type_name -> google.cloud.retail.v2alpha.Product
+ 14, // 15: google.cloud.retail.v2alpha.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2alpha.CustomAttribute
+ 16, // [16:16] is the sub-list for method output_type
+ 16, // [16:16] is the sub-list for method input_type
+ 16, // [16:16] is the sub-list for extension type_name
+ 16, // [16:16] is the sub-list for extension extendee
+ 0, // [0:16] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_product_proto_init() }
+func file_google_cloud_retail_v2alpha_product_proto_init() {
+ if File_google_cloud_retail_v2alpha_product_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_common_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Product); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*Product_ExpireTime)(nil),
+ (*Product_Ttl)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_product_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_product_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_product_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2alpha_product_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2alpha_product_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_product_proto = out.File
+ file_google_cloud_retail_v2alpha_product_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_product_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_product_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/product_service.pb.go b/googleapis/cloud/retail/v2alpha/product_service.pb.go
new file mode 100644
index 000000000..ad36a9dbe
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/product_service.pb.go
@@ -0,0 +1,1284 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/product_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for [CreateProduct][] method.
+type CreateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent catalog resource name, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The [Product][google.cloud.retail.v2alpha.Product] to create.
+ Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
+ // Required. The ID to use for the
+ // [Product][google.cloud.retail.v2alpha.Product], which will become the final
+ // component of the [Product.name][google.cloud.retail.v2alpha.Product.name].
+ //
+ // If the caller does not have permission to create the
+ // [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // This field must be unique among all
+ // [Product][google.cloud.retail.v2alpha.Product]s with the same
+ // [parent][google.cloud.retail.v2alpha.CreateProductRequest.parent].
+ // Otherwise, an ALREADY_EXISTS error is returned.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
+}
+
+func (x *CreateProductRequest) Reset() {
+ *x = CreateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateProductRequest) ProtoMessage() {}
+
+func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead.
+func (*CreateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CreateProductRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CreateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *CreateProductRequest) GetProductId() string {
+ if x != nil {
+ return x.ProductId
+ }
+ return ""
+}
+
+// Request message for [GetProduct][] method.
+type GetProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of
+ // [Product][google.cloud.retail.v2alpha.Product], such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to access the
+ // [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the requested [Product][google.cloud.retail.v2alpha.Product] does not
+ // exist, a NOT_FOUND error is returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetProductRequest) Reset() {
+ *x = GetProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetProductRequest) ProtoMessage() {}
+
+func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.
+func (*GetProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GetProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for [UpdateProduct][] method.
+type UpdateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The product to update/create.
+ //
+ // If the caller does not have permission to update the
+ // [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2alpha.Product] to update does not
+ // exist, a NOT_FOUND error is returned.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Indicates which fields in the provided
+ // [Product][google.cloud.retail.v2alpha.Product] to update. The immutable and
+ // output only fields are NOT supported. If not set, all supported fields (the
+ // fields that are neither immutable nor output only) are updated.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateProductRequest) Reset() {
+ *x = UpdateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateProductRequest) ProtoMessage() {}
+
+func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateProductRequest.ProtoReflect.Descriptor instead.
+func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for [DeleteProduct][] method.
+type DeleteProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of
+ // [Product][google.cloud.retail.v2alpha.Product], such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to delete the
+ // [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2alpha.Product] to delete does not
+ // exist, a NOT_FOUND error is returned.
+ //
+ // The [Product][google.cloud.retail.v2alpha.Product] to delete can neither be
+ // a non-empty
+ // [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
+ // [Product][google.cloud.retail.v2alpha.Product] nor a
+ // [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
+ // [Product][google.cloud.retail.v2alpha.Product] with more than one
+ // [variants][google.cloud.retail.v2alpha.Product.Type.VARIANT]. Otherwise, a
+ // FAILED_PRECONDITION error is returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *DeleteProductRequest) Reset() {
+ *x = DeleteProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteProductRequest) ProtoMessage() {}
+
+func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead.
+func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DeleteProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for
+// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
+// method.
+type ListProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent branch resource name, such as
+ // "projects/*/locations/global/catalogs/default_catalog/branches/0". Use
+ // "default_branch" as the branch ID, to list products under the default
+ // branch.
+ //
+ // If the caller does not have permission to list
+ // [Product][google.cloud.retail.v2alpha.Product]s under this branch,
+ // regardless of whether or not this branch exists, a PERMISSION_DENIED error
+ // is returned.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of [Product][google.cloud.retail.v2alpha.Product]s to
+ // return. If unspecified, defaults to 100. The maximum allowed value is 1000.
+ // Values above 1000 will be coerced to 1000.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // A page token
+ // [ListProductsResponse.next_page_token][google.cloud.retail.v2alpha.ListProductsResponse.next_page_token],
+ // received from a previous [ProductService.ListCatalogs][] call. Provide this
+ // to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
+ // must match the call that provided the page token. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // A filter to apply on the list results. Supported features:
+ //
+ // * List all the products under the parent branch if
+ // [filter][google.cloud.retail.v2alpha.ListProductsRequest.filter] is unset.
+ // * List products bundled in a collection. For example:
+ // `collection_product_name =
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/0/products/some_product_id"`
+ // * List products with a partibular type. For example:
+ // `type = "PRIMARY"`
+ // `type = "VARIANT"`
+ // `type = "COLLECTION"`
+ //
+ // If the field is unrecognizable, an INVALID_ARGUMENT error is returned.
+ //
+ // If the caller does not have permission to list
+ // [Product][google.cloud.retail.v2alpha.Product]s under this the specified
+ // [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
+ // [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
+ // not it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the specified
+ // [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
+ // [Product][google.cloud.retail.v2alpha.Product] does not exist, a NOT_FOUND
+ // error is returned.
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The fields of [Product][google.cloud.retail.v2alpha.Product] to return in
+ // the responses. If not set or empty, the following fields are returned:
+ //
+ // * [Product.name][google.cloud.retail.v2alpha.Product.name]
+ // * [Product.id][google.cloud.retail.v2alpha.Product.id]
+ // * [Product.title][google.cloud.retail.v2alpha.Product.title]
+ // * [Product.uri][google.cloud.retail.v2alpha.Product.uri]
+ // * [Product.images][google.cloud.retail.v2alpha.Product.images]
+ //
+ // If "*" is provided, all fields are returned.
+ // [Product.name][google.cloud.retail.v2alpha.Product.name] is always returned
+ // no matter what mask is set.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"`
+ // If true and
+ // [page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token] is
+ // empty,
+ // [ListProductsResponse.total_size][google.cloud.retail.v2alpha.ListProductsResponse.total_size]
+ // is set to the total count of matched items irrespective of pagination.
+ //
+ // Notice that setting this field to true affects the performance.
+ RequireTotalSize bool `protobuf:"varint,6,opt,name=require_total_size,json=requireTotalSize,proto3" json:"require_total_size,omitempty"`
+}
+
+func (x *ListProductsRequest) Reset() {
+ *x = ListProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListProductsRequest) ProtoMessage() {}
+
+func (x *ListProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListProductsRequest.ProtoReflect.Descriptor instead.
+func (*ListProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ListProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListProductsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListProductsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *ListProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *ListProductsRequest) GetReadMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.ReadMask
+ }
+ return nil
+}
+
+func (x *ListProductsRequest) GetRequireTotalSize() bool {
+ if x != nil {
+ return x.RequireTotalSize
+ }
+ return false
+}
+
+// Response message for
+// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
+// method.
+type ListProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The [Product][google.cloud.retail.v2alpha.Product]s.
+ Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
+ // A token that can be sent as
+ // [ListProductsRequest.page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token]
+ // to retrieve the next page. If this field is omitted, there are no
+ // subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+ // The total count of matched [Product][google.cloud.retail.v2alpha.Product]s
+ // irrespective of pagination. The total number of
+ // [Product][google.cloud.retail.v2alpha.Product]s returned by pagination may
+ // be less than the
+ // [total_size][google.cloud.retail.v2alpha.ListProductsResponse.total_size]
+ // that matches.
+ //
+ // This field is ignored if
+ // [ListProductsRequest.require_total_size][google.cloud.retail.v2alpha.ListProductsRequest.require_total_size]
+ // is not set or
+ // [ListProductsRequest.page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token]
+ // is not empty.
+ TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
+}
+
+func (x *ListProductsResponse) Reset() {
+ *x = ListProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListProductsResponse) ProtoMessage() {}
+
+func (x *ListProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListProductsResponse.ProtoReflect.Descriptor instead.
+func (*ListProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ListProductsResponse) GetProducts() []*Product {
+ if x != nil {
+ return x.Products
+ }
+ return nil
+}
+
+func (x *ListProductsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+func (x *ListProductsResponse) GetTotalSize() int32 {
+ if x != nil {
+ return x.TotalSize
+ }
+ return 0
+}
+
+var File_google_cloud_retail_v2alpha_product_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_product_service_proto_rawDesc = []byte{
+ 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 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, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x75,
+ 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbd, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0,
+ 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61,
+ 0x6e, 0x63, 0x68, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a,
+ 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a,
+ 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73,
+ 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d,
+ 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22,
+ 0x51, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa,
+ 0x41, 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68,
+ 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67,
+ 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x09,
+ 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61,
+ 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
+ 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53,
+ 0x69, 0x7a, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x26,
+ 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67,
+ 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
+ 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x32, 0xa9, 0x0d, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x22, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x47, 0x2f, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f,
+ 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x19,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x47, 0x65,
+ 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x57,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65,
+ 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d,
+ 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcd, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
+ 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0xda, 0x41,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xe1, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x22, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x32, 0x50, 0x2f, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c,
+ 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xb3, 0x01, 0x0a, 0x0d,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x31, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a,
+ 0x2a, 0x48, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x9d, 0x02, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 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, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d,
+ 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x70, 0x75, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a,
+ 0xca, 0x41, 0x5e, 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x12, 0xa2, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x73, 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, 0xbc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53,
+ 0x22, 0x4e, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d,
+ 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+ 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x60, 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 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, 0xe1, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
+ 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
+ 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2,
+ 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_product_service_proto_rawDescData = file_google_cloud_retail_v2alpha_product_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_product_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_product_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_google_cloud_retail_v2alpha_product_service_proto_goTypes = []interface{}{
+ (*CreateProductRequest)(nil), // 0: google.cloud.retail.v2alpha.CreateProductRequest
+ (*GetProductRequest)(nil), // 1: google.cloud.retail.v2alpha.GetProductRequest
+ (*UpdateProductRequest)(nil), // 2: google.cloud.retail.v2alpha.UpdateProductRequest
+ (*DeleteProductRequest)(nil), // 3: google.cloud.retail.v2alpha.DeleteProductRequest
+ (*ListProductsRequest)(nil), // 4: google.cloud.retail.v2alpha.ListProductsRequest
+ (*ListProductsResponse)(nil), // 5: google.cloud.retail.v2alpha.ListProductsResponse
+ (*Product)(nil), // 6: google.cloud.retail.v2alpha.Product
+ (*fieldmaskpb.FieldMask)(nil), // 7: google.protobuf.FieldMask
+ (*PurgeProductsRequest)(nil), // 8: google.cloud.retail.v2alpha.PurgeProductsRequest
+ (*ImportProductsRequest)(nil), // 9: google.cloud.retail.v2alpha.ImportProductsRequest
+ (*emptypb.Empty)(nil), // 10: google.protobuf.Empty
+ (*longrunning.Operation)(nil), // 11: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2alpha.CreateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product
+ 6, // 1: google.cloud.retail.v2alpha.UpdateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product
+ 7, // 2: google.cloud.retail.v2alpha.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 7, // 3: google.cloud.retail.v2alpha.ListProductsRequest.read_mask:type_name -> google.protobuf.FieldMask
+ 6, // 4: google.cloud.retail.v2alpha.ListProductsResponse.products:type_name -> google.cloud.retail.v2alpha.Product
+ 0, // 5: google.cloud.retail.v2alpha.ProductService.CreateProduct:input_type -> google.cloud.retail.v2alpha.CreateProductRequest
+ 1, // 6: google.cloud.retail.v2alpha.ProductService.GetProduct:input_type -> google.cloud.retail.v2alpha.GetProductRequest
+ 4, // 7: google.cloud.retail.v2alpha.ProductService.ListProducts:input_type -> google.cloud.retail.v2alpha.ListProductsRequest
+ 2, // 8: google.cloud.retail.v2alpha.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2alpha.UpdateProductRequest
+ 3, // 9: google.cloud.retail.v2alpha.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2alpha.DeleteProductRequest
+ 8, // 10: google.cloud.retail.v2alpha.ProductService.PurgeProducts:input_type -> google.cloud.retail.v2alpha.PurgeProductsRequest
+ 9, // 11: google.cloud.retail.v2alpha.ProductService.ImportProducts:input_type -> google.cloud.retail.v2alpha.ImportProductsRequest
+ 6, // 12: google.cloud.retail.v2alpha.ProductService.CreateProduct:output_type -> google.cloud.retail.v2alpha.Product
+ 6, // 13: google.cloud.retail.v2alpha.ProductService.GetProduct:output_type -> google.cloud.retail.v2alpha.Product
+ 5, // 14: google.cloud.retail.v2alpha.ProductService.ListProducts:output_type -> google.cloud.retail.v2alpha.ListProductsResponse
+ 6, // 15: google.cloud.retail.v2alpha.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2alpha.Product
+ 10, // 16: google.cloud.retail.v2alpha.ProductService.DeleteProduct:output_type -> google.protobuf.Empty
+ 11, // 17: google.cloud.retail.v2alpha.ProductService.PurgeProducts:output_type -> google.longrunning.Operation
+ 11, // 18: google.cloud.retail.v2alpha.ProductService.ImportProducts:output_type -> google.longrunning.Operation
+ 12, // [12:19] is the sub-list for method output_type
+ 5, // [5:12] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_product_service_proto_init() }
+func file_google_cloud_retail_v2alpha_product_service_proto_init() {
+ if File_google_cloud_retail_v2alpha_product_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_init()
+ file_google_cloud_retail_v2alpha_import_config_proto_init()
+ file_google_cloud_retail_v2alpha_product_proto_init()
+ file_google_cloud_retail_v2alpha_purge_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_product_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_product_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_product_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_product_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_product_service_proto = out.File
+ file_google_cloud_retail_v2alpha_product_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_product_service_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// ProductServiceClient is the client API for ProductService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ProductServiceClient interface {
+ // Creates a [Product][google.cloud.retail.v2alpha.Product].
+ CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2alpha.Product].
+ GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Gets a list of [Product][]s.
+ ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error)
+ // Updates a [Product][google.cloud.retail.v2alpha.Product]. Non-existing
+ // items will be created.
+ UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2alpha.Product].
+ DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2alpha.Product]s
+ // under a branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2alpha.Product]s,
+ // this operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2alpha.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2alpha.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2alpha.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2alpha.Product]s to be successfully updated.
+ ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type productServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient {
+ return &productServiceClient{cc}
+}
+
+func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/CreateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/GetProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) {
+ out := new(ListProductsResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/ListProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/UpdateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/DeleteProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/PurgeProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/ImportProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ProductServiceServer is the server API for ProductService service.
+type ProductServiceServer interface {
+ // Creates a [Product][google.cloud.retail.v2alpha.Product].
+ CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2alpha.Product].
+ GetProduct(context.Context, *GetProductRequest) (*Product, error)
+ // Gets a list of [Product][]s.
+ ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error)
+ // Updates a [Product][google.cloud.retail.v2alpha.Product]. Non-existing
+ // items will be created.
+ UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2alpha.Product].
+ DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2alpha.Product]s
+ // under a branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2alpha.Product]s,
+ // this operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2alpha.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2alpha.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2alpha.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2alpha.Product]s to be successfully updated.
+ ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedProductServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedProductServiceServer struct {
+}
+
+func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented")
+}
+func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeProducts not implemented")
+}
+func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented")
+}
+
+func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) {
+ s.RegisterService(&_ProductService_serviceDesc, srv)
+}
+
+func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).CreateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/CreateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).GetProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/GetProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).ListProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/ListProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).ListProducts(ctx, req.(*ListProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/UpdateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/DeleteProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_PurgeProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/PurgeProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, req.(*PurgeProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).ImportProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.ProductService/ImportProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _ProductService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2alpha.ProductService",
+ HandlerType: (*ProductServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "CreateProduct",
+ Handler: _ProductService_CreateProduct_Handler,
+ },
+ {
+ MethodName: "GetProduct",
+ Handler: _ProductService_GetProduct_Handler,
+ },
+ {
+ MethodName: "ListProducts",
+ Handler: _ProductService_ListProducts_Handler,
+ },
+ {
+ MethodName: "UpdateProduct",
+ Handler: _ProductService_UpdateProduct_Handler,
+ },
+ {
+ MethodName: "DeleteProduct",
+ Handler: _ProductService_DeleteProduct_Handler,
+ },
+ {
+ MethodName: "PurgeProducts",
+ Handler: _ProductService_PurgeProducts_Handler,
+ },
+ {
+ MethodName: "ImportProducts",
+ Handler: _ProductService_ImportProducts_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2alpha/product_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2alpha/purge_config.pb.go b/googleapis/cloud/retail/v2alpha/purge_config.pb.go
new file mode 100644
index 000000000..bbbaaf807
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/purge_config.pb.go
@@ -0,0 +1,588 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/purge_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Metadata related to the progress of the Purge operation.
+// This will be returned by the google.longrunning.Operation.metadata field.
+type PurgeMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The ID of the request / operation.
+ Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+}
+
+func (x *PurgeMetadata) Reset() {
+ *x = PurgeMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeMetadata) ProtoMessage() {}
+
+func (x *PurgeMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeMetadata.ProtoReflect.Descriptor instead.
+func (*PurgeMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PurgeMetadata) GetOperation() string {
+ if x != nil {
+ return x.Operation
+ }
+ return ""
+}
+
+func (x *PurgeMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+// Request message for PurgeProducts method.
+type PurgeProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the catalog under which the products are
+ // created. The format is
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. Filter matching the products to be purged. Only supported value
+ // at the moment is "*" (all items).
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // products to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeProductsRequest) Reset() {
+ *x = PurgeProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsRequest) ProtoMessage() {}
+
+func (x *PurgeProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PurgeProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeProductsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of products purged as a result of the operation.
+ PurgedCount int64 `protobuf:"varint,1,opt,name=purged_count,json=purgedCount,proto3" json:"purged_count,omitempty"`
+ // A random sampling of products deleted (or will be deleted) depending
+ // on the `force` property in the request. Max of 500 items will be returned.
+ // Currently, this is only populated if force=false.
+ ProductsSample []*Product `protobuf:"bytes,2,rep,name=products_sample,json=productsSample,proto3" json:"products_sample,omitempty"`
+}
+
+func (x *PurgeProductsResponse) Reset() {
+ *x = PurgeProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsResponse) ProtoMessage() {}
+
+func (x *PurgeProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurgeProductsResponse) GetPurgedCount() int64 {
+ if x != nil {
+ return x.PurgedCount
+ }
+ return 0
+}
+
+func (x *PurgeProductsResponse) GetProductsSample() []*Product {
+ if x != nil {
+ return x.ProductsSample
+ }
+ return nil
+}
+
+// Request message for PurgeUserEvents method.
+type PurgeUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the event_store under which the events are
+ // created. The format is
+ //
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The filter string to specify the events to be deleted. Empty
+ // string filter is not allowed. The eligible fields
+ // for filtering are:
+ //
+ // * `eventType`: UserEvent.eventType field of type string.
+ // * `eventTime`: in ISO 8601 "zulu" format.
+ // * `visitorId`: field of type string. Specifying this will delete all
+ // events associated with a visitor.
+ // * `userId`: field of type string. Specifying this will delete all events
+ // associated with a user.
+ //
+ // Examples:
+ //
+ // * Deleting all events in a time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z"
+ // eventTime < "2012-04-23T18:30:43.511Z"`
+ // * Deleting specific eventType in time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view"`
+ // * Deleting all events for a specific visitor:
+ // `visitorId = "visitor1024"`
+ //
+ // The filtering fields are assumed to have an implicit AND.
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // events to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeUserEventsRequest) Reset() {
+ *x = PurgeUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsRequest) ProtoMessage() {}
+
+func (x *PurgeUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *PurgeUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeUserEventsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of events purged as a result of the operation.
+ PurgedEventsCount int64 `protobuf:"varint,1,opt,name=purged_events_count,json=purgedEventsCount,proto3" json:"purged_events_count,omitempty"`
+ // A sampling of events deleted (or will be deleted) depending on the `force`
+ // property in the request. Max of 500 items will be returned.
+ UserEventsSample []*UserEvent `protobuf:"bytes,2,rep,name=user_events_sample,json=userEventsSample,proto3" json:"user_events_sample,omitempty"`
+}
+
+func (x *PurgeUserEventsResponse) Reset() {
+ *x = PurgeUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsResponse) ProtoMessage() {}
+
+func (x *PurgeUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *PurgeUserEventsResponse) GetPurgedEventsCount() int64 {
+ if x != nil {
+ return x.PurgedEventsCount
+ }
+ return 0
+}
+
+func (x *PurgeUserEventsResponse) GetUserEventsSample() []*UserEvent {
+ if x != nil {
+ return x.UserEventsSample
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2alpha_purge_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_purge_config_proto_rawDesc = []byte{
+ 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x75,
+ 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 0x29, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x6a, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
+ 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x14, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x50,
+ 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x72, 0x67,
+ 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x22, 0x68, 0x0a, 0x16, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a,
+ 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f,
+ 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65,
+ 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13,
+ 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x75, 0x72, 0x67, 0x65,
+ 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x12,
+ 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70,
+ 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x61, 0x6d, 0x70,
+ 0x6c, 0x65, 0x42, 0xde, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x10, 0x50, 0x75, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65,
+ 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
+ 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06,
+ 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_purge_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_purge_config_proto_rawDescData = file_google_cloud_retail_v2alpha_purge_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_purge_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_purge_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_purge_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_purge_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_purge_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2alpha_purge_config_proto_goTypes = []interface{}{
+ (*PurgeMetadata)(nil), // 0: google.cloud.retail.v2alpha.PurgeMetadata
+ (*PurgeProductsRequest)(nil), // 1: google.cloud.retail.v2alpha.PurgeProductsRequest
+ (*PurgeProductsResponse)(nil), // 2: google.cloud.retail.v2alpha.PurgeProductsResponse
+ (*PurgeUserEventsRequest)(nil), // 3: google.cloud.retail.v2alpha.PurgeUserEventsRequest
+ (*PurgeUserEventsResponse)(nil), // 4: google.cloud.retail.v2alpha.PurgeUserEventsResponse
+ (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
+ (*Product)(nil), // 6: google.cloud.retail.v2alpha.Product
+ (*UserEvent)(nil), // 7: google.cloud.retail.v2alpha.UserEvent
+}
+var file_google_cloud_retail_v2alpha_purge_config_proto_depIdxs = []int32{
+ 5, // 0: google.cloud.retail.v2alpha.PurgeMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 6, // 1: google.cloud.retail.v2alpha.PurgeProductsResponse.products_sample:type_name -> google.cloud.retail.v2alpha.Product
+ 7, // 2: google.cloud.retail.v2alpha.PurgeUserEventsResponse.user_events_sample:type_name -> google.cloud.retail.v2alpha.UserEvent
+ 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_retail_v2alpha_purge_config_proto_init() }
+func file_google_cloud_retail_v2alpha_purge_config_proto_init() {
+ if File_google_cloud_retail_v2alpha_purge_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_product_proto_init()
+ file_google_cloud_retail_v2alpha_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_purge_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_purge_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_purge_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_purge_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_purge_config_proto = out.File
+ file_google_cloud_retail_v2alpha_purge_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_purge_config_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_purge_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/search_service.pb.go b/googleapis/cloud/retail/v2alpha/search_service.pb.go
new file mode 100644
index 000000000..08d96f746
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/search_service.pb.go
@@ -0,0 +1,1822 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/search_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The relevance threshold of the search results. The higher relevance
+// threshold is, the higher relevant results are shown and the less number of
+// results are returned.
+type SearchRequest_RelevanceThreshold int32
+
+const (
+ // Default value. Defaults to
+ // [RelevanceThreshold.HIGH][google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold.HIGH].
+ SearchRequest_RELEVANCE_THRESHOLD_UNSPECIFIED SearchRequest_RelevanceThreshold = 0
+ // High relevance threshold.
+ SearchRequest_HIGH SearchRequest_RelevanceThreshold = 1
+ // Medium relevance threshold.
+ SearchRequest_MEDIUM SearchRequest_RelevanceThreshold = 2
+ // Low relevance threshold.
+ SearchRequest_LOW SearchRequest_RelevanceThreshold = 3
+ // Lowest relevance threshold.
+ SearchRequest_LOWEST SearchRequest_RelevanceThreshold = 4
+)
+
+// Enum value maps for SearchRequest_RelevanceThreshold.
+var (
+ SearchRequest_RelevanceThreshold_name = map[int32]string{
+ 0: "RELEVANCE_THRESHOLD_UNSPECIFIED",
+ 1: "HIGH",
+ 2: "MEDIUM",
+ 3: "LOW",
+ 4: "LOWEST",
+ }
+ SearchRequest_RelevanceThreshold_value = map[string]int32{
+ "RELEVANCE_THRESHOLD_UNSPECIFIED": 0,
+ "HIGH": 1,
+ "MEDIUM": 2,
+ "LOW": 3,
+ "LOWEST": 4,
+ }
+)
+
+func (x SearchRequest_RelevanceThreshold) Enum() *SearchRequest_RelevanceThreshold {
+ p := new(SearchRequest_RelevanceThreshold)
+ *p = x
+ return p
+}
+
+func (x SearchRequest_RelevanceThreshold) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SearchRequest_RelevanceThreshold) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2alpha_search_service_proto_enumTypes[0].Descriptor()
+}
+
+func (SearchRequest_RelevanceThreshold) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2alpha_search_service_proto_enumTypes[0]
+}
+
+func (x SearchRequest_RelevanceThreshold) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SearchRequest_RelevanceThreshold.Descriptor instead.
+func (SearchRequest_RelevanceThreshold) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// Enum describing under which condition query expansion should occur.
+type SearchRequest_QueryExpansionSpec_Condition int32
+
+const (
+ // Unspecified query expansion condition. This defaults to
+ // [Condition.DISABLED][google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.Condition.DISABLED].
+ SearchRequest_QueryExpansionSpec_CONDITION_UNSPECIFIED SearchRequest_QueryExpansionSpec_Condition = 0
+ // Disabled query expansion. Only the exact search query is used, even if
+ // [SearchProductsResponse.total_size][] is zero.
+ SearchRequest_QueryExpansionSpec_DISABLED SearchRequest_QueryExpansionSpec_Condition = 1
+ // Enable query expansion when [SearchProductsResponse.total_size][] is
+ // zero.
+ SearchRequest_QueryExpansionSpec_ZERO_RESULT SearchRequest_QueryExpansionSpec_Condition = 2
+)
+
+// Enum value maps for SearchRequest_QueryExpansionSpec_Condition.
+var (
+ SearchRequest_QueryExpansionSpec_Condition_name = map[int32]string{
+ 0: "CONDITION_UNSPECIFIED",
+ 1: "DISABLED",
+ 2: "ZERO_RESULT",
+ }
+ SearchRequest_QueryExpansionSpec_Condition_value = map[string]int32{
+ "CONDITION_UNSPECIFIED": 0,
+ "DISABLED": 1,
+ "ZERO_RESULT": 2,
+ }
+)
+
+func (x SearchRequest_QueryExpansionSpec_Condition) Enum() *SearchRequest_QueryExpansionSpec_Condition {
+ p := new(SearchRequest_QueryExpansionSpec_Condition)
+ *p = x
+ return p
+}
+
+func (x SearchRequest_QueryExpansionSpec_Condition) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SearchRequest_QueryExpansionSpec_Condition) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2alpha_search_service_proto_enumTypes[1].Descriptor()
+}
+
+func (SearchRequest_QueryExpansionSpec_Condition) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2alpha_search_service_proto_enumTypes[1]
+}
+
+func (x SearchRequest_QueryExpansionSpec_Condition) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SearchRequest_QueryExpansionSpec_Condition.Descriptor instead.
+func (SearchRequest_QueryExpansionSpec_Condition) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 2, 0}
+}
+
+// Request message for
+// [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]
+// method.
+type SearchRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the search engine placement, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/placements/default_search".
+ // This field is used to identify the set of models that will be used to make
+ // the search.
+ //
+ // We currently support one placement with the following ID:
+ //
+ // * `default_search`.
+ Placement string `protobuf:"bytes,1,opt,name=placement,proto3" json:"placement,omitempty"`
+ // The branch resource name, such as
+ // "projects/*/locations/global/catalogs/default_catalog/branches/0".
+ //
+ // Use "default_branch" as the branch ID or leave this field empty, to search
+ // products under the default branch.
+ Branch string `protobuf:"bytes,2,opt,name=branch,proto3" json:"branch,omitempty"`
+ // Required. Raw search query.
+ Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
+ // Required. A unique identifier for tracking visitors. For example, this
+ // could be implemented with a http cookie, which should be able to uniquely
+ // identify a visitor on a single device. This unique identifier should not
+ // change if the visitor log in/out of the website.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ VisitorId string `protobuf:"bytes,4,opt,name=visitor_id,json=visitorId,proto3" json:"visitor_id,omitempty"`
+ // User information.
+ UserInfo *UserInfo `protobuf:"bytes,5,opt,name=user_info,json=userInfo,proto3" json:"user_info,omitempty"`
+ // Maximum number of [Product][google.cloud.retail.v2alpha.Product]s to
+ // return. If unspecified, defaults to a reasonable value. The maximum allowed
+ // value is 120. Values above 120 will be coerced to 120.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ PageSize int32 `protobuf:"varint,7,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // A page token
+ // [SearchResponse.next_page_token][google.cloud.retail.v2alpha.SearchResponse.next_page_token],
+ // received from a previous
+ // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]
+ // call. Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]
+ // must match the call that provided the page token. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PageToken string `protobuf:"bytes,8,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // A 0-indexed integer that specifies the current offset (that is, starting
+ // result location, amongst the
+ // [Product][google.cloud.retail.v2alpha.Product]s deemed by the API as
+ // relevant) in search results. This field is only considered if
+ // [page_token][google.cloud.retail.v2alpha.SearchRequest.page_token] is
+ // unset.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ Offset int32 `protobuf:"varint,9,opt,name=offset,proto3" json:"offset,omitempty"`
+ // The filter syntax consists of an expression language for constructing a
+ // predicate from one or more fields of the products being filtered. Filter
+ // expression is case-sensitive. See more details at this [user
+ //
+ // guide](https:
+ // //cloud.google.com/recommendations/retai
+ // // l-search/docs/search-advanced#filter).
+ //
+ // If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+ Filter string `protobuf:"bytes,10,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The order in which products are returned. Products can be ordered by
+ // a field in an [Product][google.cloud.retail.v2alpha.Product] object. Leave
+ // it unset if ordered by relevance. OrderBy expression is case-sensitive. See
+ // more details at this [user
+ //
+ // guide](https:
+ // //cloud.google.com/recommendations/retai
+ // // l-search/docs/search-advanced#order).
+ //
+ // If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+ OrderBy string `protobuf:"bytes,11,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
+ // Facet specifications for faceted search. If empty, no facets are returned.
+ //
+ // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error
+ // is returned.
+ FacetSpecs []*SearchRequest_FacetSpec `protobuf:"bytes,12,rep,name=facet_specs,json=facetSpecs,proto3" json:"facet_specs,omitempty"`
+ // Boost specification to boost certain products.
+ BoostSpec *SearchRequest_BoostSpec `protobuf:"bytes,13,opt,name=boost_spec,json=boostSpec,proto3" json:"boost_spec,omitempty"`
+ // The query expansion specification that specifies the conditions under which
+ // query expansion will occur.
+ QueryExpansionSpec *SearchRequest_QueryExpansionSpec `protobuf:"bytes,14,opt,name=query_expansion_spec,json=queryExpansionSpec,proto3" json:"query_expansion_spec,omitempty"`
+ // The relevance threshold of the search results.
+ //
+ // Defaults to
+ // [RelevanceThreshold.HIGH][google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold.HIGH],
+ // which means only the most relevant results are shown, and the least number
+ // of results are returned.
+ RelevanceThreshold SearchRequest_RelevanceThreshold `protobuf:"varint,15,opt,name=relevance_threshold,json=relevanceThreshold,proto3,enum=google.cloud.retail.v2alpha.SearchRequest_RelevanceThreshold" json:"relevance_threshold,omitempty"`
+ // The fields of [Product][google.cloud.retail.v2alpha.Product] to return in
+ // search responses. If not set or empty, the following fields are returned:
+ //
+ // * [Product.name][google.cloud.retail.v2alpha.Product.name]
+ //
+ // [Product.name][google.cloud.retail.v2alpha.Product.name] is always returned
+ // no matter what mask is set.
+ //
+ // To read custom attributes, include paths of the form "customAttributes.key"
+ // where "key" is the key of a custom attribute, as specified in
+ // [Product.custom_attributes][].
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,16,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"`
+ // The keys to fetch and rollup the matching
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s attributes. The attributes
+ // from all the matching
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s are merged and
+ // de-duplicated. Notice that rollup
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s attributes will lead to
+ // extra query latency. Maximum number of keys is 10.
+ //
+ // For
+ // [Product.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info],
+ // a fulfillment type and a fulfillment ID must be provided in the format of
+ // "fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123",
+ // "pickupInStore" is fulfillment type and "store123" is the store ID.
+ //
+ // Supported keys are:
+ //
+ // * colorFamily
+ // * price
+ // * originalPrice
+ // * discount
+ // * customAttributes.key, where key is any key in the
+ // [Product.custom_attributes][] map.
+ // * pickupInStore.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.PICKUP_IN_STORE][].
+ // * shipToStore.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.SHIP_TO_STORE][].
+ // * sameDayDelivery.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
+ // * nextDayDelivery.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.NEXT_DAY_DELIVERY][].
+ // * customFulfillment1.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.CUSTOM_TYPE_1][].
+ // * customFulfillment2.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.CUSTOM_TYPE_2][].
+ // * customFulfillment3.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.CUSTOM_TYPE_3][].
+ // * customFulfillment4.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.CUSTOM_TYPE_4][].
+ // * customFulfillment5.id, where id is any [FulfillmentInfo.ids][] for type
+ // [FulfillmentInfo.Type.CUSTOM_TYPE_5][].
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ VariantRollupKeys []string `protobuf:"bytes,17,rep,name=variant_rollup_keys,json=variantRollupKeys,proto3" json:"variant_rollup_keys,omitempty"`
+}
+
+func (x *SearchRequest) Reset() {
+ *x = SearchRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchRequest) ProtoMessage() {}
+
+func (x *SearchRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead.
+func (*SearchRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *SearchRequest) GetPlacement() string {
+ if x != nil {
+ return x.Placement
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetBranch() string {
+ if x != nil {
+ return x.Branch
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetQuery() string {
+ if x != nil {
+ return x.Query
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetVisitorId() string {
+ if x != nil {
+ return x.VisitorId
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetUserInfo() *UserInfo {
+ if x != nil {
+ return x.UserInfo
+ }
+ return nil
+}
+
+func (x *SearchRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *SearchRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetOffset() int32 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+
+func (x *SearchRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetOrderBy() string {
+ if x != nil {
+ return x.OrderBy
+ }
+ return ""
+}
+
+func (x *SearchRequest) GetFacetSpecs() []*SearchRequest_FacetSpec {
+ if x != nil {
+ return x.FacetSpecs
+ }
+ return nil
+}
+
+func (x *SearchRequest) GetBoostSpec() *SearchRequest_BoostSpec {
+ if x != nil {
+ return x.BoostSpec
+ }
+ return nil
+}
+
+func (x *SearchRequest) GetQueryExpansionSpec() *SearchRequest_QueryExpansionSpec {
+ if x != nil {
+ return x.QueryExpansionSpec
+ }
+ return nil
+}
+
+func (x *SearchRequest) GetRelevanceThreshold() SearchRequest_RelevanceThreshold {
+ if x != nil {
+ return x.RelevanceThreshold
+ }
+ return SearchRequest_RELEVANCE_THRESHOLD_UNSPECIFIED
+}
+
+func (x *SearchRequest) GetReadMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.ReadMask
+ }
+ return nil
+}
+
+func (x *SearchRequest) GetVariantRollupKeys() []string {
+ if x != nil {
+ return x.VariantRollupKeys
+ }
+ return nil
+}
+
+// Response message for
+// [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search]
+// method.
+type SearchResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of matched items. The order represents the ranking.
+ Results []*SearchResponse_SearchResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ // Results of facets requested by user.
+ Facets []*SearchResponse_Facet `protobuf:"bytes,2,rep,name=facets,proto3" json:"facets,omitempty"`
+ // The total count of matched items irrespective of pagination. The total
+ // number of [results][google.cloud.retail.v2alpha.SearchResponse.results]
+ // returned by pagination may be less than the
+ // [total_size][google.cloud.retail.v2alpha.SearchResponse.total_size] that
+ // matches.
+ TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
+ // If spell correction applies, the corrected query. Otherwise, empty.
+ CorrectedQuery string `protobuf:"bytes,4,opt,name=corrected_query,json=correctedQuery,proto3" json:"corrected_query,omitempty"`
+ // A unique search token. This should be included in the
+ // [UserEvent][google.cloud.retail.v2alpha.UserEvent] logs resulting from this
+ // search, which enables accurate attribution of search model performance.
+ AttributionToken string `protobuf:"bytes,5,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // A token that can be sent as
+ // [SearchRequest.page_token][google.cloud.retail.v2alpha.SearchRequest.page_token]
+ // to retrieve the next page. If this field is omitted, there are no
+ // subsequent pages.
+ NextPageToken string `protobuf:"bytes,6,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+ // Query expansion information for the returned results.
+ QueryExpansionInfo *SearchResponse_QueryExpansionInfo `protobuf:"bytes,7,opt,name=query_expansion_info,json=queryExpansionInfo,proto3" json:"query_expansion_info,omitempty"`
+}
+
+func (x *SearchResponse) Reset() {
+ *x = SearchResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchResponse) ProtoMessage() {}
+
+func (x *SearchResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead.
+func (*SearchResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *SearchResponse) GetResults() []*SearchResponse_SearchResult {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+func (x *SearchResponse) GetFacets() []*SearchResponse_Facet {
+ if x != nil {
+ return x.Facets
+ }
+ return nil
+}
+
+func (x *SearchResponse) GetTotalSize() int32 {
+ if x != nil {
+ return x.TotalSize
+ }
+ return 0
+}
+
+func (x *SearchResponse) GetCorrectedQuery() string {
+ if x != nil {
+ return x.CorrectedQuery
+ }
+ return ""
+}
+
+func (x *SearchResponse) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *SearchResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+func (x *SearchResponse) GetQueryExpansionInfo() *SearchResponse_QueryExpansionInfo {
+ if x != nil {
+ return x.QueryExpansionInfo
+ }
+ return nil
+}
+
+// A facet specification to perform faceted search.
+type SearchRequest_FacetSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Supported textual and numerical facet keys in
+ // [Product][google.cloud.retail.v2alpha.Product] object, over which the
+ // facet values are computed. Facet key is case-sensitive.
+ //
+ // If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ // The intervals into which values should be bucketized.
+ //
+ // A maximum of 30 values are allowed. Must be set for facets with numerical
+ // values. Must not be set for facet with text values. Otherwise, an
+ // INVALID_ARGUMENT is returned.
+ Intervals []*Interval `protobuf:"bytes,2,rep,name=intervals,proto3" json:"intervals,omitempty"`
+ // Only get facet for the given restricted values. For example, when using
+ // "pickupInStore" as key and set restricted values to ["store123",
+ // "store456"], only facets for "store123" and "store456" are returned. Only
+ // supported on textual fields. Maximum is 20.
+ //
+ // Must be set for the following facet keys:
+ //
+ // * `pickupInStore`
+ // * `shipToStore`
+ // * `sameDayDelivery`
+ // * `nextDayDelivery`
+ // * `customFulfillment1`
+ // * `customFulfillment2`
+ // * `customFulfillment3`
+ // * `customFulfillment4`
+ // * `customFulfillment5`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ RestrictedValues []string `protobuf:"bytes,3,rep,name=restricted_values,json=restrictedValues,proto3" json:"restricted_values,omitempty"`
+ // List of keys to exclude when faceting.
+ //
+ // By default, [FacetKey.key][] is not excluded from the filter unless it is
+ // listed in [FacetKey.excluded_filter_keys][].
+ //
+ // For example, suppose there are 100 products with color facet "Red" and
+ // 200 products with color facet "Blue". A query containing the filter
+ // "colorFamily:ANY("Red")" and have "colorFamily" as [FacetKey.key][] will
+ // by default return the "Red" with count 100.
+ //
+ // If [FacetKey.excluded_filter_keys][] contains "colorFamily", then the
+ // query returns both the "Red" with count 100 and "Blue" with count 200,
+ // because the "colorFamily" key is now excluded from the filter.
+ //
+ // A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error
+ // is returned.
+ ExcludedFilterKeys []string `protobuf:"bytes,4,rep,name=excluded_filter_keys,json=excludedFilterKeys,proto3" json:"excluded_filter_keys,omitempty"`
+ // Maximum of facet values that should be returned for this facet. If
+ // unspecified, defaults to 20. The maximum allowed value is 300. Values
+ // above 300 will be coerced to 300.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ Limit int32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
+ // The order in which [Facet.values][] are returned.
+ //
+ // Allowed values are:
+ //
+ // * "count desc", which means order by [Facet.FacetValue.count][]
+ // descending.
+ //
+ // * "value desc", which means order by [Facet.FacetValue.value][]
+ // descending.
+ // Only applies to textual facets.
+ //
+ // If not set, textual values are sorted in dictionary order; numerical
+ // intervals are sorted in the order given by
+ // [FacetSpec.FacetKey.intervals][]; [FulfillmentInfo.ids][] are sorted in
+ // the order given by [FacetSpec.FacetKey.restricted_values][].
+ //
+ // If this field is unrecognizable, an INVALID_ARGUMENT is returned.
+ OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
+}
+
+func (x *SearchRequest_FacetSpec) Reset() {
+ *x = SearchRequest_FacetSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchRequest_FacetSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchRequest_FacetSpec) ProtoMessage() {}
+
+func (x *SearchRequest_FacetSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchRequest_FacetSpec.ProtoReflect.Descriptor instead.
+func (*SearchRequest_FacetSpec) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *SearchRequest_FacetSpec) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *SearchRequest_FacetSpec) GetIntervals() []*Interval {
+ if x != nil {
+ return x.Intervals
+ }
+ return nil
+}
+
+func (x *SearchRequest_FacetSpec) GetRestrictedValues() []string {
+ if x != nil {
+ return x.RestrictedValues
+ }
+ return nil
+}
+
+func (x *SearchRequest_FacetSpec) GetExcludedFilterKeys() []string {
+ if x != nil {
+ return x.ExcludedFilterKeys
+ }
+ return nil
+}
+
+func (x *SearchRequest_FacetSpec) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *SearchRequest_FacetSpec) GetOrderBy() string {
+ if x != nil {
+ return x.OrderBy
+ }
+ return ""
+}
+
+// Boost specification to boost certain items.
+type SearchRequest_BoostSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Condition boost specifications. If a product matches multiple conditions
+ // in the specifictions, boost scores from these specifications are all
+ // applied and combined in a non-linear way. Maximum number of
+ // specifications is 10.
+ ConditionBoostSpecs []*SearchRequest_BoostSpec_ConditionBoostSpec `protobuf:"bytes,1,rep,name=condition_boost_specs,json=conditionBoostSpecs,proto3" json:"condition_boost_specs,omitempty"`
+}
+
+func (x *SearchRequest_BoostSpec) Reset() {
+ *x = SearchRequest_BoostSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchRequest_BoostSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchRequest_BoostSpec) ProtoMessage() {}
+
+func (x *SearchRequest_BoostSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchRequest_BoostSpec.ProtoReflect.Descriptor instead.
+func (*SearchRequest_BoostSpec) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *SearchRequest_BoostSpec) GetConditionBoostSpecs() []*SearchRequest_BoostSpec_ConditionBoostSpec {
+ if x != nil {
+ return x.ConditionBoostSpecs
+ }
+ return nil
+}
+
+// Specification to determine under which conditions query expansion should
+// occur.
+type SearchRequest_QueryExpansionSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The condition under which query expansion should occur. Default to
+ // [Condition.DISABLED][google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.Condition.DISABLED].
+ Condition SearchRequest_QueryExpansionSpec_Condition `protobuf:"varint,1,opt,name=condition,proto3,enum=google.cloud.retail.v2alpha.SearchRequest_QueryExpansionSpec_Condition" json:"condition,omitempty"`
+}
+
+func (x *SearchRequest_QueryExpansionSpec) Reset() {
+ *x = SearchRequest_QueryExpansionSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchRequest_QueryExpansionSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchRequest_QueryExpansionSpec) ProtoMessage() {}
+
+func (x *SearchRequest_QueryExpansionSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchRequest_QueryExpansionSpec.ProtoReflect.Descriptor instead.
+func (*SearchRequest_QueryExpansionSpec) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 2}
+}
+
+func (x *SearchRequest_QueryExpansionSpec) GetCondition() SearchRequest_QueryExpansionSpec_Condition {
+ if x != nil {
+ return x.Condition
+ }
+ return SearchRequest_QueryExpansionSpec_CONDITION_UNSPECIFIED
+}
+
+// Boost applies to products which match a condition.
+type SearchRequest_BoostSpec_ConditionBoostSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // An expression which specifies a boost condition. The syntax and
+ // supported fields are the same as a filter expression. See
+ // [SearchProductsRequest.filter][] for detail syntax and limitations.
+ //
+ // Examples:
+ //
+ // * To boost products with product ID "product_1" or "product_2", and
+ // color
+ // "Red" or "Blue":
+ // *(productId: ANY("product_1", "product_2"))
*
+ // *AND
*
+ // *(colorFamily: ANY("Red", "Blue"))
*
+ Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
+ // Strength of the condition boost, which should be in [-1, 1]. Negative
+ // boost means demotion. Default is 0.0.
+ //
+ // Setting to 1.0 gives the item a big promotion. However, it does not
+ // necessarily mean that the boosted item will be the top result at all
+ // times, nor that other items will be excluded. Results could still be
+ // shown even when none of them matches the condition. And results that
+ // are significantly more relevant to the search query can still trump
+ // your heavily favored but irrelevant items.
+ //
+ // Setting to -1.0 gives the item a big demotion. However, results that
+ // are deeply relevant might still be shown. The item will have an
+ // upstream battle to get a fairly high ranking, but it is not blocked out
+ // completely.
+ //
+ // Setting to 0.0 means no boost applied. The boosting condition is
+ // ignored.
+ Boost float32 `protobuf:"fixed32,2,opt,name=boost,proto3" json:"boost,omitempty"`
+}
+
+func (x *SearchRequest_BoostSpec_ConditionBoostSpec) Reset() {
+ *x = SearchRequest_BoostSpec_ConditionBoostSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchRequest_BoostSpec_ConditionBoostSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchRequest_BoostSpec_ConditionBoostSpec) ProtoMessage() {}
+
+func (x *SearchRequest_BoostSpec_ConditionBoostSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchRequest_BoostSpec_ConditionBoostSpec.ProtoReflect.Descriptor instead.
+func (*SearchRequest_BoostSpec_ConditionBoostSpec) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{0, 1, 0}
+}
+
+func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetCondition() string {
+ if x != nil {
+ return x.Condition
+ }
+ return ""
+}
+
+func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetBoost() float32 {
+ if x != nil {
+ return x.Boost
+ }
+ return 0
+}
+
+// Represents the search results.
+type SearchResponse_SearchResult struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // [Product.id][google.cloud.retail.v2alpha.Product.id] of the searched
+ // [Product][google.cloud.retail.v2alpha.Product].
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // The product data snippet in the search response. Only
+ // [Product.name][google.cloud.retail.v2alpha.Product.name] is guaranteed to
+ // be populated.
+ //
+ // [Product.variants][google.cloud.retail.v2alpha.Product.variants] contains
+ // the product variants that match the search query. If there are multiple
+ // product variants matching the query, top 5 most relevant product variants
+ // are returned and ordered by relevancy.
+ //
+ // If relevancy can be deternmined, use
+ // [SearchProductsResponse.matching_variant_fields] to look up matched
+ // product variants fields. If relevancy cannot be determined, e.g. when
+ // searching "shoe" all products in a shoe product can be a match, 5
+ // product variants are returned but order is meaningless.
+ Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
+ // The count of matched
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product]s.
+ MatchingVariantCount int32 `protobuf:"varint,3,opt,name=matching_variant_count,json=matchingVariantCount,proto3" json:"matching_variant_count,omitempty"`
+ // If a [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product] matches the search query,
+ // this map indicates which [Product][google.cloud.retail.v2alpha.Product]
+ // fields are matched. The key is the
+ // [Product.name][google.cloud.retail.v2alpha.Product.name], the value is a
+ // field mask of the matched [Product][google.cloud.retail.v2alpha.Product]
+ // fields. If matched attributes cannot be determined, this map will be
+ // empty.
+ //
+ // For example, a key "sku1" with field mask
+ // "child_stocking_units.color_info" indicates there is a match between
+ // "sku1" [ColorInfo][google.cloud.retail.v2alpha.ColorInfo] and the query.
+ MatchingVariantFields map[string]*fieldmaskpb.FieldMask `protobuf:"bytes,4,rep,name=matching_variant_fields,json=matchingVariantFields,proto3" json:"matching_variant_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The rollup matching
+ // [variant][google.cloud.retail.v2alpha.Product.Type.VARIANT]
+ // [Product][google.cloud.retail.v2alpha.Product] attributes. The key is one
+ // of the [SearchProductsRequest.stocking_unit_rollup_keys][]. The values
+ // are the merged and de-duplicated [StockingUnit][] attributes. Notice that
+ // the rollup values are respect filter. For example, when filtering by
+ // "colorFamily:ANY(\"red\")" and rollup "colorFamily", only "red" is
+ // returned.
+ //
+ // For textual and numerical attributes, the rollup values is a list of
+ // string or double values with type
+ // [google.protobuf.ListValue][google.protobuf.ListValue]. For example, if
+ // there are two stocking units with colors "red" and "blue", the rollup
+ // values are { key: "colorFamily"
+ // value {
+ // list_value {
+ // values { string_value: "red" }
+ // values { string_value: "blue" }
+ // }
+ // }
+ // }
+ //
+ // For [StockingUnit.fulfillment_info][], the rollup values is a bool value
+ // with type [google.protobuf.Value][google.protobuf.Value]. For example,
+ // {key: "pickupInStore.store1" value { bool_value: true }} means a product
+ // is available in the store "store1".
+ VariantRollupValues map[string]*structpb.Value `protobuf:"bytes,5,rep,name=variant_rollup_values,json=variantRollupValues,proto3" json:"variant_rollup_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *SearchResponse_SearchResult) Reset() {
+ *x = SearchResponse_SearchResult{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchResponse_SearchResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchResponse_SearchResult) ProtoMessage() {}
+
+func (x *SearchResponse_SearchResult) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchResponse_SearchResult.ProtoReflect.Descriptor instead.
+func (*SearchResponse_SearchResult) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *SearchResponse_SearchResult) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *SearchResponse_SearchResult) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *SearchResponse_SearchResult) GetMatchingVariantCount() int32 {
+ if x != nil {
+ return x.MatchingVariantCount
+ }
+ return 0
+}
+
+func (x *SearchResponse_SearchResult) GetMatchingVariantFields() map[string]*fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.MatchingVariantFields
+ }
+ return nil
+}
+
+func (x *SearchResponse_SearchResult) GetVariantRollupValues() map[string]*structpb.Value {
+ if x != nil {
+ return x.VariantRollupValues
+ }
+ return nil
+}
+
+// A facet result.
+type SearchResponse_Facet struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The key for this facet. E.g., "colorFamily" or "price" or
+ // "customAttributes.attr1".
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ // The facet values for this field.
+ Values []*SearchResponse_Facet_FacetValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *SearchResponse_Facet) Reset() {
+ *x = SearchResponse_Facet{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchResponse_Facet) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchResponse_Facet) ProtoMessage() {}
+
+func (x *SearchResponse_Facet) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchResponse_Facet.ProtoReflect.Descriptor instead.
+func (*SearchResponse_Facet) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{1, 1}
+}
+
+func (x *SearchResponse_Facet) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *SearchResponse_Facet) GetValues() []*SearchResponse_Facet_FacetValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+// Information describing query expansion including whether expansion has
+// occurred.
+type SearchResponse_QueryExpansionInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Bool describing whether query expansion has occurred.
+ ExpandedQuery bool `protobuf:"varint,1,opt,name=expanded_query,json=expandedQuery,proto3" json:"expanded_query,omitempty"`
+}
+
+func (x *SearchResponse_QueryExpansionInfo) Reset() {
+ *x = SearchResponse_QueryExpansionInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchResponse_QueryExpansionInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchResponse_QueryExpansionInfo) ProtoMessage() {}
+
+func (x *SearchResponse_QueryExpansionInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchResponse_QueryExpansionInfo.ProtoReflect.Descriptor instead.
+func (*SearchResponse_QueryExpansionInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{1, 2}
+}
+
+func (x *SearchResponse_QueryExpansionInfo) GetExpandedQuery() bool {
+ if x != nil {
+ return x.ExpandedQuery
+ }
+ return false
+}
+
+// A facet value which contains value names and their count.
+type SearchResponse_Facet_FacetValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A facet value which contains values.
+ //
+ // Types that are assignable to FacetValue:
+ // *SearchResponse_Facet_FacetValue_Value
+ // *SearchResponse_Facet_FacetValue_Interval
+ FacetValue isSearchResponse_Facet_FacetValue_FacetValue `protobuf_oneof:"facet_value"`
+ // Number of items that have this facet value.
+ Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
+}
+
+func (x *SearchResponse_Facet_FacetValue) Reset() {
+ *x = SearchResponse_Facet_FacetValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SearchResponse_Facet_FacetValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SearchResponse_Facet_FacetValue) ProtoMessage() {}
+
+func (x *SearchResponse_Facet_FacetValue) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SearchResponse_Facet_FacetValue.ProtoReflect.Descriptor instead.
+func (*SearchResponse_Facet_FacetValue) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP(), []int{1, 1, 0}
+}
+
+func (m *SearchResponse_Facet_FacetValue) GetFacetValue() isSearchResponse_Facet_FacetValue_FacetValue {
+ if m != nil {
+ return m.FacetValue
+ }
+ return nil
+}
+
+func (x *SearchResponse_Facet_FacetValue) GetValue() string {
+ if x, ok := x.GetFacetValue().(*SearchResponse_Facet_FacetValue_Value); ok {
+ return x.Value
+ }
+ return ""
+}
+
+func (x *SearchResponse_Facet_FacetValue) GetInterval() *Interval {
+ if x, ok := x.GetFacetValue().(*SearchResponse_Facet_FacetValue_Interval); ok {
+ return x.Interval
+ }
+ return nil
+}
+
+func (x *SearchResponse_Facet_FacetValue) GetCount() int64 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+
+type isSearchResponse_Facet_FacetValue_FacetValue interface {
+ isSearchResponse_Facet_FacetValue_FacetValue()
+}
+
+type SearchResponse_Facet_FacetValue_Value struct {
+ // Text value of a facet, such as "Black" for facet "colorFamily".
+ Value string `protobuf:"bytes,1,opt,name=value,proto3,oneof"`
+}
+
+type SearchResponse_Facet_FacetValue_Interval struct {
+ // Interval value for a facet, such as [10, 20) for facet "price".
+ Interval *Interval `protobuf:"bytes,2,opt,name=interval,proto3,oneof"`
+}
+
+func (*SearchResponse_Facet_FacetValue_Value) isSearchResponse_Facet_FacetValue_FacetValue() {}
+
+func (*SearchResponse_Facet_FacetValue_Interval) isSearchResponse_Facet_FacetValue_FacetValue() {}
+
+var File_google_cloud_retail_v2alpha_search_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_search_service_proto_rawDesc = []byte{
+ 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x73, 0x65,
+ 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d,
+ 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63,
+ 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x0c, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72,
+ 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6c, 0x61,
+ 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06,
+ 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xfa, 0x41,
+ 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52,
+ 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x69, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69,
+ 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
+ 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61,
+ 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
+ 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f,
+ 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67,
+ 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16,
+ 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f,
+ 0x62, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42,
+ 0x79, 0x12, 0x55, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73,
+ 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x66, 0x61,
+ 0x63, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x53, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x73,
+ 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63,
+ 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70,
+ 0x65, 0x63, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a,
+ 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70,
+ 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e,
+ 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65,
+ 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63,
+ 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x65,
+ 0x76, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x37,
+ 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72,
+ 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x61, 0x72, 0x69, 0x61,
+ 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x11,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x6f, 0x6c,
+ 0x6c, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0xf7, 0x01, 0x0a, 0x09, 0x46, 0x61, 0x63, 0x65,
+ 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x09,
+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+ 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65,
+ 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30,
+ 0x0a, 0x14, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78,
+ 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73,
+ 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f,
+ 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42,
+ 0x79, 0x1a, 0xd2, 0x01, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12,
+ 0x7b, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x6f,
+ 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61,
+ 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74,
+ 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f,
+ 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x48, 0x0a, 0x12,
+ 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70,
+ 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52,
+ 0x05, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x1a, 0xc2, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x65, 0x0a,
+ 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53,
+ 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55,
+ 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08,
+ 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x45,
+ 0x52, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x22, 0x64, 0x0a, 0x12, 0x52,
+ 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
+ 0x64, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x45, 0x56, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x54,
+ 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x01,
+ 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03,
+ 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x57, 0x45, 0x53, 0x54, 0x10,
+ 0x04, 0x22, 0xf1, 0x0a, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
+ 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65,
+ 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x52, 0x06, 0x66, 0x61, 0x63,
+ 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x72,
+ 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x61,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74,
+ 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x12, 0x70, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61,
+ 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
+ 0x66, 0x6f, 0x1a, 0xf0, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f,
+ 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72,
+ 0x69, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x6d, 0x61,
+ 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x72, 0x69, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x15, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
+ 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x15, 0x76, 0x61, 0x72, 0x69,
+ 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x76, 0x61, 0x72, 0x69,
+ 0x61, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a,
+ 0x64, 0x0a, 0x1a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x72, 0x69, 0x61,
+ 0x6e, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 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,
+ 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x18, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
+ 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x80, 0x02, 0x0a, 0x05, 0x46, 0x61, 0x63, 0x65, 0x74, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x54, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+ 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46,
+ 0x61, 0x63, 0x65, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65,
+ 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43,
+ 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72,
+ 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x61, 0x63,
+ 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x3b, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25,
+ 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x32, 0x95, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72,
+ 0x63, 0x68, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x61,
+ 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x4f, 0x22, 0x4a, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70,
+ 0x6c, 0x61, 0x63, 0x65, 0x6d, 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x6c, 0x61, 0x63, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a,
+ 0x01, 0x2a, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xe0, 0x01,
+ 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x42, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54,
+ 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea,
+ 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a,
+ 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_search_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_search_service_proto_rawDescData = file_google_cloud_retail_v2alpha_search_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_search_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_search_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_search_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_search_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_google_cloud_retail_v2alpha_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
+var file_google_cloud_retail_v2alpha_search_service_proto_goTypes = []interface{}{
+ (SearchRequest_RelevanceThreshold)(0), // 0: google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold
+ (SearchRequest_QueryExpansionSpec_Condition)(0), // 1: google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.Condition
+ (*SearchRequest)(nil), // 2: google.cloud.retail.v2alpha.SearchRequest
+ (*SearchResponse)(nil), // 3: google.cloud.retail.v2alpha.SearchResponse
+ (*SearchRequest_FacetSpec)(nil), // 4: google.cloud.retail.v2alpha.SearchRequest.FacetSpec
+ (*SearchRequest_BoostSpec)(nil), // 5: google.cloud.retail.v2alpha.SearchRequest.BoostSpec
+ (*SearchRequest_QueryExpansionSpec)(nil), // 6: google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec
+ (*SearchRequest_BoostSpec_ConditionBoostSpec)(nil), // 7: google.cloud.retail.v2alpha.SearchRequest.BoostSpec.ConditionBoostSpec
+ (*SearchResponse_SearchResult)(nil), // 8: google.cloud.retail.v2alpha.SearchResponse.SearchResult
+ (*SearchResponse_Facet)(nil), // 9: google.cloud.retail.v2alpha.SearchResponse.Facet
+ (*SearchResponse_QueryExpansionInfo)(nil), // 10: google.cloud.retail.v2alpha.SearchResponse.QueryExpansionInfo
+ nil, // 11: google.cloud.retail.v2alpha.SearchResponse.SearchResult.MatchingVariantFieldsEntry
+ nil, // 12: google.cloud.retail.v2alpha.SearchResponse.SearchResult.VariantRollupValuesEntry
+ (*SearchResponse_Facet_FacetValue)(nil), // 13: google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue
+ (*UserInfo)(nil), // 14: google.cloud.retail.v2alpha.UserInfo
+ (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask
+ (*Interval)(nil), // 16: google.cloud.retail.v2alpha.Interval
+ (*Product)(nil), // 17: google.cloud.retail.v2alpha.Product
+ (*structpb.Value)(nil), // 18: google.protobuf.Value
+}
+var file_google_cloud_retail_v2alpha_search_service_proto_depIdxs = []int32{
+ 14, // 0: google.cloud.retail.v2alpha.SearchRequest.user_info:type_name -> google.cloud.retail.v2alpha.UserInfo
+ 4, // 1: google.cloud.retail.v2alpha.SearchRequest.facet_specs:type_name -> google.cloud.retail.v2alpha.SearchRequest.FacetSpec
+ 5, // 2: google.cloud.retail.v2alpha.SearchRequest.boost_spec:type_name -> google.cloud.retail.v2alpha.SearchRequest.BoostSpec
+ 6, // 3: google.cloud.retail.v2alpha.SearchRequest.query_expansion_spec:type_name -> google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec
+ 0, // 4: google.cloud.retail.v2alpha.SearchRequest.relevance_threshold:type_name -> google.cloud.retail.v2alpha.SearchRequest.RelevanceThreshold
+ 15, // 5: google.cloud.retail.v2alpha.SearchRequest.read_mask:type_name -> google.protobuf.FieldMask
+ 8, // 6: google.cloud.retail.v2alpha.SearchResponse.results:type_name -> google.cloud.retail.v2alpha.SearchResponse.SearchResult
+ 9, // 7: google.cloud.retail.v2alpha.SearchResponse.facets:type_name -> google.cloud.retail.v2alpha.SearchResponse.Facet
+ 10, // 8: google.cloud.retail.v2alpha.SearchResponse.query_expansion_info:type_name -> google.cloud.retail.v2alpha.SearchResponse.QueryExpansionInfo
+ 16, // 9: google.cloud.retail.v2alpha.SearchRequest.FacetSpec.intervals:type_name -> google.cloud.retail.v2alpha.Interval
+ 7, // 10: google.cloud.retail.v2alpha.SearchRequest.BoostSpec.condition_boost_specs:type_name -> google.cloud.retail.v2alpha.SearchRequest.BoostSpec.ConditionBoostSpec
+ 1, // 11: google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.condition:type_name -> google.cloud.retail.v2alpha.SearchRequest.QueryExpansionSpec.Condition
+ 17, // 12: google.cloud.retail.v2alpha.SearchResponse.SearchResult.product:type_name -> google.cloud.retail.v2alpha.Product
+ 11, // 13: google.cloud.retail.v2alpha.SearchResponse.SearchResult.matching_variant_fields:type_name -> google.cloud.retail.v2alpha.SearchResponse.SearchResult.MatchingVariantFieldsEntry
+ 12, // 14: google.cloud.retail.v2alpha.SearchResponse.SearchResult.variant_rollup_values:type_name -> google.cloud.retail.v2alpha.SearchResponse.SearchResult.VariantRollupValuesEntry
+ 13, // 15: google.cloud.retail.v2alpha.SearchResponse.Facet.values:type_name -> google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue
+ 15, // 16: google.cloud.retail.v2alpha.SearchResponse.SearchResult.MatchingVariantFieldsEntry.value:type_name -> google.protobuf.FieldMask
+ 18, // 17: google.cloud.retail.v2alpha.SearchResponse.SearchResult.VariantRollupValuesEntry.value:type_name -> google.protobuf.Value
+ 16, // 18: google.cloud.retail.v2alpha.SearchResponse.Facet.FacetValue.interval:type_name -> google.cloud.retail.v2alpha.Interval
+ 2, // 19: google.cloud.retail.v2alpha.SearchService.Search:input_type -> google.cloud.retail.v2alpha.SearchRequest
+ 3, // 20: google.cloud.retail.v2alpha.SearchService.Search:output_type -> google.cloud.retail.v2alpha.SearchResponse
+ 20, // [20:21] is the sub-list for method output_type
+ 19, // [19:20] is the sub-list for method input_type
+ 19, // [19:19] is the sub-list for extension type_name
+ 19, // [19:19] is the sub-list for extension extendee
+ 0, // [0:19] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_search_service_proto_init() }
+func file_google_cloud_retail_v2alpha_search_service_proto_init() {
+ if File_google_cloud_retail_v2alpha_search_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_common_proto_init()
+ file_google_cloud_retail_v2alpha_product_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchRequest_FacetSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchRequest_BoostSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchRequest_QueryExpansionSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchRequest_BoostSpec_ConditionBoostSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchResponse_SearchResult); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchResponse_Facet); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchResponse_QueryExpansionInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SearchResponse_Facet_FacetValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2alpha_search_service_proto_msgTypes[11].OneofWrappers = []interface{}{
+ (*SearchResponse_Facet_FacetValue_Value)(nil),
+ (*SearchResponse_Facet_FacetValue_Interval)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_search_service_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 12,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_search_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_search_service_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2alpha_search_service_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2alpha_search_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_search_service_proto = out.File
+ file_google_cloud_retail_v2alpha_search_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_search_service_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_search_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// SearchServiceClient is the client API for SearchService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type SearchServiceClient interface {
+ // Performs a search.
+ Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error)
+}
+
+type searchServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewSearchServiceClient(cc grpc.ClientConnInterface) SearchServiceClient {
+ return &searchServiceClient{cc}
+}
+
+func (c *searchServiceClient) Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error) {
+ out := new(SearchResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.SearchService/Search", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// SearchServiceServer is the server API for SearchService service.
+type SearchServiceServer interface {
+ // Performs a search.
+ Search(context.Context, *SearchRequest) (*SearchResponse, error)
+}
+
+// UnimplementedSearchServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedSearchServiceServer struct {
+}
+
+func (*UnimplementedSearchServiceServer) Search(context.Context, *SearchRequest) (*SearchResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Search not implemented")
+}
+
+func RegisterSearchServiceServer(s *grpc.Server, srv SearchServiceServer) {
+ s.RegisterService(&_SearchService_serviceDesc, srv)
+}
+
+func _SearchService_Search_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SearchRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SearchServiceServer).Search(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.SearchService/Search",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SearchServiceServer).Search(ctx, req.(*SearchRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _SearchService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2alpha.SearchService",
+ HandlerType: (*SearchServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Search",
+ Handler: _SearchService_Search_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2alpha/search_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2alpha/user_event.pb.go b/googleapis/cloud/retail/v2alpha/user_event.pb.go
new file mode 100644
index 000000000..ea0566e86
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/user_event.pb.go
@@ -0,0 +1,709 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/user_event.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// UserEvent captures all metadata information recommendation engine needs to
+// know about how end users interact with customers' website.
+type UserEvent struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. User event type. Allowed values are:
+ //
+ // * `add-to-cart` Products being added to cart.
+ // * `category-page-view` Special pages such as sale or promotion pages
+ // viewed.
+ // * `detail-page-view` Products detail page viewed.
+ // * `home-page-view` Homepage viewed.
+ // * `purchase-complete` User finishing a purchase.
+ // * `search`
+ // * `shopping-cart-page-view` User viewing a shopping cart.
+ EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
+ // Required. A unique identifier for tracking visitors. For example, this
+ // could be implemented with a http cookie, which should be able to uniquely
+ // identify a visitor on a single device. This unique identifier should not
+ // change if the visitor log in/out of the website.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ VisitorId string `protobuf:"bytes,2,opt,name=visitor_id,json=visitorId,proto3" json:"visitor_id,omitempty"`
+ // Only required for
+ // [UserEventService.ImportUserEvents][google.cloud.retail.v2alpha.UserEventService.ImportUserEvents]
+ // method. Timestamp of when the user event happened.
+ EventTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
+ // A list of identifiers for the independent experiment groups
+ // this user event belongs to. This is used to distinguish between user events
+ // associated with different experiment setups (e.g. using Recommendations AI,
+ // using different recommendation models).
+ ExperimentIds []string `protobuf:"bytes,4,rep,name=experiment_ids,json=experimentIds,proto3" json:"experiment_ids,omitempty"`
+ // Highly recommended for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2alpha.PredictionService.Predict].
+ // This field enables accurate attribution of recommendation model
+ // performance.
+ //
+ // The value must be a valid
+ // [PredictResponse.attribute_token][] for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2alpha.PredictionService.Predict].
+ //
+ // This token enables us to accurately attribute page view or purchase back to
+ // the event and the particular predict response containing this
+ // clicked/purchased product. If user clicks on product K in the
+ // recommendation results, pass [PredictResponse.attribute_token][] as a url
+ // parameter to product K's page. When recording events on product K's page,
+ // log the [PredictResponse.attribute_token][] to this field.
+ AttributionToken string `protobuf:"bytes,5,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // The main product details related to the event.
+ //
+ // This field is required for the following event types:
+ //
+ // * `add-to-cart`
+ // * `detail-page-view`
+ // * `purchase-complete`
+ //
+ // In a `search` event, this field represents the products returned to the end
+ // user on the current page (the end user may have not finished broswing the
+ // whole page yet). When a new page is returned to the end user, after
+ // pagination/filtering/ordering even for the same query, a new SEARCH event
+ // with different
+ // [product_details][google.cloud.retail.v2alpha.UserEvent.product_details] is
+ // desired. The end user may have not finished broswing the whole page yet.
+ ProductDetails []*ProductDetail `protobuf:"bytes,6,rep,name=product_details,json=productDetails,proto3" json:"product_details,omitempty"`
+ // Extra user event features to include in the recommendation model.
+ //
+ // For product recommendation, an example of extra user information is
+ // traffic_channel, i.e. how user arrives at the site. Users can arrive
+ // at the site by coming to the site directly, or coming through Google
+ // search, and etc.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,7,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The id or name of the associated shopping cart. This id is used
+ // to associate multiple items added or present in the cart before purchase.
+ //
+ // This can only be set for `add-to-cart`, `remove-from-cart`,
+ // `checkout-start`, `purchase-complete`, or `shopping-cart-page-view` events.
+ CartId string `protobuf:"bytes,8,opt,name=cart_id,json=cartId,proto3" json:"cart_id,omitempty"`
+ // A transaction represents the entire purchase transaction.
+ //
+ // Required for `purchase-complete` events. Optional for `checkout-start`
+ // events. Other event types should not set this field. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PurchaseTransaction *PurchaseTransaction `protobuf:"bytes,9,opt,name=purchase_transaction,json=purchaseTransaction,proto3" json:"purchase_transaction,omitempty"`
+ // The user's search query.
+ //
+ // The value must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Required for `search` events. Other event types should not set this field.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ SearchQuery string `protobuf:"bytes,10,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"`
+ // The categories associated with a category page.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // Category pages include special pages such as sales or promotions. For
+ // instance, a special sale page may have the category hierarchy:
+ // "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+ //
+ // Required for `category-page-view` events. Other event types should not set
+ // this field. Otherwise, an INVALID_ARGUMENT error is returned.
+ PageCategories []string `protobuf:"bytes,11,rep,name=page_categories,json=pageCategories,proto3" json:"page_categories,omitempty"`
+ // User information.
+ UserInfo *UserInfo `protobuf:"bytes,12,opt,name=user_info,json=userInfo,proto3" json:"user_info,omitempty"`
+ // Complete url (window.location.href) of the user's current page.
+ // When using the client side event reporting with JavaScript pixel and Google
+ // Tag Manager, this value is filled in automatically. Maximum length 5KB.
+ Uri string `protobuf:"bytes,13,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The referrer url of the current page. When using
+ // the client side event reporting with JavaScript pixel and Google Tag
+ // Manager, this value is filled in automatically.
+ ReferrerUri string `protobuf:"bytes,14,opt,name=referrer_uri,json=referrerUri,proto3" json:"referrer_uri,omitempty"`
+ // A unique id of a web page view.
+ // This should be kept the same for all user events triggered from the same
+ // pageview. For example, an item detail page view could trigger multiple
+ // events as the user is browsing the page.
+ // The `pageViewId` property should be kept the same for all these events so
+ // that they can be grouped together properly. This `pageViewId` will be
+ // automatically generated if using the client side event reporting with
+ // JavaScript pixel and Google Tag Manager.
+ PageViewId string `protobuf:"bytes,15,opt,name=page_view_id,json=pageViewId,proto3" json:"page_view_id,omitempty"`
+ // User event source.
+ // Acceptable values are:
+ //
+ // * `client_tag` if the event is ingested via a JavaScript tag or
+ // Recommendations AI Tag through automl datalayer or JS Macros.
+ // * `client_tag_ecommerce` if the event is ingested via Recommendations AI
+ // Tag through
+ // Enhanced Ecommerce datalayer.
+ // * 'batch_upload' if the event is ingested via ImportUserEvents API.
+ //
+ // This field should *not* be set when using client side event reporting with
+ // JavaScript pixel and Google Tag Manager or the Recommendations AI Tag.
+ EventSource string `protobuf:"bytes,16,opt,name=event_source,json=eventSource,proto3" json:"event_source,omitempty"`
+}
+
+func (x *UserEvent) Reset() {
+ *x = UserEvent{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEvent) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEvent) ProtoMessage() {}
+
+func (x *UserEvent) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEvent.ProtoReflect.Descriptor instead.
+func (*UserEvent) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *UserEvent) GetEventType() string {
+ if x != nil {
+ return x.EventType
+ }
+ return ""
+}
+
+func (x *UserEvent) GetVisitorId() string {
+ if x != nil {
+ return x.VisitorId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.EventTime
+ }
+ return nil
+}
+
+func (x *UserEvent) GetExperimentIds() []string {
+ if x != nil {
+ return x.ExperimentIds
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *UserEvent) GetProductDetails() []*ProductDetail {
+ if x != nil {
+ return x.ProductDetails
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *UserEvent) GetCartId() string {
+ if x != nil {
+ return x.CartId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPurchaseTransaction() *PurchaseTransaction {
+ if x != nil {
+ return x.PurchaseTransaction
+ }
+ return nil
+}
+
+func (x *UserEvent) GetSearchQuery() string {
+ if x != nil {
+ return x.SearchQuery
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageCategories() []string {
+ if x != nil {
+ return x.PageCategories
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUserInfo() *UserInfo {
+ if x != nil {
+ return x.UserInfo
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetReferrerUri() string {
+ if x != nil {
+ return x.ReferrerUri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageViewId() string {
+ if x != nil {
+ return x.PageViewId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventSource() string {
+ if x != nil {
+ return x.EventSource
+ }
+ return ""
+}
+
+// Detailed product information associated with a user event.
+type ProductDetail struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. [Product][google.cloud.retail.v2alpha.Product] information.
+ // Only [Product][id] field must to be set.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Quantity of the product associated with the user event. For
+ // example, this field will be 2 if two products are added to the shopping
+ // cart for `purchase-complete` event. Required for `add-to-cart` and
+ // `purchase-complete` event types.
+ Quantity *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"`
+}
+
+func (x *ProductDetail) Reset() {
+ *x = ProductDetail{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductDetail) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductDetail) ProtoMessage() {}
+
+func (x *ProductDetail) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductDetail.ProtoReflect.Descriptor instead.
+func (*ProductDetail) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ProductDetail) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *ProductDetail) GetQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.Quantity
+ }
+ return nil
+}
+
+// A transaction represents the entire purchase transaction.
+type PurchaseTransaction struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The transaction ID with a length limit of 128 bytes.
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Required. Total revenue or grand total associated with the transaction.
+ // This value include shipping, tax, or other adjustments to total revenue
+ // that you want to include as part of your revenue calculations. This field
+ // is not required if the event type is `refund`.
+ Revenue float32 `protobuf:"fixed32,2,opt,name=revenue,proto3" json:"revenue,omitempty"`
+ // All the taxes associated with the transaction.
+ Tax float32 `protobuf:"fixed32,3,opt,name=tax,proto3" json:"tax,omitempty"`
+ // All the costs associated with the product. These can be
+ // manufacturing costs, shipping expenses not borne by the end user, or any
+ // other costs.
+ //
+ // Total product cost such that
+ // profit = revenue - tax + [Product][pricing][cost]
+ // If product_cost is not set, then
+ // profit = revenue - tax - [Product][pricing][cost].
+ //
+ // If [Product][pricing][cost] is not specified for one of the products,
+ // [Product][pricing][cost] based profit *cannot* be calculated for this
+ // Transaction.
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+ // Required. Currency code. Use three-character ISO-4217 code. This field
+ // is not required if the event type is `refund`.
+ CurrencyCode string `protobuf:"bytes,5,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+}
+
+func (x *PurchaseTransaction) Reset() {
+ *x = PurchaseTransaction{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurchaseTransaction) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurchaseTransaction) ProtoMessage() {}
+
+func (x *PurchaseTransaction) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurchaseTransaction.ProtoReflect.Descriptor instead.
+func (*PurchaseTransaction) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurchaseTransaction) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PurchaseTransaction) GetRevenue() float32 {
+ if x != nil {
+ return x.Revenue
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetTax() float32 {
+ if x != nil {
+ return x.Tax
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2alpha_user_event_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_user_event_proto_rawDesc = []byte{
+ 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x75, 0x73,
+ 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 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, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 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,
+ 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x84, 0x07, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22,
+ 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x69, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
+ 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72,
+ 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x53, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x56, 0x0a, 0x0a, 0x61, 0x74,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x74, 0x49, 0x64, 0x12, 0x63, 0x0a, 0x14, 0x70,
+ 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65,
+ 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x75, 0x72,
+ 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65,
+ 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61,
+ 0x67, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09,
+ 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
+ 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x75,
+ 0x72, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72,
+ 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69,
+ 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x67,
+ 0x65, 0x56, 0x69, 0x65, 0x77, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x6b, 0x0a, 0x0f, 0x41, 0x74,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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,
+ 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x75, 0x73,
+ 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x43, 0x0a, 0x07, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x37,
+ 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x71,
+ 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x72, 0x63,
+ 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
+ 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x10,
+ 0x0a, 0x03, 0x74, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x74, 0x61, 0x78,
+ 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04,
+ 0x63, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79,
+ 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x42, 0xdc,
+ 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x42, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f,
+ 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c,
+ 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c,
+ 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02,
+ 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_user_event_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_user_event_proto_rawDescData = file_google_cloud_retail_v2alpha_user_event_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_user_event_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_user_event_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_user_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_user_event_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_user_event_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_user_event_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2alpha_user_event_proto_goTypes = []interface{}{
+ (*UserEvent)(nil), // 0: google.cloud.retail.v2alpha.UserEvent
+ (*ProductDetail)(nil), // 1: google.cloud.retail.v2alpha.ProductDetail
+ (*PurchaseTransaction)(nil), // 2: google.cloud.retail.v2alpha.PurchaseTransaction
+ nil, // 3: google.cloud.retail.v2alpha.UserEvent.AttributesEntry
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*UserInfo)(nil), // 5: google.cloud.retail.v2alpha.UserInfo
+ (*Product)(nil), // 6: google.cloud.retail.v2alpha.Product
+ (*wrapperspb.Int32Value)(nil), // 7: google.protobuf.Int32Value
+ (*CustomAttribute)(nil), // 8: google.cloud.retail.v2alpha.CustomAttribute
+}
+var file_google_cloud_retail_v2alpha_user_event_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2alpha.UserEvent.event_time:type_name -> google.protobuf.Timestamp
+ 1, // 1: google.cloud.retail.v2alpha.UserEvent.product_details:type_name -> google.cloud.retail.v2alpha.ProductDetail
+ 3, // 2: google.cloud.retail.v2alpha.UserEvent.attributes:type_name -> google.cloud.retail.v2alpha.UserEvent.AttributesEntry
+ 2, // 3: google.cloud.retail.v2alpha.UserEvent.purchase_transaction:type_name -> google.cloud.retail.v2alpha.PurchaseTransaction
+ 5, // 4: google.cloud.retail.v2alpha.UserEvent.user_info:type_name -> google.cloud.retail.v2alpha.UserInfo
+ 6, // 5: google.cloud.retail.v2alpha.ProductDetail.product:type_name -> google.cloud.retail.v2alpha.Product
+ 7, // 6: google.cloud.retail.v2alpha.ProductDetail.quantity:type_name -> google.protobuf.Int32Value
+ 8, // 7: google.cloud.retail.v2alpha.UserEvent.AttributesEntry.value:type_name -> google.cloud.retail.v2alpha.CustomAttribute
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_user_event_proto_init() }
+func file_google_cloud_retail_v2alpha_user_event_proto_init() {
+ if File_google_cloud_retail_v2alpha_user_event_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_common_proto_init()
+ file_google_cloud_retail_v2alpha_product_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEvent); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductDetail); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurchaseTransaction); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_user_event_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_user_event_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_user_event_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2alpha_user_event_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_user_event_proto = out.File
+ file_google_cloud_retail_v2alpha_user_event_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_user_event_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_user_event_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2alpha/user_event_service.pb.go b/googleapis/cloud/retail/v2alpha/user_event_service.pb.go
new file mode 100644
index 000000000..b3010810a
--- /dev/null
+++ b/googleapis/cloud/retail/v2alpha/user_event_service.pb.go
@@ -0,0 +1,1042 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2alpha/user_event_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ httpbody "google.golang.org/genproto/googleapis/api/httpbody"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ 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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The scope of events to be rejoined with latest catalog. If the rejoining
+// aims at reducing number of unjoined events, set UserEventRejoinScope to
+// UNJOINED_EVENTS. If the rejoining aims at correcting catalog information
+// in joined_events, set UserEventRejoinScope to JOINED_EVENTS. If all events
+// needs to be rejoined, set UserEventRejoinScope to
+// USER_EVENT_REJOIN_SCOPE_UNSPECIFIED.
+type RejoinUserEventsRequest_UserEventRejoinScope int32
+
+const (
+ // Rejoin catalogs with all events including both joined events and
+ // unjoined events.
+ RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED RejoinUserEventsRequest_UserEventRejoinScope = 0
+ // Only rejoin catalogs with joined events.
+ RejoinUserEventsRequest_JOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 1
+ // Only rejoin catalogs with unjoined events.
+ RejoinUserEventsRequest_UNJOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 2
+)
+
+// Enum value maps for RejoinUserEventsRequest_UserEventRejoinScope.
+var (
+ RejoinUserEventsRequest_UserEventRejoinScope_name = map[int32]string{
+ 0: "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED",
+ 1: "JOINED_EVENTS",
+ 2: "UNJOINED_EVENTS",
+ }
+ RejoinUserEventsRequest_UserEventRejoinScope_value = map[string]int32{
+ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED": 0,
+ "JOINED_EVENTS": 1,
+ "UNJOINED_EVENTS": 2,
+ }
+)
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Enum() *RejoinUserEventsRequest_UserEventRejoinScope {
+ p := new(RejoinUserEventsRequest_UserEventRejoinScope)
+ *p = x
+ return p
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_enumTypes[0].Descriptor()
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2alpha_user_event_service_proto_enumTypes[0]
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest_UserEventRejoinScope.Descriptor instead.
+func (RejoinUserEventsRequest_UserEventRejoinScope) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{2, 0}
+}
+
+// Request message for WriteUserEvent method.
+type WriteUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore resource name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. User event to write.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+}
+
+func (x *WriteUserEventRequest) Reset() {
+ *x = WriteUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WriteUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WriteUserEventRequest) ProtoMessage() {}
+
+func (x *WriteUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WriteUserEventRequest.ProtoReflect.Descriptor instead.
+func (*WriteUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *WriteUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *WriteUserEventRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+// Request message for CollectUserEvent method.
+type CollectUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. URL encoded UserEvent proto.
+ UserEvent string `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // The url including cgi-parameters but excluding the hash fragment. The URL
+ // must be truncated to 1.5K bytes to conservatively be under the 2K bytes.
+ // This is often more useful than the referer url, because many browsers only
+ // send the domain for 3rd party requests.
+ Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The event timestamp in milliseconds. This prevents browser caching of
+ // otherwise identical get requests. The name is abbreviated to reduce the
+ // payload bytes.
+ Ets int64 `protobuf:"varint,4,opt,name=ets,proto3" json:"ets,omitempty"`
+}
+
+func (x *CollectUserEventRequest) Reset() {
+ *x = CollectUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CollectUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CollectUserEventRequest) ProtoMessage() {}
+
+func (x *CollectUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CollectUserEventRequest.ProtoReflect.Descriptor instead.
+func (*CollectUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *CollectUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUserEvent() string {
+ if x != nil {
+ return x.UserEvent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetEts() int64 {
+ if x != nil {
+ return x.Ets
+ }
+ return 0
+}
+
+// Request message for CatalogRejoin method.
+type RejoinUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of user event, such as
+ // "projects/*/locations/*/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The type of the catalog rejoin to define the scope and range of
+ // the user events to be rejoined with catalog items.
+ UserEventRejoinScope RejoinUserEventsRequest_UserEventRejoinScope `protobuf:"varint,2,opt,name=user_event_rejoin_scope,json=userEventRejoinScope,proto3,enum=google.cloud.retail.v2alpha.RejoinUserEventsRequest_UserEventRejoinScope" json:"user_event_rejoin_scope,omitempty"`
+}
+
+func (x *RejoinUserEventsRequest) Reset() {
+ *x = RejoinUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsRequest) ProtoMessage() {}
+
+func (x *RejoinUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RejoinUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *RejoinUserEventsRequest) GetUserEventRejoinScope() RejoinUserEventsRequest_UserEventRejoinScope {
+ if x != nil {
+ return x.UserEventRejoinScope
+ }
+ return RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED
+}
+
+// Response message for RejoinUserEvents method.
+type RejoinUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of user events that were joined with latest catalog items.
+ RejoinedUserEventsCount int64 `protobuf:"varint,1,opt,name=rejoined_user_events_count,json=rejoinedUserEventsCount,proto3" json:"rejoined_user_events_count,omitempty"`
+}
+
+func (x *RejoinUserEventsResponse) Reset() {
+ *x = RejoinUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsResponse) ProtoMessage() {}
+
+func (x *RejoinUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *RejoinUserEventsResponse) GetRejoinedUserEventsCount() int64 {
+ if x != nil {
+ return x.RejoinedUserEventsCount
+ }
+ return 0
+}
+
+// Metadata for RejoinUserEvents method.
+type RejoinUserEventsMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RejoinUserEventsMetadata) Reset() {
+ *x = RejoinUserEventsMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsMetadata) ProtoMessage() {}
+
+func (x *RejoinUserEventsMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsMetadata.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP(), []int{4}
+}
+
+var File_google_cloud_retail_v2alpha_user_event_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2alpha_user_event_service_proto_rawDesc = []byte{
+ 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x75, 0x73,
+ 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 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, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 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, 0x80, 0x01, 0x0a, 0x15,
+ 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x7e,
+ 0x0a, 0x17, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
+ 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03,
+ 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x74, 0x73, 0x22, 0xa7,
+ 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x63,
+ 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53,
+ 0x63, 0x6f, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x22,
+ 0x67, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f,
+ 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x55, 0x53, 0x45, 0x52, 0x5f,
+ 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x53, 0x43, 0x4f,
+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
+ 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
+ 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f,
+ 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f,
+ 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64,
+ 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e,
+ 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e,
+ 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0xac, 0x0c,
+ 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x0e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x44, 0x2f, 0x76, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x3a,
+ 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0xae, 0x01, 0x0a, 0x10,
+ 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43,
+ 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x4e, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9a, 0x02, 0x0a,
+ 0x0f, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50,
+ 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f,
+ 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f,
+ 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x70, 0x75,
+ 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x60, 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67,
+ 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9f, 0x02, 0x0a, 0x10, 0x49, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xb5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x22, 0x45, 0x2f, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a,
+ 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x62, 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9f, 0x02, 0x0a, 0x10,
+ 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xb5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x22, 0x45,
+ 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x65,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x62, 0x0a, 0x34, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x45,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xf1, 0x01,
+ 0x0a, 0x10, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x2e, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a,
+ 0x22, 0x45, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x3a, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x34, 0x0a, 0x18, 0x52,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xe3, 0x01, 0x0a,
+ 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x42, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52,
+ 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescData = file_google_cloud_retail_v2alpha_user_event_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2alpha_user_event_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2alpha_user_event_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2alpha_user_event_service_proto_goTypes = []interface{}{
+ (RejoinUserEventsRequest_UserEventRejoinScope)(0), // 0: google.cloud.retail.v2alpha.RejoinUserEventsRequest.UserEventRejoinScope
+ (*WriteUserEventRequest)(nil), // 1: google.cloud.retail.v2alpha.WriteUserEventRequest
+ (*CollectUserEventRequest)(nil), // 2: google.cloud.retail.v2alpha.CollectUserEventRequest
+ (*RejoinUserEventsRequest)(nil), // 3: google.cloud.retail.v2alpha.RejoinUserEventsRequest
+ (*RejoinUserEventsResponse)(nil), // 4: google.cloud.retail.v2alpha.RejoinUserEventsResponse
+ (*RejoinUserEventsMetadata)(nil), // 5: google.cloud.retail.v2alpha.RejoinUserEventsMetadata
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2alpha.UserEvent
+ (*PurgeUserEventsRequest)(nil), // 7: google.cloud.retail.v2alpha.PurgeUserEventsRequest
+ (*ImportUserEventsRequest)(nil), // 8: google.cloud.retail.v2alpha.ImportUserEventsRequest
+ (*ExportUserEventsRequest)(nil), // 9: google.cloud.retail.v2alpha.ExportUserEventsRequest
+ (*httpbody.HttpBody)(nil), // 10: google.api.HttpBody
+ (*longrunning.Operation)(nil), // 11: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2alpha_user_event_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2alpha.WriteUserEventRequest.user_event:type_name -> google.cloud.retail.v2alpha.UserEvent
+ 0, // 1: google.cloud.retail.v2alpha.RejoinUserEventsRequest.user_event_rejoin_scope:type_name -> google.cloud.retail.v2alpha.RejoinUserEventsRequest.UserEventRejoinScope
+ 1, // 2: google.cloud.retail.v2alpha.UserEventService.WriteUserEvent:input_type -> google.cloud.retail.v2alpha.WriteUserEventRequest
+ 2, // 3: google.cloud.retail.v2alpha.UserEventService.CollectUserEvent:input_type -> google.cloud.retail.v2alpha.CollectUserEventRequest
+ 7, // 4: google.cloud.retail.v2alpha.UserEventService.PurgeUserEvents:input_type -> google.cloud.retail.v2alpha.PurgeUserEventsRequest
+ 8, // 5: google.cloud.retail.v2alpha.UserEventService.ImportUserEvents:input_type -> google.cloud.retail.v2alpha.ImportUserEventsRequest
+ 9, // 6: google.cloud.retail.v2alpha.UserEventService.ExportUserEvents:input_type -> google.cloud.retail.v2alpha.ExportUserEventsRequest
+ 3, // 7: google.cloud.retail.v2alpha.UserEventService.RejoinUserEvents:input_type -> google.cloud.retail.v2alpha.RejoinUserEventsRequest
+ 6, // 8: google.cloud.retail.v2alpha.UserEventService.WriteUserEvent:output_type -> google.cloud.retail.v2alpha.UserEvent
+ 10, // 9: google.cloud.retail.v2alpha.UserEventService.CollectUserEvent:output_type -> google.api.HttpBody
+ 11, // 10: google.cloud.retail.v2alpha.UserEventService.PurgeUserEvents:output_type -> google.longrunning.Operation
+ 11, // 11: google.cloud.retail.v2alpha.UserEventService.ImportUserEvents:output_type -> google.longrunning.Operation
+ 11, // 12: google.cloud.retail.v2alpha.UserEventService.ExportUserEvents:output_type -> google.longrunning.Operation
+ 11, // 13: google.cloud.retail.v2alpha.UserEventService.RejoinUserEvents:output_type -> google.longrunning.Operation
+ 8, // [8:14] is the sub-list for method output_type
+ 2, // [2:8] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2alpha_user_event_service_proto_init() }
+func file_google_cloud_retail_v2alpha_user_event_service_proto_init() {
+ if File_google_cloud_retail_v2alpha_user_event_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2alpha_export_config_proto_init()
+ file_google_cloud_retail_v2alpha_import_config_proto_init()
+ file_google_cloud_retail_v2alpha_purge_config_proto_init()
+ file_google_cloud_retail_v2alpha_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WriteUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CollectUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2alpha_user_event_service_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2alpha_user_event_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2alpha_user_event_service_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2alpha_user_event_service_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2alpha_user_event_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2alpha_user_event_service_proto = out.File
+ file_google_cloud_retail_v2alpha_user_event_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2alpha_user_event_service_proto_goTypes = nil
+ file_google_cloud_retail_v2alpha_user_event_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// UserEventServiceClient is the client API for UserEventService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type UserEventServiceClient interface {
+ // Writes a single user event.
+ WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Export of user events.
+ //
+ // Operation.response is of type ExportResponse.
+ // Operation.metadata is of type ExportMetadata.
+ ExportUserEvents(ctx context.Context, in *ExportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type userEventServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewUserEventServiceClient(cc grpc.ClientConnInterface) UserEventServiceClient {
+ return &userEventServiceClient{cc}
+}
+
+func (c *userEventServiceClient) WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error) {
+ out := new(UserEvent)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/WriteUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) {
+ out := new(httpbody.HttpBody)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/CollectUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/PurgeUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/ImportUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) ExportUserEvents(ctx context.Context, in *ExportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/ExportUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.UserEventService/RejoinUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// UserEventServiceServer is the server API for UserEventService service.
+type UserEventServiceServer interface {
+ // Writes a single user event.
+ WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error)
+ // Export of user events.
+ //
+ // Operation.response is of type ExportResponse.
+ // Operation.metadata is of type ExportMetadata.
+ ExportUserEvents(context.Context, *ExportUserEventsRequest) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedUserEventServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedUserEventServiceServer struct {
+}
+
+func (*UnimplementedUserEventServiceServer) WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method WriteUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CollectUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) ExportUserEvents(context.Context, *ExportUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ExportUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RejoinUserEvents not implemented")
+}
+
+func RegisterUserEventServiceServer(s *grpc.Server, srv UserEventServiceServer) {
+ s.RegisterService(&_UserEventService_serviceDesc, srv)
+}
+
+func _UserEventService_WriteUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(WriteUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/WriteUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, req.(*WriteUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_CollectUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CollectUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/CollectUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, req.(*CollectUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_PurgeUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/PurgeUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, req.(*PurgeUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_ImportUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/ImportUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, req.(*ImportUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_ExportUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ExportUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).ExportUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/ExportUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).ExportUserEvents(ctx, req.(*ExportUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_RejoinUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RejoinUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2alpha.UserEventService/RejoinUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, req.(*RejoinUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _UserEventService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2alpha.UserEventService",
+ HandlerType: (*UserEventServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "WriteUserEvent",
+ Handler: _UserEventService_WriteUserEvent_Handler,
+ },
+ {
+ MethodName: "CollectUserEvent",
+ Handler: _UserEventService_CollectUserEvent_Handler,
+ },
+ {
+ MethodName: "PurgeUserEvents",
+ Handler: _UserEventService_PurgeUserEvents_Handler,
+ },
+ {
+ MethodName: "ImportUserEvents",
+ Handler: _UserEventService_ImportUserEvents_Handler,
+ },
+ {
+ MethodName: "ExportUserEvents",
+ Handler: _UserEventService_ExportUserEvents_Handler,
+ },
+ {
+ MethodName: "RejoinUserEvents",
+ Handler: _UserEventService_RejoinUserEvents_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2alpha/user_event_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2beta/catalog.pb.go b/googleapis/cloud/retail/v2beta/catalog.pb.go
new file mode 100644
index 000000000..438a3b8c9
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/catalog.pb.go
@@ -0,0 +1,338 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/catalog.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Configures what level the product should be uploaded with regards to
+// how users will be send events and how predictions will be made.
+type ProductLevelConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The level of a [Catalog][google.cloud.retail.v2beta.Catalog] at which the
+ // [UserEvent][google.cloud.retail.v2beta.UserEvent]s are uploaded. Acceptable
+ // values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `primary` and
+ // [predict_product_level][google.cloud.retail.v2beta.ProductLevelConfig.predict_product_level]
+ // is `variant`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ EventProductLevel string `protobuf:"bytes,1,opt,name=event_product_level,json=eventProductLevel,proto3" json:"event_product_level,omitempty"`
+ // The level of a [Catalog][google.cloud.retail.v2beta.Catalog] at which the
+ // [PredictionService.Predict][google.cloud.retail.v2beta.PredictionService.Predict]
+ // is called. Acceptable values are:
+ // * `primary`
+ // * `variant`
+ //
+ // If this field is set to an invalid value other than these, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // If this field is `variant` and
+ // [event_product_level][google.cloud.retail.v2beta.ProductLevelConfig.event_product_level]
+ // is `primary`, an INVALID_ARGUMENT error is returned.
+ //
+ // See
+ // https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels
+ // for more details.
+ PredictProductLevel string `protobuf:"bytes,2,opt,name=predict_product_level,json=predictProductLevel,proto3" json:"predict_product_level,omitempty"`
+}
+
+func (x *ProductLevelConfig) Reset() {
+ *x = ProductLevelConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_catalog_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductLevelConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductLevelConfig) ProtoMessage() {}
+
+func (x *ProductLevelConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_catalog_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductLevelConfig.ProtoReflect.Descriptor instead.
+func (*ProductLevelConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_catalog_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ProductLevelConfig) GetEventProductLevel() string {
+ if x != nil {
+ return x.EventProductLevel
+ }
+ return ""
+}
+
+func (x *ProductLevelConfig) GetPredictProductLevel() string {
+ if x != nil {
+ return x.PredictProductLevel
+ }
+ return ""
+}
+
+// The catalog configuration.
+// Next ID: 5.
+type Catalog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Immutable. The fully qualified resource name of the catalog.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Required. Immutable. The catalog display name.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
+ // Required. The product level configuration.
+ ProductLevelConfig *ProductLevelConfig `protobuf:"bytes,4,opt,name=product_level_config,json=productLevelConfig,proto3" json:"product_level_config,omitempty"`
+}
+
+func (x *Catalog) Reset() {
+ *x = Catalog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_catalog_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Catalog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Catalog) ProtoMessage() {}
+
+func (x *Catalog) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_catalog_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Catalog.ProtoReflect.Descriptor instead.
+func (*Catalog) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_catalog_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Catalog) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Catalog) GetDisplayName() string {
+ if x != nil {
+ return x.DisplayName
+ }
+ return ""
+}
+
+func (x *Catalog) GetProductLevelConfig() *ProductLevelConfig {
+ if x != nil {
+ return x.ProductLevelConfig
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2beta_catalog_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_catalog_proto_rawDesc = []byte{
+ 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x78, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x97, 0x02, 0x0a, 0x07, 0x43,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05,
+ 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x65, 0x0a,
+ 0x14, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3a, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61,
+ 0x6c, 0x6f, 0x67, 0x7d, 0x42, 0xa1, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0c, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41,
+ 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca,
+ 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x41, 0x49, 0x0a,
+ 0x1e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x27, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_catalog_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_catalog_proto_rawDescData = file_google_cloud_retail_v2beta_catalog_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_catalog_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_catalog_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_catalog_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_catalog_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_catalog_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2beta_catalog_proto_goTypes = []interface{}{
+ (*ProductLevelConfig)(nil), // 0: google.cloud.retail.v2beta.ProductLevelConfig
+ (*Catalog)(nil), // 1: google.cloud.retail.v2beta.Catalog
+}
+var file_google_cloud_retail_v2beta_catalog_proto_depIdxs = []int32{
+ 0, // 0: google.cloud.retail.v2beta.Catalog.product_level_config:type_name -> google.cloud.retail.v2beta.ProductLevelConfig
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_catalog_proto_init() }
+func file_google_cloud_retail_v2beta_catalog_proto_init() {
+ if File_google_cloud_retail_v2beta_catalog_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_catalog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductLevelConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_catalog_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Catalog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_catalog_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_catalog_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_catalog_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_catalog_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_catalog_proto = out.File
+ file_google_cloud_retail_v2beta_catalog_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_catalog_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_catalog_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/catalog_service.pb.go b/googleapis/cloud/retail/v2beta/catalog_service.pb.go
new file mode 100644
index 000000000..0cb1186f0
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/catalog_service.pb.go
@@ -0,0 +1,586 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/catalog_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2beta.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The account resource name with an associated location.
+ //
+ // If the caller does not have permission to list
+ // [Catalog][google.cloud.retail.v2beta.Catalog]s under this location,
+ // regardless of whether or not this location exists, a PERMISSION_DENIED
+ // error is returned.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of [Catalog][google.cloud.retail.v2beta.Catalog]s to return.
+ // If unspecified, defaults to 50. The maximum allowed value is 1000. Values
+ // above 1000 will be coerced to 1000.
+ //
+ // If this field is negative, an INVALID_ARGUMENT is returned.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // A page token
+ // [ListCatalogsResponse.next_page_token][google.cloud.retail.v2beta.ListCatalogsResponse.next_page_token],
+ // received from a previous
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2beta.CatalogService.ListCatalogs]
+ // call. Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // [CatalogService.ListCatalogs][google.cloud.retail.v2beta.CatalogService.ListCatalogs]
+ // must match the call that provided the page token. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+}
+
+func (x *ListCatalogsRequest) Reset() {
+ *x = ListCatalogsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsRequest) ProtoMessage() {}
+
+func (x *ListCatalogsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsRequest.ProtoReflect.Descriptor instead.
+func (*ListCatalogsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_catalog_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ListCatalogsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListCatalogsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListCatalogsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+// Response for
+// [CatalogService.ListCatalogs][google.cloud.retail.v2beta.CatalogService.ListCatalogs]
+// method.
+type ListCatalogsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // All the customer's [Catalog][google.cloud.retail.v2beta.Catalog]s.
+ Catalogs []*Catalog `protobuf:"bytes,1,rep,name=catalogs,proto3" json:"catalogs,omitempty"`
+ // A token that can be sent as
+ // [ListCatalogsRequest.page_token][google.cloud.retail.v2beta.ListCatalogsRequest.page_token]
+ // to retrieve the next page. If this field is omitted, there are no
+ // subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+}
+
+func (x *ListCatalogsResponse) Reset() {
+ *x = ListCatalogsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCatalogsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCatalogsResponse) ProtoMessage() {}
+
+func (x *ListCatalogsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCatalogsResponse.ProtoReflect.Descriptor instead.
+func (*ListCatalogsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_catalog_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListCatalogsResponse) GetCatalogs() []*Catalog {
+ if x != nil {
+ return x.Catalogs
+ }
+ return nil
+}
+
+func (x *ListCatalogsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+// Request for
+// [CatalogService.UpdateCatalog][google.cloud.retail.v2beta.CatalogService.UpdateCatalog]
+// method.
+type UpdateCatalogRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The [Catalog][google.cloud.retail.v2beta.Catalog] to update.
+ //
+ // If the caller does not have permission to update the
+ // [Catalog][google.cloud.retail.v2beta.Catalog], regardless of whether or not
+ // it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Catalog][google.cloud.retail.v2beta.Catalog] to update does not
+ // exist, a NOT_FOUND error is returned.
+ Catalog *Catalog `protobuf:"bytes,1,opt,name=catalog,proto3" json:"catalog,omitempty"`
+ // Indicates which fields in the provided
+ // [Catalog][google.cloud.retail.v2beta.Catalog] to update. If not set, will
+ // only update the
+ // [Catalog.product_level_config][google.cloud.retail.v2beta.Catalog.product_level_config]
+ // field, which is also the only currently supported field to update.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateCatalogRequest) Reset() {
+ *x = UpdateCatalogRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateCatalogRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateCatalogRequest) ProtoMessage() {}
+
+func (x *UpdateCatalogRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateCatalogRequest.ProtoReflect.Descriptor instead.
+func (*UpdateCatalogRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_catalog_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateCatalogRequest) GetCatalog() *Catalog {
+ if x != nil {
+ return x.Catalog
+ }
+ return nil
+}
+
+func (x *UpdateCatalogRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2beta_catalog_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_catalog_service_proto_rawDesc = []byte{
+ 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x01,
+ 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
+ 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
+ 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
+ 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f,
+ 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12,
+ 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b,
+ 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x32, 0xdc, 0x03, 0x0a,
+ 0x0e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
+ 0xb4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0xda, 0x41, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc7, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61,
+ 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22,
+ 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x32, 0x38, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a,
+ 0x7d, 0x3a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0xda, 0x41, 0x13, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
+ 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xdc, 0x01, 0x0a, 0x1e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42, 0x13,
+ 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f,
+ 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c,
+ 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_catalog_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_catalog_service_proto_rawDescData = file_google_cloud_retail_v2beta_catalog_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_catalog_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_catalog_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_catalog_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_catalog_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_catalog_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_google_cloud_retail_v2beta_catalog_service_proto_goTypes = []interface{}{
+ (*ListCatalogsRequest)(nil), // 0: google.cloud.retail.v2beta.ListCatalogsRequest
+ (*ListCatalogsResponse)(nil), // 1: google.cloud.retail.v2beta.ListCatalogsResponse
+ (*UpdateCatalogRequest)(nil), // 2: google.cloud.retail.v2beta.UpdateCatalogRequest
+ (*Catalog)(nil), // 3: google.cloud.retail.v2beta.Catalog
+ (*fieldmaskpb.FieldMask)(nil), // 4: google.protobuf.FieldMask
+}
+var file_google_cloud_retail_v2beta_catalog_service_proto_depIdxs = []int32{
+ 3, // 0: google.cloud.retail.v2beta.ListCatalogsResponse.catalogs:type_name -> google.cloud.retail.v2beta.Catalog
+ 3, // 1: google.cloud.retail.v2beta.UpdateCatalogRequest.catalog:type_name -> google.cloud.retail.v2beta.Catalog
+ 4, // 2: google.cloud.retail.v2beta.UpdateCatalogRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 3: google.cloud.retail.v2beta.CatalogService.ListCatalogs:input_type -> google.cloud.retail.v2beta.ListCatalogsRequest
+ 2, // 4: google.cloud.retail.v2beta.CatalogService.UpdateCatalog:input_type -> google.cloud.retail.v2beta.UpdateCatalogRequest
+ 1, // 5: google.cloud.retail.v2beta.CatalogService.ListCatalogs:output_type -> google.cloud.retail.v2beta.ListCatalogsResponse
+ 3, // 6: google.cloud.retail.v2beta.CatalogService.UpdateCatalog:output_type -> google.cloud.retail.v2beta.Catalog
+ 5, // [5:7] is the sub-list for method output_type
+ 3, // [3:5] 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_retail_v2beta_catalog_service_proto_init() }
+func file_google_cloud_retail_v2beta_catalog_service_proto_init() {
+ if File_google_cloud_retail_v2beta_catalog_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_catalog_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCatalogsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateCatalogRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_catalog_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_catalog_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_catalog_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_catalog_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_catalog_service_proto = out.File
+ file_google_cloud_retail_v2beta_catalog_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_catalog_service_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_catalog_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// CatalogServiceClient is the client API for CatalogService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type CatalogServiceClient interface {
+ // Lists all the [Catalog][google.cloud.retail.v2beta.Catalog]s associated
+ // with the project.
+ ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2beta.Catalog]s.
+ UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
+}
+
+type catalogServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewCatalogServiceClient(cc grpc.ClientConnInterface) CatalogServiceClient {
+ return &catalogServiceClient{cc}
+}
+
+func (c *catalogServiceClient) ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error) {
+ out := new(ListCatalogsResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.CatalogService/ListCatalogs", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *catalogServiceClient) UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
+ out := new(Catalog)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.CatalogService/UpdateCatalog", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// CatalogServiceServer is the server API for CatalogService service.
+type CatalogServiceServer interface {
+ // Lists all the [Catalog][google.cloud.retail.v2beta.Catalog]s associated
+ // with the project.
+ ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error)
+ // Updates the [Catalog][google.cloud.retail.v2beta.Catalog]s.
+ UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error)
+}
+
+// UnimplementedCatalogServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedCatalogServiceServer struct {
+}
+
+func (*UnimplementedCatalogServiceServer) ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListCatalogs not implemented")
+}
+func (*UnimplementedCatalogServiceServer) UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateCatalog not implemented")
+}
+
+func RegisterCatalogServiceServer(s *grpc.Server, srv CatalogServiceServer) {
+ s.RegisterService(&_CatalogService_serviceDesc, srv)
+}
+
+func _CatalogService_ListCatalogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListCatalogsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.CatalogService/ListCatalogs",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).ListCatalogs(ctx, req.(*ListCatalogsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _CatalogService_UpdateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateCatalogRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.CatalogService/UpdateCatalog",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CatalogServiceServer).UpdateCatalog(ctx, req.(*UpdateCatalogRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _CatalogService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2beta.CatalogService",
+ HandlerType: (*CatalogServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListCatalogs",
+ Handler: _CatalogService_ListCatalogs_Handler,
+ },
+ {
+ MethodName: "UpdateCatalog",
+ Handler: _CatalogService_UpdateCatalog_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2beta/catalog_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2beta/common.pb.go b/googleapis/cloud/retail/v2beta/common.pb.go
new file mode 100644
index 000000000..741ec9a80
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/common.pb.go
@@ -0,0 +1,560 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/common.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// A custom attribute that is not explicitly modeled in
+// [Product][google.cloud.retail.v2beta.Product]].
+type CustomAttribute struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The textual values of this custom attribute. For example, `["yellow",
+ // "green"]` when the key is "color".
+ //
+ // At most 400 values are allowed. Empty values are not allowed. Each value
+ // must be a UTF-8 encoded string with a length limit of 256 bytes. Otherwise,
+ // an INVALID_ARGUMENT error is returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2beta.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2beta.CustomAttribute.numbers] should be
+ // set. Otherwise, a FAILED_PRECONDITION error is returned.
+ Text []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
+ // The numerical values of this custom attribute. For example, `[2.3, 15.4]`
+ // when the key is "lengths_cm".
+ //
+ // At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ //
+ // Exactly one of [text][google.cloud.retail.v2beta.CustomAttribute.text] or
+ // [numbers][google.cloud.retail.v2beta.CustomAttribute.numbers] should be
+ // set. Otherwise, a FAILED_PRECONDITION error is returned.
+ Numbers []float64 `protobuf:"fixed64,2,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
+}
+
+func (x *CustomAttribute) Reset() {
+ *x = CustomAttribute{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CustomAttribute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CustomAttribute) ProtoMessage() {}
+
+func (x *CustomAttribute) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CustomAttribute.ProtoReflect.Descriptor instead.
+func (*CustomAttribute) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_common_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CustomAttribute) GetText() []string {
+ if x != nil {
+ return x.Text
+ }
+ return nil
+}
+
+func (x *CustomAttribute) GetNumbers() []float64 {
+ if x != nil {
+ return x.Numbers
+ }
+ return nil
+}
+
+// [Product][google.cloud.retail.v2beta.Product] thumbnail/detail image.
+type Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. URI of the image.
+ //
+ // This field must be a valid UTF-8 encoded URI with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](http://schema.org/image).
+ Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Height of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
+ // Width of the image in number of pixels.
+ //
+ // This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
+}
+
+func (x *Image) Reset() {
+ *x = Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Image) ProtoMessage() {}
+
+func (x *Image) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Image.ProtoReflect.Descriptor instead.
+func (*Image) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_common_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Image) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Image) GetHeight() int32 {
+ if x != nil {
+ return x.Height
+ }
+ return 0
+}
+
+func (x *Image) GetWidth() int32 {
+ if x != nil {
+ return x.Width
+ }
+ return 0
+}
+
+// The price information of a [Product][google.cloud.retail.v2beta.Product].
+type PriceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The 3-letter currency code defined in [ISO
+ // 4217][https://www.iso.org/iso-4217-currency-codes.html].
+ //
+ // If this field is an unrecognizable currency code, an INVALID_ARGUMENT
+ // error is returned.
+ CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+ // Price of the product.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ // Schema.org property
+ // [Offer.priceSpecification](https://schema.org/priceSpecification).
+ Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"`
+ // Price of the product without any discount. If zero, by default set to be
+ // the [price][google.cloud.retail.v2beta.PriceInfo.price].
+ OriginalPrice float32 `protobuf:"fixed32,3,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
+ // The costs associated with the sale of a particular product. Used for gross
+ // profit reporting.
+ //
+ // * Profit = [price][google.cloud.retail.v2beta.PriceInfo.price] -
+ // [cost][google.cloud.retail.v2beta.PriceInfo.cost]
+ //
+ // Google Merchant Center property
+ // [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895)
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+}
+
+func (x *PriceInfo) Reset() {
+ *x = PriceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PriceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PriceInfo) ProtoMessage() {}
+
+func (x *PriceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PriceInfo.ProtoReflect.Descriptor instead.
+func (*PriceInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_common_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PriceInfo) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+func (x *PriceInfo) GetPrice() float32 {
+ if x != nil {
+ return x.Price
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetOriginalPrice() float32 {
+ if x != nil {
+ return x.OriginalPrice
+ }
+ return 0
+}
+
+func (x *PriceInfo) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+// Information of an end user.
+type UserInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Highly recommended for logged-in users. Unique identifier for logged-in
+ // user, such as a user name.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ // The end user's IP address. This field is used to extract location
+ // information for personalization.
+ //
+ // This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
+ // address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2beta.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2beta.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
+ // User agent as included in the HTTP header.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 1 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // This should not be set when using the client side event reporting with
+ // GTM or JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2beta.UserEventService.CollectUserEvent]
+ // or if
+ // [direct_user_request][google.cloud.retail.v2beta.UserInfo.direct_user_request]
+ // is set. Otherwise, a FAILED_PRECONDITION error is returned.
+ UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
+ // True if the request is made directly from the end user, in which case the
+ // [ip_address][google.cloud.retail.v2beta.UserInfo.ip_address] and
+ // [user_agent][google.cloud.retail.v2beta.UserInfo.user_agent] can be
+ // populated from the HTTP request. This flag should be set only if the API
+ // request is made directly from the end user such as a mobile app (and not if
+ // a gateway or a server is processing and pushing the user events).
+ //
+ // This should not be set when using the JavaScript tag in
+ // [UserEventService.CollectUserEvent][google.cloud.retail.v2beta.UserEventService.CollectUserEvent].
+ // Otherwise, a FAILED_PRECONDITION error is returned.
+ DirectUserRequest bool `protobuf:"varint,4,opt,name=direct_user_request,json=directUserRequest,proto3" json:"direct_user_request,omitempty"`
+}
+
+func (x *UserInfo) Reset() {
+ *x = UserInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserInfo) ProtoMessage() {}
+
+func (x *UserInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_common_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
+func (*UserInfo) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_common_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UserInfo) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *UserInfo) GetIpAddress() string {
+ if x != nil {
+ return x.IpAddress
+ }
+ return ""
+}
+
+func (x *UserInfo) GetUserAgent() string {
+ if x != nil {
+ return x.UserAgent
+ }
+ return ""
+}
+
+func (x *UserInfo) GetDirectUserRequest() bool {
+ if x != nil {
+ return x.DirectUserRequest
+ }
+ return false
+}
+
+var File_google_cloud_retail_v2beta_common_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_common_proto_rawDesc = []byte{
+ 0x0a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 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, 0x3f, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07,
+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x01, 0x52, 0x07, 0x6e,
+ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x4c, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12,
+ 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14,
+ 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77,
+ 0x69, 0x64, 0x74, 0x68, 0x22, 0x81, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65,
+ 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a,
+ 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50,
+ 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65,
+ 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13,
+ 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0xd4, 0x01, 0x0a,
+ 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42,
+ 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
+ 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c,
+ 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_common_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_common_proto_rawDescData = file_google_cloud_retail_v2beta_common_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_common_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_common_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_common_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_common_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2beta_common_proto_goTypes = []interface{}{
+ (*CustomAttribute)(nil), // 0: google.cloud.retail.v2beta.CustomAttribute
+ (*Image)(nil), // 1: google.cloud.retail.v2beta.Image
+ (*PriceInfo)(nil), // 2: google.cloud.retail.v2beta.PriceInfo
+ (*UserInfo)(nil), // 3: google.cloud.retail.v2beta.UserInfo
+}
+var file_google_cloud_retail_v2beta_common_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_common_proto_init() }
+func file_google_cloud_retail_v2beta_common_proto_init() {
+ if File_google_cloud_retail_v2beta_common_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CustomAttribute); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PriceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_common_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_common_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_common_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_common_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_common_proto = out.File
+ file_google_cloud_retail_v2beta_common_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_common_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_common_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/export_config.pb.go b/googleapis/cloud/retail/v2beta/export_config.pb.go
new file mode 100644
index 000000000..77ffb46df
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/export_config.pb.go
@@ -0,0 +1,1048 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/export_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The output configuration setting.
+type OutputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The configuration of destination for holding output data.
+ //
+ // Types that are assignable to Destination:
+ // *OutputConfig_GcsDestination_
+ // *OutputConfig_BigqueryDestination
+ Destination isOutputConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *OutputConfig) Reset() {
+ *x = OutputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig) ProtoMessage() {}
+
+func (x *OutputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead.
+func (*OutputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *OutputConfig) GetDestination() isOutputConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *OutputConfig) GetGcsDestination() *OutputConfig_GcsDestination {
+ if x, ok := x.GetDestination().(*OutputConfig_GcsDestination_); ok {
+ return x.GcsDestination
+ }
+ return nil
+}
+
+func (x *OutputConfig) GetBigqueryDestination() *OutputConfig_BigQueryDestination {
+ if x, ok := x.GetDestination().(*OutputConfig_BigqueryDestination); ok {
+ return x.BigqueryDestination
+ }
+ return nil
+}
+
+type isOutputConfig_Destination interface {
+ isOutputConfig_Destination()
+}
+
+type OutputConfig_GcsDestination_ struct {
+ // The Google Cloud Storage location where the output is to be written to.
+ GcsDestination *OutputConfig_GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"`
+}
+
+type OutputConfig_BigqueryDestination struct {
+ // The BigQuery location where the output is to be written to.
+ BigqueryDestination *OutputConfig_BigQueryDestination `protobuf:"bytes,2,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"`
+}
+
+func (*OutputConfig_GcsDestination_) isOutputConfig_Destination() {}
+
+func (*OutputConfig_BigqueryDestination) isOutputConfig_Destination() {}
+
+// Configuration of destination for Export related errors.
+type ExportErrorsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Errors destination.
+ //
+ // Types that are assignable to Destination:
+ // *ExportErrorsConfig_GcsPrefix
+ Destination isExportErrorsConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *ExportErrorsConfig) Reset() {
+ *x = ExportErrorsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportErrorsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportErrorsConfig) ProtoMessage() {}
+
+func (x *ExportErrorsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportErrorsConfig.ProtoReflect.Descriptor instead.
+func (*ExportErrorsConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (m *ExportErrorsConfig) GetDestination() isExportErrorsConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *ExportErrorsConfig) GetGcsPrefix() string {
+ if x, ok := x.GetDestination().(*ExportErrorsConfig_GcsPrefix); ok {
+ return x.GcsPrefix
+ }
+ return ""
+}
+
+type isExportErrorsConfig_Destination interface {
+ isExportErrorsConfig_Destination()
+}
+
+type ExportErrorsConfig_GcsPrefix struct {
+ // Google Cloud Storage path for import errors. This must be an empty,
+ // existing Cloud Storage bucket. Export errors will be written to a file in
+ // this bucket, one per line, as a JSON-encoded
+ // `google.rpc.Status` message.
+ GcsPrefix string `protobuf:"bytes,1,opt,name=gcs_prefix,json=gcsPrefix,proto3,oneof"`
+}
+
+func (*ExportErrorsConfig_GcsPrefix) isExportErrorsConfig_Destination() {}
+
+// Request message for ExportProducts method.
+type ExportProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required.
+ // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Unique identifier provided by client, within the ancestor
+ // dataset scope. Ensures idempotency for expensive long running operations.
+ // Server-generated if unspecified. Up to 128 characters long. This is
+ // returned as google.longrunning.Operation.name in the response.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Required. The desired output location of the data.
+ OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
+ // Filtering expression to specify restrictions over
+ // returned products. This is a sequence of terms, where each term applies
+ // some kind of a restriction to the returned products. Use this expression to
+ // restrict results to a specific time range, tag, stock state or filter
+ // products by product type.
+ // eg: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // lastModifiedTime<"2012-04-23T18:25:43.511Z" productType=primary
+ //
+ // We expect only 4 types of fields:
+ //
+ // * lastModifiedTime: this can be specified a maximum of 2 times, once
+ // with a
+ // less than operator and once with a greater than operator. The
+ // lastModifiedTime restrict should result in one contiguous valid last
+ // modified time range.
+ //
+ // * productType: supported values are 'primary' and 'variant'. Boolean
+ // operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // productType values by a space.
+ //
+ // * availability: supported values are IN_STOCK, OUT_OF_STOCK,
+ // PREORDER and BACKORDER. Boolean operators `OR` and `NOT` are
+ // supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // availability values by a space.
+ //
+ // * Tag expressions. Restricts output to products that match all of the
+ // specified tags. Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space. `-"tagA"` is also supported and is equivalent
+ // to `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded
+ // strings with a size limit of 1 KiB.
+ //
+ // Some examples of valid filters expressions:
+ //
+ // * Example 1: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // lastModifiedTime < "2012-04-23T18:30:43.511Z"
+ // * Example 2: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // productType = "variant"
+ // * Example 3: tag=("Red" OR "Blue") tag="New-Arrival"
+ // tag=(NOT "promotional")
+ // productType = "primary" lastModifiedTime <
+ // "2018-04-23T18:30:43.511Z"
+ // * Example 4: lastModifiedTime > "2012-04-23T18:25:43.511Z"
+ // * Example 5: availability = (IN_STOCK OR BACKORDER)
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+}
+
+func (x *ExportProductsRequest) Reset() {
+ *x = ExportProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportProductsRequest) ProtoMessage() {}
+
+func (x *ExportProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportProductsRequest.ProtoReflect.Descriptor instead.
+func (*ExportProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ExportProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ExportProductsRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportProductsRequest) GetOutputConfig() *OutputConfig {
+ if x != nil {
+ return x.OutputConfig
+ }
+ return nil
+}
+
+func (x *ExportProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+// Request message for ExportUserEvents method.
+type ExportUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. "projects/1234/locations/global/catalogs/default_catalog"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Unique identifier provided by client, within the ancestor
+ // dataset scope. Ensures idempotency for expensive long running operations.
+ // Server-generated if unspecified. Up to 128 characters long. This is
+ // returned as google.longrunning.Operation.name in the response.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Required. The desired output location of the data.
+ OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
+ // Filtering expression to specify restrictions over
+ // returned events. This is a sequence of terms, where each term applies some
+ // kind of a restriction to the returned user events. Use this expression to
+ // restrict results to a specific time range, or filter events by eventType.
+ // eg: eventTime > "2012-04-23T18:25:43.511Z" eventsMissingCatalogItems
+ // eventTime<"2012-04-23T18:25:43.511Z" eventType=search
+ //
+ // We expect only 3 types of fields:
+ //
+ // * eventTime: this can be specified a maximum of 2 times, once with a
+ // less than operator and once with a greater than operator. The
+ // eventTime restrict should result in one contiguous valid eventTime
+ // range.
+ //
+ // * eventType: Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space.
+ //
+ // * eventsMissingCatalogItems: specifying this will restrict results
+ // to events for which catalog items were not found in the catalog. The
+ // default behavior is to return only those events for which catalog
+ // items were found.
+ //
+ // Some examples of valid filters expressions:
+ //
+ // * Example 1: eventTime > "2012-04-23T18:25:43.511Z"
+ // eventTime < "2012-04-23T18:30:43.511Z"
+ // * Example 2: eventTime > "2012-04-23T18:25:43.511Z"
+ // eventType = detail-page-view
+ // * Example 3: eventsMissingCatalogItems
+ // eventType = (NOT search) eventTime < "2018-04-23T18:30:43.511Z"
+ // * Example 4: eventTime > "2012-04-23T18:25:43.511Z"
+ // * Example 5: eventType = (search OR impression)
+ // * Example 6: eventsMissingCatalogItems
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+}
+
+func (x *ExportUserEventsRequest) Reset() {
+ *x = ExportUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportUserEventsRequest) ProtoMessage() {}
+
+func (x *ExportUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*ExportUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ExportUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ExportUserEventsRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportUserEventsRequest) GetOutputConfig() *OutputConfig {
+ if x != nil {
+ return x.OutputConfig
+ }
+ return nil
+}
+
+func (x *ExportUserEventsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+// Metadata related to the progress of the Export operation. This will be
+// returned by the google.longrunning.Operation.metadata field.
+type ExportMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name of the operation.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Id of the request / operation. This is parroting back the requestId that
+ // was passed in the request.
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Operation last update time. If the operation is done, this is also the
+ // finish time.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+}
+
+func (x *ExportMetadata) Reset() {
+ *x = ExportMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportMetadata) ProtoMessage() {}
+
+func (x *ExportMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportMetadata.ProtoReflect.Descriptor instead.
+func (*ExportMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ExportMetadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ExportMetadata) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+func (x *ExportMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *ExportMetadata) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+// Response of the ExportProductsRequest. If the long running
+// operation is done, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ExportProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors in the request if set.
+ ErrorsConfig *ExportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ExportProductsResponse) Reset() {
+ *x = ExportProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportProductsResponse) ProtoMessage() {}
+
+func (x *ExportProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportProductsResponse.ProtoReflect.Descriptor instead.
+func (*ExportProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ExportProductsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ExportProductsResponse) GetErrorsConfig() *ExportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// Response of the ExportUserEventsRequest. If the long running
+// operation was successful, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ExportUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors if this field was set in
+ // the request.
+ ErrorsConfig *ExportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ExportUserEventsResponse) Reset() {
+ *x = ExportUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExportUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExportUserEventsResponse) ProtoMessage() {}
+
+func (x *ExportUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExportUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*ExportUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ExportUserEventsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ExportUserEventsResponse) GetErrorsConfig() *ExportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// The Google Cloud Storage output destination configuration.
+type OutputConfig_GcsDestination struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The output uri prefix for saving output data to json files.
+ // Some mapping examples are as follows:
+ // output_uri_prefix sample output(assuming the object is foo.json)
+ // ======================== =============================================
+ // gs://bucket/ gs://bucket/foo.json
+ // gs://bucket/folder/ gs://bucket/folder/foo.json
+ // gs://bucket/folder/item_ gs://bucket/folder/item_foo.json
+ OutputUriPrefix string `protobuf:"bytes,1,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"`
+}
+
+func (x *OutputConfig_GcsDestination) Reset() {
+ *x = OutputConfig_GcsDestination{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig_GcsDestination) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig_GcsDestination) ProtoMessage() {}
+
+func (x *OutputConfig_GcsDestination) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig_GcsDestination.ProtoReflect.Descriptor instead.
+func (*OutputConfig_GcsDestination) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *OutputConfig_GcsDestination) GetOutputUriPrefix() string {
+ if x != nil {
+ return x.OutputUriPrefix
+ }
+ return ""
+}
+
+// The BigQuery output destination configuration.
+type OutputConfig_BigQueryDestination struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The ID of a BigQuery Dataset.
+ DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
+}
+
+func (x *OutputConfig_BigQueryDestination) Reset() {
+ *x = OutputConfig_BigQueryDestination{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutputConfig_BigQueryDestination) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutputConfig_BigQueryDestination) ProtoMessage() {}
+
+func (x *OutputConfig_BigQueryDestination) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_export_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutputConfig_BigQueryDestination.ProtoReflect.Descriptor instead.
+func (*OutputConfig_BigQueryDestination) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP(), []int{0, 1}
+}
+
+func (x *OutputConfig_BigQueryDestination) GetDatasetId() string {
+ if x != nil {
+ return x.DatasetId
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2beta_export_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_export_config_proto_rawDesc = []byte{
+ 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x65, 0x78, 0x70,
+ 0x6f, 0x72, 0x74, 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, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 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, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0xed, 0x02, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x62, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 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, 0x12, 0x71, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x69,
+ 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73,
+ 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x41, 0x0a, 0x0e, 0x47, 0x63, 0x73, 0x44,
+ 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x6f, 0x75,
+ 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70,
+ 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x34, 0x0a, 0x13, 0x42,
+ 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49,
+ 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x44, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x72,
+ 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63,
+ 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69,
+ 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x6f, 0x72,
+ 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0d,
+ 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x70,
+ 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64,
+ 0x12, 0x52, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xbd, 0x01, 0x0a,
+ 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
+ 0x65, 0x18, 0x03, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x3b, 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,
+ 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a,
+ 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73,
+ 0x12, 0x53, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70,
+ 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e,
+ 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x42, 0xda, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x42, 0x11, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54,
+ 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_export_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_export_config_proto_rawDescData = file_google_cloud_retail_v2beta_export_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_export_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_export_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_export_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_export_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_export_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_export_config_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
+var file_google_cloud_retail_v2beta_export_config_proto_goTypes = []interface{}{
+ (*OutputConfig)(nil), // 0: google.cloud.retail.v2beta.OutputConfig
+ (*ExportErrorsConfig)(nil), // 1: google.cloud.retail.v2beta.ExportErrorsConfig
+ (*ExportProductsRequest)(nil), // 2: google.cloud.retail.v2beta.ExportProductsRequest
+ (*ExportUserEventsRequest)(nil), // 3: google.cloud.retail.v2beta.ExportUserEventsRequest
+ (*ExportMetadata)(nil), // 4: google.cloud.retail.v2beta.ExportMetadata
+ (*ExportProductsResponse)(nil), // 5: google.cloud.retail.v2beta.ExportProductsResponse
+ (*ExportUserEventsResponse)(nil), // 6: google.cloud.retail.v2beta.ExportUserEventsResponse
+ (*OutputConfig_GcsDestination)(nil), // 7: google.cloud.retail.v2beta.OutputConfig.GcsDestination
+ (*OutputConfig_BigQueryDestination)(nil), // 8: google.cloud.retail.v2beta.OutputConfig.BigQueryDestination
+ (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp
+ (*status.Status)(nil), // 10: google.rpc.Status
+}
+var file_google_cloud_retail_v2beta_export_config_proto_depIdxs = []int32{
+ 7, // 0: google.cloud.retail.v2beta.OutputConfig.gcs_destination:type_name -> google.cloud.retail.v2beta.OutputConfig.GcsDestination
+ 8, // 1: google.cloud.retail.v2beta.OutputConfig.bigquery_destination:type_name -> google.cloud.retail.v2beta.OutputConfig.BigQueryDestination
+ 0, // 2: google.cloud.retail.v2beta.ExportProductsRequest.output_config:type_name -> google.cloud.retail.v2beta.OutputConfig
+ 0, // 3: google.cloud.retail.v2beta.ExportUserEventsRequest.output_config:type_name -> google.cloud.retail.v2beta.OutputConfig
+ 9, // 4: google.cloud.retail.v2beta.ExportMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 9, // 5: google.cloud.retail.v2beta.ExportMetadata.update_time:type_name -> google.protobuf.Timestamp
+ 10, // 6: google.cloud.retail.v2beta.ExportProductsResponse.error_samples:type_name -> google.rpc.Status
+ 1, // 7: google.cloud.retail.v2beta.ExportProductsResponse.errors_config:type_name -> google.cloud.retail.v2beta.ExportErrorsConfig
+ 10, // 8: google.cloud.retail.v2beta.ExportUserEventsResponse.error_samples:type_name -> google.rpc.Status
+ 1, // 9: google.cloud.retail.v2beta.ExportUserEventsResponse.errors_config:type_name -> google.cloud.retail.v2beta.ExportErrorsConfig
+ 10, // [10:10] is the sub-list for method output_type
+ 10, // [10:10] is the sub-list for method input_type
+ 10, // [10:10] is the sub-list for extension type_name
+ 10, // [10:10] is the sub-list for extension extendee
+ 0, // [0:10] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_export_config_proto_init() }
+func file_google_cloud_retail_v2beta_export_config_proto_init() {
+ if File_google_cloud_retail_v2beta_export_config_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportErrorsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExportUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig_GcsDestination); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutputConfig_BigQueryDestination); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*OutputConfig_GcsDestination_)(nil),
+ (*OutputConfig_BigqueryDestination)(nil),
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*ExportErrorsConfig_GcsPrefix)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_export_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 9,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_export_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_export_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_export_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_export_config_proto = out.File
+ file_google_cloud_retail_v2beta_export_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_export_config_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_export_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/import_config.pb.go b/googleapis/cloud/retail/v2beta/import_config.pb.go
new file mode 100644
index 000000000..316f206ea
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/import_config.pb.go
@@ -0,0 +1,1489 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/import_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Google Cloud Storage location for input content.
+// format.
+type GcsSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Google Cloud Storage URIs to input files. URI can be up to
+ // 2000 characters long. URIs can match the full object path (for example,
+ // gs://bucket/directory/object.json) or a pattern matching one or more
+ // files, such as gs://bucket/directory/*.json. A request can
+ // contain at most 100 files, and each file can be up to 2 GB. See
+ // [Importing product information](/recommendations-ai/docs/upload-catalog)
+ // for the expected file format and setup instructions.
+ InputUris []string `protobuf:"bytes,1,rep,name=input_uris,json=inputUris,proto3" json:"input_uris,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for product imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user events imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,2,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *GcsSource) Reset() {
+ *x = GcsSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GcsSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GcsSource) ProtoMessage() {}
+
+func (x *GcsSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GcsSource.ProtoReflect.Descriptor instead.
+func (*GcsSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GcsSource) GetInputUris() []string {
+ if x != nil {
+ return x.InputUris
+ }
+ return nil
+}
+
+func (x *GcsSource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// BigQuery source import data from.
+type BigQuerySource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The project id (can be project # or id) that the BigQuery source is in. If
+ // not specified, inherits the project id from the parent request.
+ ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ // Required. The BigQuery data set to copy the data from.
+ DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
+ // Required. The BigQuery table to copy the data from.
+ TableId string `protobuf:"bytes,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+ // Intermediate Cloud Storage directory used for the import. Can be specified
+ // if one wants to have the BigQuery export to a specific Cloud Storage
+ // directory.
+ GcsStagingDir string `protobuf:"bytes,3,opt,name=gcs_staging_dir,json=gcsStagingDir,proto3" json:"gcs_staging_dir,omitempty"`
+ // The schema to use when parsing the data from the source.
+ //
+ // Supported values for catalog imports:
+ //
+ // 1: "product" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#json
+ // (Default for products.import)
+ //
+ // 2: "product_merchant_center" using
+ // https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc
+ //
+ // Supported values for user event imports:
+ //
+ // 1: "user_event" using
+ // https://cloud.google.com/recommendations-ai/docs/manage-user-events#import
+ // (Default for userEvents.import)
+ //
+ // 2. "user_event_ga360" using
+ // https://support.google.com/analytics/answer/3437719?hl=en
+ DataSchema string `protobuf:"bytes,4,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"`
+}
+
+func (x *BigQuerySource) Reset() {
+ *x = BigQuerySource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BigQuerySource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BigQuerySource) ProtoMessage() {}
+
+func (x *BigQuerySource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BigQuerySource.ProtoReflect.Descriptor instead.
+func (*BigQuerySource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *BigQuerySource) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDatasetId() string {
+ if x != nil {
+ return x.DatasetId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetTableId() string {
+ if x != nil {
+ return x.TableId
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetGcsStagingDir() string {
+ if x != nil {
+ return x.GcsStagingDir
+ }
+ return ""
+}
+
+func (x *BigQuerySource) GetDataSchema() string {
+ if x != nil {
+ return x.DataSchema
+ }
+ return ""
+}
+
+// The inline source for the input config for ImportProducts method.
+type ProductInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of products to update/create. Recommended max of 10k items.
+ Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
+}
+
+func (x *ProductInlineSource) Reset() {
+ *x = ProductInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInlineSource) ProtoMessage() {}
+
+func (x *ProductInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInlineSource.ProtoReflect.Descriptor instead.
+func (*ProductInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ProductInlineSource) GetProducts() []*Product {
+ if x != nil {
+ return x.Products
+ }
+ return nil
+}
+
+// The inline source for the input config for ImportUserEvents method.
+type UserEventInlineSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of user events to import. Recommended max of 10k items.
+ UserEvents []*UserEvent `protobuf:"bytes,1,rep,name=user_events,json=userEvents,proto3" json:"user_events,omitempty"`
+}
+
+func (x *UserEventInlineSource) Reset() {
+ *x = UserEventInlineSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInlineSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInlineSource) ProtoMessage() {}
+
+func (x *UserEventInlineSource) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInlineSource.ProtoReflect.Descriptor instead.
+func (*UserEventInlineSource) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UserEventInlineSource) GetUserEvents() []*UserEvent {
+ if x != nil {
+ return x.UserEvents
+ }
+ return nil
+}
+
+// Configuration of destination for Import related errors.
+type ImportErrorsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Errors destination.
+ //
+ // Types that are assignable to Destination:
+ // *ImportErrorsConfig_GcsPrefix
+ Destination isImportErrorsConfig_Destination `protobuf_oneof:"destination"`
+}
+
+func (x *ImportErrorsConfig) Reset() {
+ *x = ImportErrorsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportErrorsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportErrorsConfig) ProtoMessage() {}
+
+func (x *ImportErrorsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportErrorsConfig.ProtoReflect.Descriptor instead.
+func (*ImportErrorsConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (m *ImportErrorsConfig) GetDestination() isImportErrorsConfig_Destination {
+ if m != nil {
+ return m.Destination
+ }
+ return nil
+}
+
+func (x *ImportErrorsConfig) GetGcsPrefix() string {
+ if x, ok := x.GetDestination().(*ImportErrorsConfig_GcsPrefix); ok {
+ return x.GcsPrefix
+ }
+ return ""
+}
+
+type isImportErrorsConfig_Destination interface {
+ isImportErrorsConfig_Destination()
+}
+
+type ImportErrorsConfig_GcsPrefix struct {
+ // Google Cloud Storage path for import errors. This must be an empty,
+ // existing Cloud Storage bucket. Import errors will be written to a file in
+ // this bucket, one per line, as a JSON-encoded
+ // `google.rpc.Status` message.
+ GcsPrefix string `protobuf:"bytes,1,opt,name=gcs_prefix,json=gcsPrefix,proto3,oneof"`
+}
+
+func (*ImportErrorsConfig_GcsPrefix) isImportErrorsConfig_Destination() {}
+
+// Request message for Import methods.
+type ImportProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required.
+ // "projects/1234/locations/global/catalogs/default_catalog/branches/default_branch"
+ //
+ // If no updateMask is specified, requires products.create permission.
+ // If updateMask is specified, requires products.update permission.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *ProductInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Indicates which fields in the provided imported 'products' to update. If
+ // not set, will by default update all fields.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *ImportProductsRequest) Reset() {
+ *x = ImportProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsRequest) ProtoMessage() {}
+
+func (x *ImportProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsRequest.ProtoReflect.Descriptor instead.
+func (*ImportProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ImportProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportProductsRequest) GetInputConfig() *ProductInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportProductsRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for the ImportUserEvents request.
+type ImportUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. "projects/1234/locations/global/catalogs/default_catalog"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The desired input location of the data.
+ InputConfig *UserEventInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
+ // The desired location of errors incurred during the Import.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,3,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportUserEventsRequest) Reset() {
+ *x = ImportUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsRequest) ProtoMessage() {}
+
+func (x *ImportUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *ImportUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ImportUserEventsRequest) GetInputConfig() *UserEventInputConfig {
+ if x != nil {
+ return x.InputConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsRequest) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// The input config source for products.
+type ProductInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *ProductInputConfig_ProductInlineSource
+ // *ProductInputConfig_GcsSource
+ // *ProductInputConfig_BigQuerySource
+ Source isProductInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *ProductInputConfig) Reset() {
+ *x = ProductInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductInputConfig) ProtoMessage() {}
+
+func (x *ProductInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductInputConfig.ProtoReflect.Descriptor instead.
+func (*ProductInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{7}
+}
+
+func (m *ProductInputConfig) GetSource() isProductInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetProductInlineSource() *ProductInlineSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_ProductInlineSource); ok {
+ return x.ProductInlineSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*ProductInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *ProductInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*ProductInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isProductInputConfig_Source interface {
+ isProductInputConfig_Source()
+}
+
+type ProductInputConfig_ProductInlineSource struct {
+ // The Inline source for the input content for products.
+ ProductInlineSource *ProductInlineSource `protobuf:"bytes,1,opt,name=product_inline_source,json=productInlineSource,proto3,oneof"`
+}
+
+type ProductInputConfig_GcsSource struct {
+ // Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type ProductInputConfig_BigQuerySource struct {
+ // BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*ProductInputConfig_ProductInlineSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_GcsSource) isProductInputConfig_Source() {}
+
+func (*ProductInputConfig_BigQuerySource) isProductInputConfig_Source() {}
+
+// The input config source for user events.
+type UserEventInputConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The source of the input.
+ //
+ // Types that are assignable to Source:
+ // *UserEventInputConfig_UserEventInlineSource
+ // *UserEventInputConfig_GcsSource
+ // *UserEventInputConfig_BigQuerySource
+ Source isUserEventInputConfig_Source `protobuf_oneof:"source"`
+}
+
+func (x *UserEventInputConfig) Reset() {
+ *x = UserEventInputConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventInputConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventInputConfig) ProtoMessage() {}
+
+func (x *UserEventInputConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventInputConfig.ProtoReflect.Descriptor instead.
+func (*UserEventInputConfig) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{8}
+}
+
+func (m *UserEventInputConfig) GetSource() isUserEventInputConfig_Source {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetUserEventInlineSource() *UserEventInlineSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_UserEventInlineSource); ok {
+ return x.UserEventInlineSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetGcsSource() *GcsSource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_GcsSource); ok {
+ return x.GcsSource
+ }
+ return nil
+}
+
+func (x *UserEventInputConfig) GetBigQuerySource() *BigQuerySource {
+ if x, ok := x.GetSource().(*UserEventInputConfig_BigQuerySource); ok {
+ return x.BigQuerySource
+ }
+ return nil
+}
+
+type isUserEventInputConfig_Source interface {
+ isUserEventInputConfig_Source()
+}
+
+type UserEventInputConfig_UserEventInlineSource struct {
+ // Required. The Inline source for the input content for UserEvents.
+ UserEventInlineSource *UserEventInlineSource `protobuf:"bytes,1,opt,name=user_event_inline_source,json=userEventInlineSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_GcsSource struct {
+ // Required. Google Cloud Storage location for the input content.
+ GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
+}
+
+type UserEventInputConfig_BigQuerySource struct {
+ // Required. BigQuery input source.
+ BigQuerySource *BigQuerySource `protobuf:"bytes,3,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"`
+}
+
+func (*UserEventInputConfig_UserEventInlineSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_GcsSource) isUserEventInputConfig_Source() {}
+
+func (*UserEventInputConfig_BigQuerySource) isUserEventInputConfig_Source() {}
+
+// Metadata related to the progress of the Import operation. This will be
+// returned by the google.longrunning.Operation.metadata field.
+type ImportMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Name of the operation.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Operation last update time. If the operation is done, this is also the
+ // finish time.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+ // Count of entries that were processed successfully.
+ SuccessCount int64 `protobuf:"varint,4,opt,name=success_count,json=successCount,proto3" json:"success_count,omitempty"`
+ // Count of entries that encountered errors while processing.
+ FailureCount int64 `protobuf:"varint,5,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"`
+}
+
+func (x *ImportMetadata) Reset() {
+ *x = ImportMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportMetadata) ProtoMessage() {}
+
+func (x *ImportMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportMetadata.ProtoReflect.Descriptor instead.
+func (*ImportMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ImportMetadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ImportMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+func (x *ImportMetadata) GetSuccessCount() int64 {
+ if x != nil {
+ return x.SuccessCount
+ }
+ return 0
+}
+
+func (x *ImportMetadata) GetFailureCount() int64 {
+ if x != nil {
+ return x.FailureCount
+ }
+ return 0
+}
+
+// Response of the
+// [ImportProductsRequest][google.cloud.retail.v2beta.ImportProductsRequest]. If
+// the long running operation is done, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors in the request if set.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+}
+
+func (x *ImportProductsResponse) Reset() {
+ *x = ImportProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportProductsResponse) ProtoMessage() {}
+
+func (x *ImportProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportProductsResponse.ProtoReflect.Descriptor instead.
+func (*ImportProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *ImportProductsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportProductsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+// Response of the ImportUserEventsRequest. If the long running
+// operation was successful, then this message is returned by the
+// google.longrunning.Operations.response field if the operation was successful.
+type ImportUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A sample of errors encountered while processing the request.
+ ErrorSamples []*status.Status `protobuf:"bytes,1,rep,name=error_samples,json=errorSamples,proto3" json:"error_samples,omitempty"`
+ // Echoes the destination for the complete errors if this field was set in
+ // the request.
+ ErrorsConfig *ImportErrorsConfig `protobuf:"bytes,2,opt,name=errors_config,json=errorsConfig,proto3" json:"errors_config,omitempty"`
+ // Aggregated statistics of user event import status.
+ ImportSummary *UserEventImportSummary `protobuf:"bytes,3,opt,name=import_summary,json=importSummary,proto3" json:"import_summary,omitempty"`
+}
+
+func (x *ImportUserEventsResponse) Reset() {
+ *x = ImportUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImportUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImportUserEventsResponse) ProtoMessage() {}
+
+func (x *ImportUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImportUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*ImportUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *ImportUserEventsResponse) GetErrorSamples() []*status.Status {
+ if x != nil {
+ return x.ErrorSamples
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetErrorsConfig() *ImportErrorsConfig {
+ if x != nil {
+ return x.ErrorsConfig
+ }
+ return nil
+}
+
+func (x *ImportUserEventsResponse) GetImportSummary() *UserEventImportSummary {
+ if x != nil {
+ return x.ImportSummary
+ }
+ return nil
+}
+
+// A summary of import result. The UserEventImportSummary summarizes
+// the import status for user events.
+type UserEventImportSummary struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Count of user events imported with complete existing catalog information.
+ JoinedEventsCount int64 `protobuf:"varint,1,opt,name=joined_events_count,json=joinedEventsCount,proto3" json:"joined_events_count,omitempty"`
+ // Count of user events imported, but with catalog information not found
+ // in the imported catalog.
+ UnjoinedEventsCount int64 `protobuf:"varint,2,opt,name=unjoined_events_count,json=unjoinedEventsCount,proto3" json:"unjoined_events_count,omitempty"`
+}
+
+func (x *UserEventImportSummary) Reset() {
+ *x = UserEventImportSummary{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEventImportSummary) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEventImportSummary) ProtoMessage() {}
+
+func (x *UserEventImportSummary) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_import_config_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEventImportSummary.ProtoReflect.Descriptor instead.
+func (*UserEventImportSummary) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UserEventImportSummary) GetJoinedEventsCount() int64 {
+ if x != nil {
+ return x.JoinedEventsCount
+ }
+ return 0
+}
+
+func (x *UserEventImportSummary) GetUnjoinedEventsCount() int64 {
+ if x != nil {
+ return x.UnjoinedEventsCount
+ }
+ return 0
+}
+
+var File_google_cloud_retail_v2beta_import_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_import_config_proto_rawDesc = []byte{
+ 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x69, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 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, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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,
+ 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x09, 0x47, 0x63, 0x73,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
+ 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61,
+ 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0xbc, 0x01, 0x0a, 0x0e,
+ 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a,
+ 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49,
+ 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49,
+ 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67,
+ 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x53,
+ 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74,
+ 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x56, 0x0a, 0x13, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49,
+ 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0a, 0x67, 0x63, 0x73,
+ 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
+ 0x09, 0x67, 0x63, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65,
+ 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x02, 0x0a, 0x15, 0x49, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x12, 0x56, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70,
+ 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
+ 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a,
+ 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a,
+ 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xe5, 0x01, 0x0a, 0x17, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, 0x0a,
+ 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x22, 0xa5, 0x02, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e,
+ 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x15, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c,
+ 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x12, 0x46, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67,
+ 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e,
+ 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00,
+ 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x14, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x12, 0x71, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69,
+ 0x6e, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52,
+ 0x15, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00,
+ 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b,
+ 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x52,
+ 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73,
+ 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
+ 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3c, 0xea, 0x41, 0x39, 0x0a, 0x1f, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x6f, 0x70, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x7d, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37,
+ 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
+ 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x83, 0x02, 0x0a,
+ 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6f, 0x72,
+ 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d,
+ 0x61, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61,
+ 0x72, 0x79, 0x22, 0x7c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13,
+ 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6a, 0x6f, 0x69, 0x6e, 0x65,
+ 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15,
+ 0x75, 0x6e, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x6a,
+ 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x42, 0xda, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x42, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54,
+ 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_import_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_import_config_proto_rawDescData = file_google_cloud_retail_v2beta_import_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_import_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_import_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_import_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_import_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_import_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_import_config_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_google_cloud_retail_v2beta_import_config_proto_goTypes = []interface{}{
+ (*GcsSource)(nil), // 0: google.cloud.retail.v2beta.GcsSource
+ (*BigQuerySource)(nil), // 1: google.cloud.retail.v2beta.BigQuerySource
+ (*ProductInlineSource)(nil), // 2: google.cloud.retail.v2beta.ProductInlineSource
+ (*UserEventInlineSource)(nil), // 3: google.cloud.retail.v2beta.UserEventInlineSource
+ (*ImportErrorsConfig)(nil), // 4: google.cloud.retail.v2beta.ImportErrorsConfig
+ (*ImportProductsRequest)(nil), // 5: google.cloud.retail.v2beta.ImportProductsRequest
+ (*ImportUserEventsRequest)(nil), // 6: google.cloud.retail.v2beta.ImportUserEventsRequest
+ (*ProductInputConfig)(nil), // 7: google.cloud.retail.v2beta.ProductInputConfig
+ (*UserEventInputConfig)(nil), // 8: google.cloud.retail.v2beta.UserEventInputConfig
+ (*ImportMetadata)(nil), // 9: google.cloud.retail.v2beta.ImportMetadata
+ (*ImportProductsResponse)(nil), // 10: google.cloud.retail.v2beta.ImportProductsResponse
+ (*ImportUserEventsResponse)(nil), // 11: google.cloud.retail.v2beta.ImportUserEventsResponse
+ (*UserEventImportSummary)(nil), // 12: google.cloud.retail.v2beta.UserEventImportSummary
+ (*Product)(nil), // 13: google.cloud.retail.v2beta.Product
+ (*UserEvent)(nil), // 14: google.cloud.retail.v2beta.UserEvent
+ (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask
+ (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
+ (*status.Status)(nil), // 17: google.rpc.Status
+}
+var file_google_cloud_retail_v2beta_import_config_proto_depIdxs = []int32{
+ 13, // 0: google.cloud.retail.v2beta.ProductInlineSource.products:type_name -> google.cloud.retail.v2beta.Product
+ 14, // 1: google.cloud.retail.v2beta.UserEventInlineSource.user_events:type_name -> google.cloud.retail.v2beta.UserEvent
+ 7, // 2: google.cloud.retail.v2beta.ImportProductsRequest.input_config:type_name -> google.cloud.retail.v2beta.ProductInputConfig
+ 4, // 3: google.cloud.retail.v2beta.ImportProductsRequest.errors_config:type_name -> google.cloud.retail.v2beta.ImportErrorsConfig
+ 15, // 4: google.cloud.retail.v2beta.ImportProductsRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 8, // 5: google.cloud.retail.v2beta.ImportUserEventsRequest.input_config:type_name -> google.cloud.retail.v2beta.UserEventInputConfig
+ 4, // 6: google.cloud.retail.v2beta.ImportUserEventsRequest.errors_config:type_name -> google.cloud.retail.v2beta.ImportErrorsConfig
+ 2, // 7: google.cloud.retail.v2beta.ProductInputConfig.product_inline_source:type_name -> google.cloud.retail.v2beta.ProductInlineSource
+ 0, // 8: google.cloud.retail.v2beta.ProductInputConfig.gcs_source:type_name -> google.cloud.retail.v2beta.GcsSource
+ 1, // 9: google.cloud.retail.v2beta.ProductInputConfig.big_query_source:type_name -> google.cloud.retail.v2beta.BigQuerySource
+ 3, // 10: google.cloud.retail.v2beta.UserEventInputConfig.user_event_inline_source:type_name -> google.cloud.retail.v2beta.UserEventInlineSource
+ 0, // 11: google.cloud.retail.v2beta.UserEventInputConfig.gcs_source:type_name -> google.cloud.retail.v2beta.GcsSource
+ 1, // 12: google.cloud.retail.v2beta.UserEventInputConfig.big_query_source:type_name -> google.cloud.retail.v2beta.BigQuerySource
+ 16, // 13: google.cloud.retail.v2beta.ImportMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 16, // 14: google.cloud.retail.v2beta.ImportMetadata.update_time:type_name -> google.protobuf.Timestamp
+ 17, // 15: google.cloud.retail.v2beta.ImportProductsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 16: google.cloud.retail.v2beta.ImportProductsResponse.errors_config:type_name -> google.cloud.retail.v2beta.ImportErrorsConfig
+ 17, // 17: google.cloud.retail.v2beta.ImportUserEventsResponse.error_samples:type_name -> google.rpc.Status
+ 4, // 18: google.cloud.retail.v2beta.ImportUserEventsResponse.errors_config:type_name -> google.cloud.retail.v2beta.ImportErrorsConfig
+ 12, // 19: google.cloud.retail.v2beta.ImportUserEventsResponse.import_summary:type_name -> google.cloud.retail.v2beta.UserEventImportSummary
+ 20, // [20:20] is the sub-list for method output_type
+ 20, // [20:20] is the sub-list for method input_type
+ 20, // [20:20] is the sub-list for extension type_name
+ 20, // [20:20] is the sub-list for extension extendee
+ 0, // [0:20] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_import_config_proto_init() }
+func file_google_cloud_retail_v2beta_import_config_proto_init() {
+ if File_google_cloud_retail_v2beta_import_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_product_proto_init()
+ file_google_cloud_retail_v2beta_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GcsSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BigQuerySource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInlineSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportErrorsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventInputConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImportUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEventImportSummary); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*ImportErrorsConfig_GcsPrefix)(nil),
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[7].OneofWrappers = []interface{}{
+ (*ProductInputConfig_ProductInlineSource)(nil),
+ (*ProductInputConfig_GcsSource)(nil),
+ (*ProductInputConfig_BigQuerySource)(nil),
+ }
+ file_google_cloud_retail_v2beta_import_config_proto_msgTypes[8].OneofWrappers = []interface{}{
+ (*UserEventInputConfig_UserEventInlineSource)(nil),
+ (*UserEventInputConfig_GcsSource)(nil),
+ (*UserEventInputConfig_BigQuerySource)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_import_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 13,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_import_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_import_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_import_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_import_config_proto = out.File
+ file_google_cloud_retail_v2beta_import_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_import_config_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_import_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/prediction_service.pb.go b/googleapis/cloud/retail/v2beta/prediction_service.pb.go
new file mode 100644
index 000000000..9f165b787
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/prediction_service.pb.go
@@ -0,0 +1,691 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/prediction_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for Predict method.
+type PredictRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of the format:
+ // {name=projects/*/locations/global/catalogs/default_catalog/placements/*}
+ // The id of the recommendation engine placement. This id is used to identify
+ // the set of models that will be used to make the prediction.
+ //
+ // We currently support three placements with the following IDs by default:
+ //
+ // * `shopping_cart`: Predicts products frequently bought together with one or
+ // more products in the same shopping session. Commonly displayed after
+ // `add-to-cart` events, on product detail pages, or on the shopping cart
+ // page.
+ //
+ // * `home_page`: Predicts the next product that a user will most likely
+ // engage with or purchase based on the shopping or viewing history of the
+ // specified `userId` or `visitorId`. For example - Recommendations for you.
+ //
+ // * `product_detail`: Predicts the next product that a user will most likely
+ // engage with or purchase. The prediction is based on the shopping or
+ // viewing history of the specified `userId` or `visitorId` and its
+ // relevance to a specified `CatalogItem`. Typically used on product detail
+ // pages. For example - More products like this.
+ //
+ // * `recently_viewed_default`: Returns up to 75 products recently viewed by
+ // the
+ // specified `userId` or `visitorId`, most recent ones first. Returns
+ // nothing if neither of them has viewed any products yet. For example -
+ // Recently viewed.
+ //
+ // The full list of available placements can be seen at
+ //
+ // https:
+ // //console.cloud.google.com/recommendatio
+ // // n/datafeeds/default_catalog/dashboard
+ Placement string `protobuf:"bytes,1,opt,name=placement,proto3" json:"placement,omitempty"`
+ // Required. Context about the user, what they are looking at and what action
+ // they took to trigger the predict request. Note that this user event detail
+ // won't be ingested to userEvent logs. Thus, a separate userEvent write
+ // request is required for event logging.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // Maximum number of results to return per page. Set this property
+ // to the number of prediction results needed. If zero, the service will
+ // choose a reasonable default.
+ PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // The previous PredictResponse.next_page_token.
+ PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // Filter for restricting prediction results. Accepts values for
+ // tags and the `filterOutOfStockItems` flag.
+ //
+ // * Tag expressions. Restricts predictions to products that match all of the
+ // specified tags. Boolean operators `OR` and `NOT` are supported if the
+ // expression is enclosed in parentheses, and must be separated from the
+ // tag values by a space. `-"tagA"` is also supported and is equivalent to
+ // `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded strings
+ // with a size limit of 1 KiB.
+ //
+ // * filterOutOfStockItems. Restricts predictions to products that do not
+ // have a
+ // stockState value of OUT_OF_STOCK.
+ //
+ // Examples:
+ //
+ // * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
+ // * filterOutOfStockItems tag=(-"promotional")
+ // * filterOutOfStockItems
+ //
+ // If your filter blocks all prediction results, nothing will be returned. If
+ // you want generic (unfiltered) popular products to be returned instead, set
+ // `strictFiltering` to false in `PredictRequest.params`.
+ Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
+ // Use validate only mode for this prediction query. If set to true, a
+ // dummy model will be used that returns arbitrary products.
+ // Note that the validate only mode should only be used for testing the API,
+ // or if the model is not ready.
+ ValidateOnly bool `protobuf:"varint,6,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+ // Additional domain specific parameters for the predictions.
+ //
+ // Allowed values:
+ //
+ // * `returnProduct`: Boolean. If set to true, the associated product
+ // object will be returned in the
+ // `PredictResponse.PredictionResult.productMetadata` object in the method
+ // response.
+ // * `returnScore`: Boolean. If set to true, the prediction 'score'
+ // corresponding to each returned product will be set in the `metadata`
+ // field in the prediction response. The given 'score' indicates the
+ // probability of an product being clicked/purchased given the user's
+ // context and history.
+ // * `strictFiltering`: Boolean. True by default. If set to false, the service
+ // will return generic (unfiltered) popular products instead of empty if
+ // your filter blocks all prediction results.
+ Params map[string]*structpb.Value `protobuf:"bytes,7,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The labels for the predict request.
+ //
+ // * Label keys can contain lowercase letters, digits and hyphens, must start
+ // with a letter, and must end with a letter or digit.
+ // * Non-zero label values can contain lowercase letters, digits and hyphens,
+ // must start with a letter, and must end with a letter or digit.
+ // * No more than 64 labels can be associated with a given request.
+ //
+ // See https://goo.gl/xmQnxf for more information on and examples of labels.
+ Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictRequest) Reset() {
+ *x = PredictRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictRequest) ProtoMessage() {}
+
+func (x *PredictRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictRequest.ProtoReflect.Descriptor instead.
+func (*PredictRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_prediction_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PredictRequest) GetPlacement() string {
+ if x != nil {
+ return x.Placement
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *PredictRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PredictRequest) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+func (x *PredictRequest) GetParams() map[string]*structpb.Value {
+ if x != nil {
+ return x.Params
+ }
+ return nil
+}
+
+func (x *PredictRequest) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+// Response message for predict method.
+type PredictResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A list of recommended products. The order represents the ranking (from the
+ // most relevant product to the least).
+ Results []*PredictResponse_PredictionResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ // A unique attribution token. This should be included in the
+ // [UserEvent][google.cloud.retail.v2beta.UserEvent] logs resulting from this
+ // recommendation, which enables accurate attribution of recommendation model
+ // performance.
+ AttributionToken string `protobuf:"bytes,2,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // IDs of products in the request that were missing from the inventory.
+ MissingIds []string `protobuf:"bytes,3,rep,name=missing_ids,json=missingIds,proto3" json:"missing_ids,omitempty"`
+ // True if the validateOnly property was set in the request.
+ ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
+}
+
+func (x *PredictResponse) Reset() {
+ *x = PredictResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse) ProtoMessage() {}
+
+func (x *PredictResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse.ProtoReflect.Descriptor instead.
+func (*PredictResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_prediction_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PredictResponse) GetResults() []*PredictResponse_PredictionResult {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *PredictResponse) GetMissingIds() []string {
+ if x != nil {
+ return x.MissingIds
+ }
+ return nil
+}
+
+func (x *PredictResponse) GetValidateOnly() bool {
+ if x != nil {
+ return x.ValidateOnly
+ }
+ return false
+}
+
+// PredictionResult represents the recommendation prediction results.
+type PredictResponse_PredictionResult struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // ID of the recommended product
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Additional product metadata / annotations.
+ //
+ // Possible values:
+ //
+ // * `product`: JSON representation of the product. Will be set if
+ // `returnProduct` is set to true in `PredictRequest.params`.
+ // * `score`: Prediction score in double value. Will be set if
+ // `returnScore` is set to true in `PredictRequest.params`.
+ Metadata map[string]*structpb.Value `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *PredictResponse_PredictionResult) Reset() {
+ *x = PredictResponse_PredictionResult{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PredictResponse_PredictionResult) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredictResponse_PredictionResult) ProtoMessage() {}
+
+func (x *PredictResponse_PredictionResult) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredictResponse_PredictionResult.ProtoReflect.Descriptor instead.
+func (*PredictResponse_PredictionResult) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_prediction_service_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *PredictResponse_PredictionResult) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PredictResponse_PredictionResult) GetMetadata() map[string]*structpb.Value {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2beta_prediction_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_prediction_service_proto_rawDesc = []byte{
+ 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x65,
+ 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 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, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x04, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
+ 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x75, 0x73,
+ 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
+ 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x4e,
+ 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64,
+ 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4e,
+ 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64,
+ 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x51,
+ 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 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,
+ 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 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, 0xbe, 0x03, 0x0a,
+ 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x56, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50,
+ 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50,
+ 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
+ 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
+ 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73,
+ 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0xdf, 0x01, 0x0a, 0x10,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x66, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+ 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x53, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61,
+ 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x9a, 0x02,
+ 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12,
+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65,
+ 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f,
+ 0x22, 0x4a, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x6c, 0x61, 0x63, 0x65,
+ 0x6d, 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, 0x63, 0x61, 0x74, 0x61,
+ 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0x1a,
+ 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xdf, 0x01, 0x0a, 0x1e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42, 0x16, 0x50,
+ 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41,
+ 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca,
+ 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_prediction_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_prediction_service_proto_rawDescData = file_google_cloud_retail_v2beta_prediction_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_prediction_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_prediction_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_prediction_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_prediction_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_prediction_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_google_cloud_retail_v2beta_prediction_service_proto_goTypes = []interface{}{
+ (*PredictRequest)(nil), // 0: google.cloud.retail.v2beta.PredictRequest
+ (*PredictResponse)(nil), // 1: google.cloud.retail.v2beta.PredictResponse
+ nil, // 2: google.cloud.retail.v2beta.PredictRequest.ParamsEntry
+ nil, // 3: google.cloud.retail.v2beta.PredictRequest.LabelsEntry
+ (*PredictResponse_PredictionResult)(nil), // 4: google.cloud.retail.v2beta.PredictResponse.PredictionResult
+ nil, // 5: google.cloud.retail.v2beta.PredictResponse.PredictionResult.MetadataEntry
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2beta.UserEvent
+ (*structpb.Value)(nil), // 7: google.protobuf.Value
+}
+var file_google_cloud_retail_v2beta_prediction_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2beta.PredictRequest.user_event:type_name -> google.cloud.retail.v2beta.UserEvent
+ 2, // 1: google.cloud.retail.v2beta.PredictRequest.params:type_name -> google.cloud.retail.v2beta.PredictRequest.ParamsEntry
+ 3, // 2: google.cloud.retail.v2beta.PredictRequest.labels:type_name -> google.cloud.retail.v2beta.PredictRequest.LabelsEntry
+ 4, // 3: google.cloud.retail.v2beta.PredictResponse.results:type_name -> google.cloud.retail.v2beta.PredictResponse.PredictionResult
+ 7, // 4: google.cloud.retail.v2beta.PredictRequest.ParamsEntry.value:type_name -> google.protobuf.Value
+ 5, // 5: google.cloud.retail.v2beta.PredictResponse.PredictionResult.metadata:type_name -> google.cloud.retail.v2beta.PredictResponse.PredictionResult.MetadataEntry
+ 7, // 6: google.cloud.retail.v2beta.PredictResponse.PredictionResult.MetadataEntry.value:type_name -> google.protobuf.Value
+ 0, // 7: google.cloud.retail.v2beta.PredictionService.Predict:input_type -> google.cloud.retail.v2beta.PredictRequest
+ 1, // 8: google.cloud.retail.v2beta.PredictionService.Predict:output_type -> google.cloud.retail.v2beta.PredictResponse
+ 8, // [8:9] is the sub-list for method output_type
+ 7, // [7:8] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_prediction_service_proto_init() }
+func file_google_cloud_retail_v2beta_prediction_service_proto_init() {
+ if File_google_cloud_retail_v2beta_prediction_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PredictResponse_PredictionResult); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_prediction_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_prediction_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_prediction_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_prediction_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_prediction_service_proto = out.File
+ file_google_cloud_retail_v2beta_prediction_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_prediction_service_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_prediction_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// PredictionServiceClient is the client API for PredictionService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type PredictionServiceClient interface {
+ // Makes a recommendation prediction.
+ Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error)
+}
+
+type predictionServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewPredictionServiceClient(cc grpc.ClientConnInterface) PredictionServiceClient {
+ return &predictionServiceClient{cc}
+}
+
+func (c *predictionServiceClient) Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error) {
+ out := new(PredictResponse)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.PredictionService/Predict", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// PredictionServiceServer is the server API for PredictionService service.
+type PredictionServiceServer interface {
+ // Makes a recommendation prediction.
+ Predict(context.Context, *PredictRequest) (*PredictResponse, error)
+}
+
+// UnimplementedPredictionServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedPredictionServiceServer struct {
+}
+
+func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRequest) (*PredictResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Predict not implemented")
+}
+
+func RegisterPredictionServiceServer(s *grpc.Server, srv PredictionServiceServer) {
+ s.RegisterService(&_PredictionService_serviceDesc, srv)
+}
+
+func _PredictionService_Predict_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PredictRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PredictionServiceServer).Predict(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.PredictionService/Predict",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PredictionServiceServer).Predict(ctx, req.(*PredictRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _PredictionService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2beta.PredictionService",
+ HandlerType: (*PredictionServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Predict",
+ Handler: _PredictionService_Predict_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2beta/prediction_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2beta/product.pb.go b/googleapis/cloud/retail/v2beta/product.pb.go
new file mode 100644
index 000000000..ae4caad78
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/product.pb.go
@@ -0,0 +1,666 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/product.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/known/durationpb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Product availability. If this field is unspecified, the product is
+// assumed to be in stock.
+type Product_Availability int32
+
+const (
+ // Default product availability. Default to
+ // [Availability.IN_STOCK][google.cloud.retail.v2beta.Product.Availability.IN_STOCK]
+ // if unset.
+ Product_AVAILABILITY_UNSPECIFIED Product_Availability = 0
+ // Product in stock.
+ Product_IN_STOCK Product_Availability = 1
+ // Product out of stock.
+ Product_OUT_OF_STOCK Product_Availability = 2
+ // Product that is in pre-order state.
+ Product_PREORDER Product_Availability = 3
+ // Product that is back-ordered (i.e. temporarily out of stock).
+ Product_BACKORDER Product_Availability = 4
+)
+
+// Enum value maps for Product_Availability.
+var (
+ Product_Availability_name = map[int32]string{
+ 0: "AVAILABILITY_UNSPECIFIED",
+ 1: "IN_STOCK",
+ 2: "OUT_OF_STOCK",
+ 3: "PREORDER",
+ 4: "BACKORDER",
+ }
+ Product_Availability_value = map[string]int32{
+ "AVAILABILITY_UNSPECIFIED": 0,
+ "IN_STOCK": 1,
+ "OUT_OF_STOCK": 2,
+ "PREORDER": 3,
+ "BACKORDER": 4,
+ }
+)
+
+func (x Product_Availability) Enum() *Product_Availability {
+ p := new(Product_Availability)
+ *p = x
+ return p
+}
+
+func (x Product_Availability) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Product_Availability) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2beta_product_proto_enumTypes[0].Descriptor()
+}
+
+func (Product_Availability) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2beta_product_proto_enumTypes[0]
+}
+
+func (x Product_Availability) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Product_Availability.Descriptor instead.
+func (Product_Availability) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_proto_rawDescGZIP(), []int{0, 0}
+}
+
+// Product captures all metadata information of items to be recommended or
+// searched.
+type Product struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Immutable. Full resource name of the product, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id".
+ //
+ // The branch ID must be "default_branch".
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Immutable. [Product][google.cloud.retail.v2beta.Product] identifier, which
+ // is the final component of [name][google.cloud.retail.v2beta.Product.name].
+ // For example, this field is "id_1", if
+ // [name][google.cloud.retail.v2beta.Product.name] is
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1".
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [id](https://support.google.com/merchants/answer/6324405).
+ // schema.org Property [Product.sku](https://schema.org/sku).
+ Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+ // Variant group identifier. Must be an
+ // [id][google.cloud.retail.v2beta.Product.id], with the same parent branch
+ // with this product. Otherwise, an error is thrown.
+ //
+ // The primary product may be empty during the creation, but cannot be updated
+ // from a non-empty string to an empty one. Otherwise an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // Should only be set for [Type.VARIANT][]
+ // [Product][google.cloud.retail.v2beta.Product]s. A maximum of 1000 products
+ // are allowed to share the same [Type.PRIMARY][]
+ // [Product][google.cloud.retail.v2beta.Product]. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center Property
+ // [item_group_id](https://support.google.com/merchants/answer/6324507).
+ // schema.org Property
+ // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
+ //
+ // This field must be enabled before it can be used. [Learn
+ // more](/recommendations-ai/docs/catalog#item-group-id).
+ PrimaryProductId string `protobuf:"bytes,4,opt,name=primary_product_id,json=primaryProductId,proto3" json:"primary_product_id,omitempty"`
+ // Required. Product categories. This field is repeated for supporting one
+ // product belonging to several parallel categories. Each value is either the
+ // full path of the category, or the [category
+ //
+ // ID](https:
+ // //www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt).
+ // Strongly recommended using the full path for better search / recommendation
+ // quality.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // For example, if a shoes product belongs to both
+ // ["Shoes & Accessories" -> "Shoes"] and
+ // ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be
+ // represented as:
+ //
+ // "categories": [
+ // "Shoes & Accessories > Shoes",
+ // "Sports & Fitness > Athletic Clothing > Shoes"
+ // ]
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2beta.Product]. Empty values are not
+ // allowed. Each value must be a UTF-8 encoded string with a length limit of 5
+ // KiB. Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ //
+ // [google_product_category](https:
+ // //support.google.com/merchants/answer/6324436).
+ // Schema.org property [Product.category] (https://schema.org/category).
+ Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"`
+ // Required. Product title.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [title](https://support.google.com/merchants/answer/6324415). Schema.org
+ // property [Product.name](https://schema.org/name).
+ Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
+ // Product description.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [description](https://support.google.com/merchants/answer/6324468).
+ // schema.org property [Product.description](https://schema.org/description).
+ Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
+ // Language of the title/description and other string attributes. Use language
+ // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt].
+ //
+ // The model automatically detects the text language. The
+ // [Product][google.cloud.retail.v2beta.Product] can include text in different
+ // languages, but duplicating [Product][google.cloud.retail.v2beta.Product]s
+ // to provide text in multiple languages can result in degraded model
+ // performance.
+ //
+ // Currently, recommendation supports all language codes, while the only
+ // supported language code for search is "en-US".
+ LanguageCode string `protobuf:"bytes,11,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
+ // Highly encouraged. Extra product attributes to be included. For example,
+ // for products, this could include the store name, vendor, style, color, etc.
+ // These are very strong signals for recommendation model, thus we highly
+ // recommend providing the attributes here.
+ //
+ // Features that can take on one of a limited number of possible values. Two
+ // types of features can be set are:
+ //
+ // Textual features. some examples would be the brand/maker of a product, or
+ // country of a customer. Numerical features. Some examples would be the
+ // height/weight of a product, or age of a customer.
+ //
+ // For example: { "vendor": {"text": ["vendor123", "vendor456"]},
+ // "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]}
+ // }.
+ //
+ // A maximum of 150 attributes are allowed. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,12,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Custom tags associated with the product.
+ //
+ // At most 250 values are allowed per
+ // [Product][google.cloud.retail.v2beta.Product]. This value must be a UTF-8
+ // encoded string with a length limit of 1 KiB. Otherwise, an INVALID_ARGUMENT
+ // error is returned.
+ //
+ // This tag can be used for filtering recommendation results by passing the
+ // tag as part of the
+ // [PredictRequest.filter][google.cloud.retail.v2beta.PredictRequest.filter].
+ //
+ // Google Merchant Center property
+ // [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+ Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"`
+ // Product price and cost information.
+ //
+ // Google Merchant Center property
+ // [price](https://support.google.com/merchants/answer/6324371).
+ PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"`
+ // The timestamp when this [Product][google.cloud.retail.v2beta.Product]
+ // becomes available recommendation and search.
+ AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"`
+ // The online availability of the
+ // [Product][google.cloud.retail.v2beta.Product], which is parallel to and
+ // independent of [fulfillment_info][]. Default is
+ // [Availability.IN_STOCK][google.cloud.retail.v2beta.Product.Availability.IN_STOCK].
+ //
+ // Google Merchant Center Property
+ // [availability](https://support.google.com/merchants/answer/6324448).
+ // schema.org Property [Offer.availability](https://schema.org/availability).
+ Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2beta.Product_Availability" json:"availability,omitempty"`
+ // The available quantity of the item.
+ AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
+ // Canonical URL directly linking to the product detail page.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Google Merchant Center property
+ // [link](https://support.google.com/merchants/answer/6324416).
+ // Schema.org property [Offer.url](https://schema.org/url).
+ Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"`
+ // Product images for the product.
+ //
+ // Google Merchant Center property
+ // [image_link](https://support.google.com/merchants/answer/6324350).
+ // Schema.org property [Product.image](https://schema.org/image).
+ Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"`
+ // Indicates which fields in the [variants][] are retrievable in [Search][].
+ // If not set or empty, the following fields are returned:
+ //
+ // * [name][google.cloud.retail.v2beta.Product.name]
+ // * [availability][google.cloud.retail.v2beta.Product.availability]
+ // * [color_info][]
+ //
+ // Supported fields:
+ //
+ // * [name][google.cloud.retail.v2beta.Product.name]
+ // * [availability][google.cloud.retail.v2beta.Product.availability]
+ // * [color_info][]
+ // * [gtin][]
+ // * [price_info][google.cloud.retail.v2beta.Product.price_info]
+ // * [sizes][]
+ // * [materials][]
+ // * [patterns][]
+ // * [conditions][]
+ // * [images][google.cloud.retail.v2beta.Product.images]
+ // * [attributes][google.cloud.retail.v2beta.Product.attributes]
+ //
+ // To mark custom attributes as retrievable, include paths of the form
+ // "attributes.key" where "key" is the key of a custom attribute, as
+ // specified in [attributes][google.cloud.retail.v2beta.Product.attributes].
+ //
+ // Maximum number of paths is 10. Otherwise, an INVALID_ARGUMENT error is
+ // returned.
+ StockingUnitRetrievableFields *fieldmaskpb.FieldMask `protobuf:"bytes,30,opt,name=stocking_unit_retrievable_fields,json=stockingUnitRetrievableFields,proto3" json:"stocking_unit_retrievable_fields,omitempty"`
+}
+
+func (x *Product) Reset() {
+ *x = Product{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_product_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Product) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Product) ProtoMessage() {}
+
+func (x *Product) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_product_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Product.ProtoReflect.Descriptor instead.
+func (*Product) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Product) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Product) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *Product) GetPrimaryProductId() string {
+ if x != nil {
+ return x.PrimaryProductId
+ }
+ return ""
+}
+
+func (x *Product) GetCategories() []string {
+ if x != nil {
+ return x.Categories
+ }
+ return nil
+}
+
+func (x *Product) GetTitle() string {
+ if x != nil {
+ return x.Title
+ }
+ return ""
+}
+
+func (x *Product) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Product) GetLanguageCode() string {
+ if x != nil {
+ return x.LanguageCode
+ }
+ return ""
+}
+
+func (x *Product) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *Product) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *Product) GetPriceInfo() *PriceInfo {
+ if x != nil {
+ return x.PriceInfo
+ }
+ return nil
+}
+
+func (x *Product) GetAvailableTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.AvailableTime
+ }
+ return nil
+}
+
+func (x *Product) GetAvailability() Product_Availability {
+ if x != nil {
+ return x.Availability
+ }
+ return Product_AVAILABILITY_UNSPECIFIED
+}
+
+func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.AvailableQuantity
+ }
+ return nil
+}
+
+func (x *Product) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *Product) GetImages() []*Image {
+ if x != nil {
+ return x.Images
+ }
+ return nil
+}
+
+func (x *Product) GetStockingUnitRetrievableFields() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.StockingUnitRetrievableFields
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2beta_product_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_product_proto_rawDesc = []byte{
+ 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x1a, 0x1e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
+ 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x09, 0x0a,
+ 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69,
+ 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63,
+ 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74,
+ 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
+ 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c,
+ 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x61,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e,
+ 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0e, 0x61, 0x76,
+ 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 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, 0x52, 0x0d,
+ 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a,
+ 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
+ 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
+ 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
+ 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x76,
+ 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
+ 0x69, 0x12, 0x39, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x20,
+ 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x72, 0x65,
+ 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73,
+ 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61,
+ 0x73, 0x6b, 0x52, 0x1d, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74,
+ 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64,
+ 0x73, 0x1a, 0x6a, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69, 0x0a,
+ 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a,
+ 0x18, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e,
+ 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49,
+ 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54,
+ 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50,
+ 0x52, 0x45, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x43,
+ 0x4b, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01, 0x0a,
+ 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x5f,
+ 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+ 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d, 0x42,
+ 0xc4, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
+ 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x42, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a,
+ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a,
+ 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x41, 0x6c, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61,
+ 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62,
+ 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_product_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_product_proto_rawDescData = file_google_cloud_retail_v2beta_product_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_product_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_product_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_product_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_product_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_product_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_cloud_retail_v2beta_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_google_cloud_retail_v2beta_product_proto_goTypes = []interface{}{
+ (Product_Availability)(0), // 0: google.cloud.retail.v2beta.Product.Availability
+ (*Product)(nil), // 1: google.cloud.retail.v2beta.Product
+ nil, // 2: google.cloud.retail.v2beta.Product.AttributesEntry
+ (*PriceInfo)(nil), // 3: google.cloud.retail.v2beta.PriceInfo
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*wrapperspb.Int32Value)(nil), // 5: google.protobuf.Int32Value
+ (*Image)(nil), // 6: google.cloud.retail.v2beta.Image
+ (*fieldmaskpb.FieldMask)(nil), // 7: google.protobuf.FieldMask
+ (*CustomAttribute)(nil), // 8: google.cloud.retail.v2beta.CustomAttribute
+}
+var file_google_cloud_retail_v2beta_product_proto_depIdxs = []int32{
+ 2, // 0: google.cloud.retail.v2beta.Product.attributes:type_name -> google.cloud.retail.v2beta.Product.AttributesEntry
+ 3, // 1: google.cloud.retail.v2beta.Product.price_info:type_name -> google.cloud.retail.v2beta.PriceInfo
+ 4, // 2: google.cloud.retail.v2beta.Product.available_time:type_name -> google.protobuf.Timestamp
+ 0, // 3: google.cloud.retail.v2beta.Product.availability:type_name -> google.cloud.retail.v2beta.Product.Availability
+ 5, // 4: google.cloud.retail.v2beta.Product.available_quantity:type_name -> google.protobuf.Int32Value
+ 6, // 5: google.cloud.retail.v2beta.Product.images:type_name -> google.cloud.retail.v2beta.Image
+ 7, // 6: google.cloud.retail.v2beta.Product.stocking_unit_retrievable_fields:type_name -> google.protobuf.FieldMask
+ 8, // 7: google.cloud.retail.v2beta.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2beta.CustomAttribute
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_product_proto_init() }
+func file_google_cloud_retail_v2beta_product_proto_init() {
+ if File_google_cloud_retail_v2beta_product_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_common_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Product); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_product_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_product_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_product_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2beta_product_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2beta_product_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_product_proto = out.File
+ file_google_cloud_retail_v2beta_product_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_product_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_product_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/product_service.pb.go b/googleapis/cloud/retail/v2beta/product_service.pb.go
new file mode 100644
index 000000000..ca485054f
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/product_service.pb.go
@@ -0,0 +1,929 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/product_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Request message for [CreateProduct][] method.
+type CreateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent catalog resource name, such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The [Product][google.cloud.retail.v2beta.Product] to create.
+ Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
+ // Required. The ID to use for the
+ // [Product][google.cloud.retail.v2beta.Product], which will become the final
+ // component of the [Product.name][google.cloud.retail.v2beta.Product.name].
+ //
+ // If the caller does not have permission to create the
+ // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not
+ // it exists, a PERMISSION_DENIED error is returned.
+ //
+ // This field must be unique among all
+ // [Product][google.cloud.retail.v2beta.Product]s with the same
+ // [parent][google.cloud.retail.v2beta.CreateProductRequest.parent].
+ // Otherwise, an ALREADY_EXISTS error is returned.
+ //
+ // This field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
+}
+
+func (x *CreateProductRequest) Reset() {
+ *x = CreateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateProductRequest) ProtoMessage() {}
+
+func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead.
+func (*CreateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CreateProductRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CreateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *CreateProductRequest) GetProductId() string {
+ if x != nil {
+ return x.ProductId
+ }
+ return ""
+}
+
+// Request message for [GetProduct][] method.
+type GetProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of
+ // [Product][google.cloud.retail.v2beta.Product], such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to access the
+ // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not
+ // it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the requested [Product][google.cloud.retail.v2beta.Product] does not
+ // exist, a NOT_FOUND error is returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetProductRequest) Reset() {
+ *x = GetProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetProductRequest) ProtoMessage() {}
+
+func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.
+func (*GetProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GetProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for [UpdateProduct][] method.
+type UpdateProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The product to update/create.
+ //
+ // If the caller does not have permission to update the
+ // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not
+ // it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2beta.Product] to update does not
+ // exist, a NOT_FOUND error is returned.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Indicates which fields in the provided
+ // [Product][google.cloud.retail.v2beta.Product] to update. The immutable and
+ // output only fields are NOT supported. If not set, all supported fields (the
+ // fields that are neither immutable nor output only) are updated.
+ //
+ // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
+ // is returned.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+}
+
+func (x *UpdateProductRequest) Reset() {
+ *x = UpdateProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateProductRequest) ProtoMessage() {}
+
+func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateProductRequest.ProtoReflect.Descriptor instead.
+func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *UpdateProductRequest) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+// Request message for [DeleteProduct][] method.
+type DeleteProductRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of
+ // [Product][google.cloud.retail.v2beta.Product], such as
+ //
+ // "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
+ //
+ // If the caller does not have permission to delete the
+ // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not
+ // it exists, a PERMISSION_DENIED error is returned.
+ //
+ // If the [Product][google.cloud.retail.v2beta.Product] to delete does not
+ // exist, a NOT_FOUND error is returned.
+ //
+ // The [Product][google.cloud.retail.v2beta.Product] to delete can neither be
+ // a non-empty [Product.Type.COLLECTION][]
+ // [Product][google.cloud.retail.v2beta.Product] nor a
+ // [Product.Type.PRIMARY][] [Product][google.cloud.retail.v2beta.Product] with
+ // more than one [variants][Product.Type.VARIANT]. Otherwise, a
+ // FAILED_PRECONDITION error is returned.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *DeleteProductRequest) Reset() {
+ *x = DeleteProductRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteProductRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteProductRequest) ProtoMessage() {}
+
+func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead.
+func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DeleteProductRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2beta_product_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_product_service_proto_rawDesc = []byte{
+ 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x65, 0x78,
+ 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x69, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 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, 0x1a,
+ 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbc,
+ 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a,
+ 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a,
+ 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x97, 0x01,
+ 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0,
+ 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xc6, 0x0b, 0x0a, 0x0e, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xdb, 0x01,
+ 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12,
+ 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x22, 0x46,
+ 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f,
+ 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda,
+ 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, 0xb8, 0x01, 0x0a, 0x0a,
+ 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x56,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73,
+ 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda,
+ 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22,
+ 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x32, 0x4f, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a,
+ 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64,
+ 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xb1, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 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, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x2a, 0x47, 0x2f, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61,
+ 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73,
+ 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x99, 0x02, 0x0a, 0x0d,
+ 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x30, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 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, 0xb6,
+ 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x22, 0x4c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a,
+ 0x70, 0x75, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x5c, 0x0a, 0x30, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9e, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 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, 0xb9, 0x01, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65,
+ 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x69, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x5e, 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 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, 0xdc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
+ 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2,
+ 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43,
+ 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f,
+ 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_product_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_product_service_proto_rawDescData = file_google_cloud_retail_v2beta_product_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_product_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_product_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_product_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2beta_product_service_proto_goTypes = []interface{}{
+ (*CreateProductRequest)(nil), // 0: google.cloud.retail.v2beta.CreateProductRequest
+ (*GetProductRequest)(nil), // 1: google.cloud.retail.v2beta.GetProductRequest
+ (*UpdateProductRequest)(nil), // 2: google.cloud.retail.v2beta.UpdateProductRequest
+ (*DeleteProductRequest)(nil), // 3: google.cloud.retail.v2beta.DeleteProductRequest
+ (*Product)(nil), // 4: google.cloud.retail.v2beta.Product
+ (*fieldmaskpb.FieldMask)(nil), // 5: google.protobuf.FieldMask
+ (*PurgeProductsRequest)(nil), // 6: google.cloud.retail.v2beta.PurgeProductsRequest
+ (*ImportProductsRequest)(nil), // 7: google.cloud.retail.v2beta.ImportProductsRequest
+ (*emptypb.Empty)(nil), // 8: google.protobuf.Empty
+ (*longrunning.Operation)(nil), // 9: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2beta_product_service_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2beta.CreateProductRequest.product:type_name -> google.cloud.retail.v2beta.Product
+ 4, // 1: google.cloud.retail.v2beta.UpdateProductRequest.product:type_name -> google.cloud.retail.v2beta.Product
+ 5, // 2: google.cloud.retail.v2beta.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 3: google.cloud.retail.v2beta.ProductService.CreateProduct:input_type -> google.cloud.retail.v2beta.CreateProductRequest
+ 1, // 4: google.cloud.retail.v2beta.ProductService.GetProduct:input_type -> google.cloud.retail.v2beta.GetProductRequest
+ 2, // 5: google.cloud.retail.v2beta.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2beta.UpdateProductRequest
+ 3, // 6: google.cloud.retail.v2beta.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2beta.DeleteProductRequest
+ 6, // 7: google.cloud.retail.v2beta.ProductService.PurgeProducts:input_type -> google.cloud.retail.v2beta.PurgeProductsRequest
+ 7, // 8: google.cloud.retail.v2beta.ProductService.ImportProducts:input_type -> google.cloud.retail.v2beta.ImportProductsRequest
+ 4, // 9: google.cloud.retail.v2beta.ProductService.CreateProduct:output_type -> google.cloud.retail.v2beta.Product
+ 4, // 10: google.cloud.retail.v2beta.ProductService.GetProduct:output_type -> google.cloud.retail.v2beta.Product
+ 4, // 11: google.cloud.retail.v2beta.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2beta.Product
+ 8, // 12: google.cloud.retail.v2beta.ProductService.DeleteProduct:output_type -> google.protobuf.Empty
+ 9, // 13: google.cloud.retail.v2beta.ProductService.PurgeProducts:output_type -> google.longrunning.Operation
+ 9, // 14: google.cloud.retail.v2beta.ProductService.ImportProducts:output_type -> google.longrunning.Operation
+ 9, // [9:15] is the sub-list for method output_type
+ 3, // [3:9] 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_retail_v2beta_product_service_proto_init() }
+func file_google_cloud_retail_v2beta_product_service_proto_init() {
+ if File_google_cloud_retail_v2beta_product_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_init()
+ file_google_cloud_retail_v2beta_import_config_proto_init()
+ file_google_cloud_retail_v2beta_product_proto_init()
+ file_google_cloud_retail_v2beta_purge_config_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteProductRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_product_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_product_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_product_service_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_product_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_product_service_proto = out.File
+ file_google_cloud_retail_v2beta_product_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_product_service_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_product_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// ProductServiceClient is the client API for ProductService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ProductServiceClient interface {
+ // Creates a [Product][google.cloud.retail.v2beta.Product].
+ CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2beta.Product].
+ GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Updates a [Product][google.cloud.retail.v2beta.Product]. Non-existing items
+ // will be created.
+ UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2beta.Product].
+ DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2beta.Product]s
+ // under a branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2beta.Product]s,
+ // this operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2beta.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2beta.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2beta.Product]s to be successfully updated.
+ ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type productServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient {
+ return &productServiceClient{cc}
+}
+
+func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/CreateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/GetProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
+ out := new(Product)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/UpdateProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/DeleteProduct", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) PurgeProducts(ctx context.Context, in *PurgeProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/PurgeProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/ImportProducts", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ProductServiceServer is the server API for ProductService service.
+type ProductServiceServer interface {
+ // Creates a [Product][google.cloud.retail.v2beta.Product].
+ CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
+ // Gets a [Product][google.cloud.retail.v2beta.Product].
+ GetProduct(context.Context, *GetProductRequest) (*Product, error)
+ // Updates a [Product][google.cloud.retail.v2beta.Product]. Non-existing items
+ // will be created.
+ UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
+ // Deletes a [Product][google.cloud.retail.v2beta.Product].
+ DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error)
+ // Permanently deletes all [Product][google.cloud.retail.v2beta.Product]s
+ // under a branch.
+ //
+ // Depending on the number of [Product][google.cloud.retail.v2beta.Product]s,
+ // this operation could take hours to complete. To get a sample of
+ // [Product][google.cloud.retail.v2beta.Product]s that would be deleted, set
+ // [PurgeProductsRequest.force][google.cloud.retail.v2beta.PurgeProductsRequest.force]
+ // to false.
+ PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error)
+ // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s.
+ //
+ // Request processing may be synchronous. No partial updating is supported.
+ // Non-existing items are created.
+ //
+ // Note that it is possible for a subset of the
+ // [Product][google.cloud.retail.v2beta.Product]s to be successfully updated.
+ ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedProductServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedProductServiceServer struct {
+}
+
+func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented")
+}
+func (*UnimplementedProductServiceServer) PurgeProducts(context.Context, *PurgeProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeProducts not implemented")
+}
+func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented")
+}
+
+func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) {
+ s.RegisterService(&_ProductService_serviceDesc, srv)
+}
+
+func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).CreateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/CreateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).GetProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/GetProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/UpdateProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteProductRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/DeleteProduct",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_PurgeProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/PurgeProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).PurgeProducts(ctx, req.(*PurgeProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportProductsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProductServiceServer).ImportProducts(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.ProductService/ImportProducts",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _ProductService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2beta.ProductService",
+ HandlerType: (*ProductServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "CreateProduct",
+ Handler: _ProductService_CreateProduct_Handler,
+ },
+ {
+ MethodName: "GetProduct",
+ Handler: _ProductService_GetProduct_Handler,
+ },
+ {
+ MethodName: "UpdateProduct",
+ Handler: _ProductService_UpdateProduct_Handler,
+ },
+ {
+ MethodName: "DeleteProduct",
+ Handler: _ProductService_DeleteProduct_Handler,
+ },
+ {
+ MethodName: "PurgeProducts",
+ Handler: _ProductService_PurgeProducts_Handler,
+ },
+ {
+ MethodName: "ImportProducts",
+ Handler: _ProductService_ImportProducts_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2beta/product_service.proto",
+}
diff --git a/googleapis/cloud/retail/v2beta/purge_config.pb.go b/googleapis/cloud/retail/v2beta/purge_config.pb.go
new file mode 100644
index 000000000..83130c235
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/purge_config.pb.go
@@ -0,0 +1,587 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/purge_config.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Metadata related to the progress of the Purge operation.
+// This will be returned by the google.longrunning.Operation.metadata field.
+type PurgeMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The ID of the request / operation.
+ Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
+ // Operation create time.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+}
+
+func (x *PurgeMetadata) Reset() {
+ *x = PurgeMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeMetadata) ProtoMessage() {}
+
+func (x *PurgeMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeMetadata.ProtoReflect.Descriptor instead.
+func (*PurgeMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PurgeMetadata) GetOperation() string {
+ if x != nil {
+ return x.Operation
+ }
+ return ""
+}
+
+func (x *PurgeMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+// Request message for PurgeProducts method.
+type PurgeProductsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the catalog under which the products are
+ // created. The format is
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. Filter matching the products to be purged. Only supported value
+ // at the moment is "*" (all items).
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // products to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeProductsRequest) Reset() {
+ *x = PurgeProductsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsRequest) ProtoMessage() {}
+
+func (x *PurgeProductsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeProductsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *PurgeProductsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeProductsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeProductsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeProductsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of products purged as a result of the operation.
+ PurgedCount int64 `protobuf:"varint,1,opt,name=purged_count,json=purgedCount,proto3" json:"purged_count,omitempty"`
+ // A random sampling of products deleted (or will be deleted) depending
+ // on the `force` property in the request. Max of 500 items will be returned.
+ // Currently, this is only populated if force=false.
+ ProductsSample []*Product `protobuf:"bytes,2,rep,name=products_sample,json=productsSample,proto3" json:"products_sample,omitempty"`
+}
+
+func (x *PurgeProductsResponse) Reset() {
+ *x = PurgeProductsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeProductsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeProductsResponse) ProtoMessage() {}
+
+func (x *PurgeProductsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeProductsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeProductsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurgeProductsResponse) GetPurgedCount() int64 {
+ if x != nil {
+ return x.PurgedCount
+ }
+ return 0
+}
+
+func (x *PurgeProductsResponse) GetProductsSample() []*Product {
+ if x != nil {
+ return x.ProductsSample
+ }
+ return nil
+}
+
+// Request message for PurgeUserEvents method.
+type PurgeUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The resource name of the event_store under which the events are
+ // created. The format is
+ //
+ // "projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}"
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The filter string to specify the events to be deleted. Empty
+ // string filter is not allowed. The eligible fields
+ // for filtering are:
+ //
+ // * `eventType`: UserEvent.eventType field of type string.
+ // * `eventTime`: in ISO 8601 "zulu" format.
+ // * `visitorId`: field of type string. Specifying this will delete all
+ // events associated with a visitor.
+ // * `userId`: field of type string. Specifying this will delete all events
+ // associated with a user.
+ //
+ // Examples:
+ //
+ // * Deleting all events in a time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z"
+ // eventTime < "2012-04-23T18:30:43.511Z"`
+ // * Deleting specific eventType in time range:
+ // `eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view"`
+ // * Deleting all events for a specific visitor:
+ // `visitorId = "visitor1024"`
+ //
+ // The filtering fields are assumed to have an implicit AND.
+ Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+ // The default value is false. Override this flag to true to
+ // actually perform the purge. If the field is not set to true, a sampling of
+ // events to be deleted will be returned.
+ Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *PurgeUserEventsRequest) Reset() {
+ *x = PurgeUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsRequest) ProtoMessage() {}
+
+func (x *PurgeUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *PurgeUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *PurgeUserEventsRequest) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+// Response of the PurgeUserEventsRequest. If the long running operation is
+// successfully done, then this message is returned by the
+// google.longrunning.Operations.response field.
+type PurgeUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The total count of events purged as a result of the operation.
+ PurgedEventsCount int64 `protobuf:"varint,1,opt,name=purged_events_count,json=purgedEventsCount,proto3" json:"purged_events_count,omitempty"`
+ // A sampling of events deleted (or will be deleted) depending on the `force`
+ // property in the request. Max of 500 items will be returned.
+ UserEventsSample []*UserEvent `protobuf:"bytes,2,rep,name=user_events_sample,json=userEventsSample,proto3" json:"user_events_sample,omitempty"`
+}
+
+func (x *PurgeUserEventsResponse) Reset() {
+ *x = PurgeUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurgeUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurgeUserEventsResponse) ProtoMessage() {}
+
+func (x *PurgeUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurgeUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*PurgeUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *PurgeUserEventsResponse) GetPurgedEventsCount() int64 {
+ if x != nil {
+ return x.PurgedEventsCount
+ }
+ return 0
+}
+
+func (x *PurgeUserEventsResponse) GetUserEventsSample() []*UserEvent {
+ if x != nil {
+ return x.UserEventsSample
+ }
+ return nil
+}
+
+var File_google_cloud_retail_v2beta_purge_config_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_purge_config_proto_rawDesc = []byte{
+ 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x75, 0x72,
+ 0x67, 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, 0x72, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x6a, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x66,
+ 0x0a, 0x14, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
+ 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x15, 0x50, 0x75, 0x72, 0x67, 0x65,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x5f,
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x22, 0x68, 0x0a, 0x16, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66,
+ 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x17,
+ 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x75, 0x72, 0x67, 0x65,
+ 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0xd9, 0x01, 0x0a,
+ 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42,
+ 0x10, 0x50, 0x75, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
+ 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
+ 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_purge_config_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_purge_config_proto_rawDescData = file_google_cloud_retail_v2beta_purge_config_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_purge_config_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_purge_config_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_purge_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_purge_config_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_purge_config_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_purge_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2beta_purge_config_proto_goTypes = []interface{}{
+ (*PurgeMetadata)(nil), // 0: google.cloud.retail.v2beta.PurgeMetadata
+ (*PurgeProductsRequest)(nil), // 1: google.cloud.retail.v2beta.PurgeProductsRequest
+ (*PurgeProductsResponse)(nil), // 2: google.cloud.retail.v2beta.PurgeProductsResponse
+ (*PurgeUserEventsRequest)(nil), // 3: google.cloud.retail.v2beta.PurgeUserEventsRequest
+ (*PurgeUserEventsResponse)(nil), // 4: google.cloud.retail.v2beta.PurgeUserEventsResponse
+ (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
+ (*Product)(nil), // 6: google.cloud.retail.v2beta.Product
+ (*UserEvent)(nil), // 7: google.cloud.retail.v2beta.UserEvent
+}
+var file_google_cloud_retail_v2beta_purge_config_proto_depIdxs = []int32{
+ 5, // 0: google.cloud.retail.v2beta.PurgeMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 6, // 1: google.cloud.retail.v2beta.PurgeProductsResponse.products_sample:type_name -> google.cloud.retail.v2beta.Product
+ 7, // 2: google.cloud.retail.v2beta.PurgeUserEventsResponse.user_events_sample:type_name -> google.cloud.retail.v2beta.UserEvent
+ 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_retail_v2beta_purge_config_proto_init() }
+func file_google_cloud_retail_v2beta_purge_config_proto_init() {
+ if File_google_cloud_retail_v2beta_purge_config_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_product_proto_init()
+ file_google_cloud_retail_v2beta_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeProductsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_purge_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurgeUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_purge_config_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_purge_config_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_purge_config_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_purge_config_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_purge_config_proto = out.File
+ file_google_cloud_retail_v2beta_purge_config_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_purge_config_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_purge_config_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/user_event.pb.go b/googleapis/cloud/retail/v2beta/user_event.pb.go
new file mode 100644
index 000000000..b1aacd494
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/user_event.pb.go
@@ -0,0 +1,708 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/user_event.proto
+
+package retail
+
+import (
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// UserEvent captures all metadata information recommendation engine needs to
+// know about how end users interact with customers' website.
+type UserEvent struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. User event type. Allowed values are:
+ //
+ // * `add-to-cart` Products being added to cart.
+ // * `category-page-view` Special pages such as sale or promotion pages
+ // viewed.
+ // * `detail-page-view` Products detail page viewed.
+ // * `home-page-view` Homepage viewed.
+ // * `purchase-complete` User finishing a purchase.
+ // * `search`
+ // * `shopping-cart-page-view` User viewing a shopping cart.
+ EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
+ // Required. A unique identifier for tracking visitors. For example, this
+ // could be implemented with a http cookie, which should be able to uniquely
+ // identify a visitor on a single device. This unique identifier should not
+ // change if the visitor log in/out of the website.
+ //
+ // The field must be a UTF-8 encoded string with a length limit of 128 bytes.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ VisitorId string `protobuf:"bytes,2,opt,name=visitor_id,json=visitorId,proto3" json:"visitor_id,omitempty"`
+ // Only required for
+ // [UserEventService.ImportUserEvents][google.cloud.retail.v2beta.UserEventService.ImportUserEvents]
+ // method. Timestamp of when the user event happened.
+ EventTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
+ // A list of identifiers for the independent experiment groups
+ // this user event belongs to. This is used to distinguish between user events
+ // associated with different experiment setups (e.g. using Recommendations AI,
+ // using different recommendation models).
+ ExperimentIds []string `protobuf:"bytes,4,rep,name=experiment_ids,json=experimentIds,proto3" json:"experiment_ids,omitempty"`
+ // Highly recommended for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2beta.PredictionService.Predict].
+ // This field enables accurate attribution of recommendation model
+ // performance.
+ //
+ // The value must be a valid
+ // [PredictResponse.attribute_token][] for user events that are the result of
+ // [PredictionService.Predict][google.cloud.retail.v2beta.PredictionService.Predict].
+ //
+ // This token enables us to accurately attribute page view or purchase back to
+ // the event and the particular predict response containing this
+ // clicked/purchased product. If user clicks on product K in the
+ // recommendation results, pass [PredictResponse.attribute_token][] as a url
+ // parameter to product K's page. When recording events on product K's page,
+ // log the [PredictResponse.attribute_token][] to this field.
+ AttributionToken string `protobuf:"bytes,5,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
+ // The main product details related to the event.
+ //
+ // This field is required for the following event types:
+ //
+ // * `add-to-cart`
+ // * `detail-page-view`
+ // * `purchase-complete`
+ //
+ // In a `search` event, this field represents the products returned to the end
+ // user on the current page (the end user may have not finished broswing the
+ // whole page yet). When a new page is returned to the end user, after
+ // pagination/filtering/ordering even for the same query, a new SEARCH event
+ // with different
+ // [product_details][google.cloud.retail.v2beta.UserEvent.product_details] is
+ // desired. The end user may have not finished broswing the whole page yet.
+ ProductDetails []*ProductDetail `protobuf:"bytes,6,rep,name=product_details,json=productDetails,proto3" json:"product_details,omitempty"`
+ // Extra user event features to include in the recommendation model.
+ //
+ // For product recommendation, an example of extra user information is
+ // traffic_channel, i.e. how user arrives at the site. Users can arrive
+ // at the site by coming to the site directly, or coming through Google
+ // search, and etc.
+ Attributes map[string]*CustomAttribute `protobuf:"bytes,7,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The id or name of the associated shopping cart. This id is used
+ // to associate multiple items added or present in the cart before purchase.
+ //
+ // This can only be set for `add-to-cart`, `remove-from-cart`,
+ // `checkout-start`, `purchase-complete`, or `shopping-cart-page-view` events.
+ CartId string `protobuf:"bytes,8,opt,name=cart_id,json=cartId,proto3" json:"cart_id,omitempty"`
+ // A transaction represents the entire purchase transaction.
+ //
+ // Required for `purchase-complete` events. Optional for `checkout-start`
+ // events. Other event types should not set this field. Otherwise, an
+ // INVALID_ARGUMENT error is returned.
+ PurchaseTransaction *PurchaseTransaction `protobuf:"bytes,9,opt,name=purchase_transaction,json=purchaseTransaction,proto3" json:"purchase_transaction,omitempty"`
+ // The user's search query.
+ //
+ // The value must be a UTF-8 encoded string with a length limit of 5 KiB.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ //
+ // Required for `search` events. Other event types should not set this field.
+ // Otherwise, an INVALID_ARGUMENT error is returned.
+ SearchQuery string `protobuf:"bytes,10,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"`
+ // The categories associated with a category page.
+ //
+ // To represent full path of category, use '>' sign to separate different
+ // hierarchies. If '>' is part of the category name, you should escape it with
+ // '\x3E'.
+ //
+ // Category pages include special pages such as sales or promotions. For
+ // instance, a special sale page may have the category hierarchy:
+ // "pageCategories" : ["Sales > 2017 Black Friday Deals"].
+ //
+ // Required for `category-page-view` events. Other event types should not set
+ // this field. Otherwise, an INVALID_ARGUMENT error is returned.
+ PageCategories []string `protobuf:"bytes,11,rep,name=page_categories,json=pageCategories,proto3" json:"page_categories,omitempty"`
+ // User information.
+ UserInfo *UserInfo `protobuf:"bytes,12,opt,name=user_info,json=userInfo,proto3" json:"user_info,omitempty"`
+ // Complete url (window.location.href) of the user's current page.
+ // When using the client side event reporting with JavaScript pixel and Google
+ // Tag Manager, this value is filled in automatically. Maximum length 5KB.
+ Uri string `protobuf:"bytes,13,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The referrer url of the current page. When using
+ // the client side event reporting with JavaScript pixel and Google Tag
+ // Manager, this value is filled in automatically.
+ ReferrerUri string `protobuf:"bytes,14,opt,name=referrer_uri,json=referrerUri,proto3" json:"referrer_uri,omitempty"`
+ // A unique id of a web page view.
+ // This should be kept the same for all user events triggered from the same
+ // pageview. For example, an item detail page view could trigger multiple
+ // events as the user is browsing the page.
+ // The `pageViewId` property should be kept the same for all these events so
+ // that they can be grouped together properly. This `pageViewId` will be
+ // automatically generated if using the client side event reporting with
+ // JavaScript pixel and Google Tag Manager.
+ PageViewId string `protobuf:"bytes,15,opt,name=page_view_id,json=pageViewId,proto3" json:"page_view_id,omitempty"`
+ // User event source.
+ // Acceptable values are:
+ //
+ // * `client_tag` if the event is ingested via a JavaScript tag or
+ // Recommendations AI Tag through automl datalayer or JS Macros.
+ // * `client_tag_ecommerce` if the event is ingested via Recommendations AI
+ // Tag through
+ // Enhanced Ecommerce datalayer.
+ // * 'batch_upload' if the event is ingested via ImportUserEvents API.
+ //
+ // This field should *not* be set when using client side event reporting with
+ // JavaScript pixel and Google Tag Manager or the Recommendations AI Tag.
+ EventSource string `protobuf:"bytes,16,opt,name=event_source,json=eventSource,proto3" json:"event_source,omitempty"`
+}
+
+func (x *UserEvent) Reset() {
+ *x = UserEvent{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserEvent) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserEvent) ProtoMessage() {}
+
+func (x *UserEvent) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserEvent.ProtoReflect.Descriptor instead.
+func (*UserEvent) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *UserEvent) GetEventType() string {
+ if x != nil {
+ return x.EventType
+ }
+ return ""
+}
+
+func (x *UserEvent) GetVisitorId() string {
+ if x != nil {
+ return x.VisitorId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.EventTime
+ }
+ return nil
+}
+
+func (x *UserEvent) GetExperimentIds() []string {
+ if x != nil {
+ return x.ExperimentIds
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributionToken() string {
+ if x != nil {
+ return x.AttributionToken
+ }
+ return ""
+}
+
+func (x *UserEvent) GetProductDetails() []*ProductDetail {
+ if x != nil {
+ return x.ProductDetails
+ }
+ return nil
+}
+
+func (x *UserEvent) GetAttributes() map[string]*CustomAttribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+func (x *UserEvent) GetCartId() string {
+ if x != nil {
+ return x.CartId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPurchaseTransaction() *PurchaseTransaction {
+ if x != nil {
+ return x.PurchaseTransaction
+ }
+ return nil
+}
+
+func (x *UserEvent) GetSearchQuery() string {
+ if x != nil {
+ return x.SearchQuery
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageCategories() []string {
+ if x != nil {
+ return x.PageCategories
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUserInfo() *UserInfo {
+ if x != nil {
+ return x.UserInfo
+ }
+ return nil
+}
+
+func (x *UserEvent) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetReferrerUri() string {
+ if x != nil {
+ return x.ReferrerUri
+ }
+ return ""
+}
+
+func (x *UserEvent) GetPageViewId() string {
+ if x != nil {
+ return x.PageViewId
+ }
+ return ""
+}
+
+func (x *UserEvent) GetEventSource() string {
+ if x != nil {
+ return x.EventSource
+ }
+ return ""
+}
+
+// Detailed product information associated with a user event.
+type ProductDetail struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. [Product][google.cloud.retail.v2beta.Product] information.
+ // Only [Product][id] field must to be set.
+ Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
+ // Quantity of the product associated with the user event. For
+ // example, this field will be 2 if two products are added to the shopping
+ // cart for `purchase-complete` event. Required for `add-to-cart` and
+ // `purchase-complete` event types.
+ Quantity *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"`
+}
+
+func (x *ProductDetail) Reset() {
+ *x = ProductDetail{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductDetail) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductDetail) ProtoMessage() {}
+
+func (x *ProductDetail) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductDetail.ProtoReflect.Descriptor instead.
+func (*ProductDetail) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ProductDetail) GetProduct() *Product {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *ProductDetail) GetQuantity() *wrapperspb.Int32Value {
+ if x != nil {
+ return x.Quantity
+ }
+ return nil
+}
+
+// A transaction represents the entire purchase transaction.
+type PurchaseTransaction struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The transaction ID with a length limit of 128 bytes.
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Required. Total revenue or grand total associated with the transaction.
+ // This value include shipping, tax, or other adjustments to total revenue
+ // that you want to include as part of your revenue calculations. This field
+ // is not required if the event type is `refund`.
+ Revenue float32 `protobuf:"fixed32,2,opt,name=revenue,proto3" json:"revenue,omitempty"`
+ // All the taxes associated with the transaction.
+ Tax float32 `protobuf:"fixed32,3,opt,name=tax,proto3" json:"tax,omitempty"`
+ // All the costs associated with the product. These can be
+ // manufacturing costs, shipping expenses not borne by the end user, or any
+ // other costs.
+ //
+ // Total product cost such that
+ // profit = revenue - tax + [Product][pricing][cost]
+ // If product_cost is not set, then
+ // profit = revenue - tax - [Product][pricing][cost].
+ //
+ // If [Product][pricing][cost] is not specified for one of the products,
+ // [Product][pricing][cost] based profit *cannot* be calculated for this
+ // Transaction.
+ Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
+ // Required. Currency code. Use three-character ISO-4217 code. This field
+ // is not required if the event type is `refund`.
+ CurrencyCode string `protobuf:"bytes,5,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+}
+
+func (x *PurchaseTransaction) Reset() {
+ *x = PurchaseTransaction{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PurchaseTransaction) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PurchaseTransaction) ProtoMessage() {}
+
+func (x *PurchaseTransaction) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PurchaseTransaction.ProtoReflect.Descriptor instead.
+func (*PurchaseTransaction) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PurchaseTransaction) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *PurchaseTransaction) GetRevenue() float32 {
+ if x != nil {
+ return x.Revenue
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetTax() float32 {
+ if x != nil {
+ return x.Tax
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCost() float32 {
+ if x != nil {
+ return x.Cost
+ }
+ return 0
+}
+
+func (x *PurchaseTransaction) GetCurrencyCode() string {
+ if x != nil {
+ return x.CurrencyCode
+ }
+ return ""
+}
+
+var File_google_cloud_retail_v2beta_user_event_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_user_event_proto_rawDesc = []byte{
+ 0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
+ 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 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, 0x1a, 0x1e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
+ 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xff, 0x06, 0x0a,
+ 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22,
+ 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x03, 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, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a,
+ 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e,
+ 0x74, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x55, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07,
+ 0x63, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63,
+ 0x61, 0x72, 0x74, 0x49, 0x64, 0x12, 0x62, 0x0a, 0x14, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
+ 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61,
+ 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f,
+ 0x70, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18,
+ 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67,
+ 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e,
+ 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18,
+ 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x20, 0x0a,
+ 0x0c, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x56, 0x69, 0x65, 0x77, 0x49, 0x64, 0x12,
+ 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
+ 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x1a, 0x6a, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c,
+ 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x12, 0x42, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x94, 0x01,
+ 0x0a, 0x13, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x76,
+ 0x65, 0x6e, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x02, 0x52, 0x03, 0x74, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79,
+ 0x43, 0x6f, 0x64, 0x65, 0x42, 0xd7, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
+ 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45,
+ 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64,
+ 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02,
+ 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a,
+ 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_user_event_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_user_event_proto_rawDescData = file_google_cloud_retail_v2beta_user_event_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_user_event_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_user_event_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_user_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_user_event_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_user_event_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_user_event_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_google_cloud_retail_v2beta_user_event_proto_goTypes = []interface{}{
+ (*UserEvent)(nil), // 0: google.cloud.retail.v2beta.UserEvent
+ (*ProductDetail)(nil), // 1: google.cloud.retail.v2beta.ProductDetail
+ (*PurchaseTransaction)(nil), // 2: google.cloud.retail.v2beta.PurchaseTransaction
+ nil, // 3: google.cloud.retail.v2beta.UserEvent.AttributesEntry
+ (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
+ (*UserInfo)(nil), // 5: google.cloud.retail.v2beta.UserInfo
+ (*Product)(nil), // 6: google.cloud.retail.v2beta.Product
+ (*wrapperspb.Int32Value)(nil), // 7: google.protobuf.Int32Value
+ (*CustomAttribute)(nil), // 8: google.cloud.retail.v2beta.CustomAttribute
+}
+var file_google_cloud_retail_v2beta_user_event_proto_depIdxs = []int32{
+ 4, // 0: google.cloud.retail.v2beta.UserEvent.event_time:type_name -> google.protobuf.Timestamp
+ 1, // 1: google.cloud.retail.v2beta.UserEvent.product_details:type_name -> google.cloud.retail.v2beta.ProductDetail
+ 3, // 2: google.cloud.retail.v2beta.UserEvent.attributes:type_name -> google.cloud.retail.v2beta.UserEvent.AttributesEntry
+ 2, // 3: google.cloud.retail.v2beta.UserEvent.purchase_transaction:type_name -> google.cloud.retail.v2beta.PurchaseTransaction
+ 5, // 4: google.cloud.retail.v2beta.UserEvent.user_info:type_name -> google.cloud.retail.v2beta.UserInfo
+ 6, // 5: google.cloud.retail.v2beta.ProductDetail.product:type_name -> google.cloud.retail.v2beta.Product
+ 7, // 6: google.cloud.retail.v2beta.ProductDetail.quantity:type_name -> google.protobuf.Int32Value
+ 8, // 7: google.cloud.retail.v2beta.UserEvent.AttributesEntry.value:type_name -> google.cloud.retail.v2beta.CustomAttribute
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_user_event_proto_init() }
+func file_google_cloud_retail_v2beta_user_event_proto_init() {
+ if File_google_cloud_retail_v2beta_user_event_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_common_proto_init()
+ file_google_cloud_retail_v2beta_product_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_user_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserEvent); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductDetail); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PurchaseTransaction); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_user_event_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_user_event_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_user_event_proto_depIdxs,
+ MessageInfos: file_google_cloud_retail_v2beta_user_event_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_user_event_proto = out.File
+ file_google_cloud_retail_v2beta_user_event_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_user_event_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_user_event_proto_depIdxs = nil
+}
diff --git a/googleapis/cloud/retail/v2beta/user_event_service.pb.go b/googleapis/cloud/retail/v2beta/user_event_service.pb.go
new file mode 100644
index 000000000..94e1b30e9
--- /dev/null
+++ b/googleapis/cloud/retail/v2beta/user_event_service.pb.go
@@ -0,0 +1,1040 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/cloud/retail/v2beta/user_event_service.proto
+
+package retail
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ httpbody "google.golang.org/genproto/googleapis/api/httpbody"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ 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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// The scope of events to be rejoined with latest catalog. If the rejoining
+// aims at reducing number of unjoined events, set UserEventRejoinScope to
+// UNJOINED_EVENTS. If the rejoining aims at correcting catalog information
+// in joined_events, set UserEventRejoinScope to JOINED_EVENTS. If all events
+// needs to be rejoined, set UserEventRejoinScope to
+// USER_EVENT_REJOIN_SCOPE_UNSPECIFIED.
+type RejoinUserEventsRequest_UserEventRejoinScope int32
+
+const (
+ // Rejoin catalogs with all events including both joined events and
+ // unjoined events.
+ RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED RejoinUserEventsRequest_UserEventRejoinScope = 0
+ // Only rejoin catalogs with joined events.
+ RejoinUserEventsRequest_JOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 1
+ // Only rejoin catalogs with unjoined events.
+ RejoinUserEventsRequest_UNJOINED_EVENTS RejoinUserEventsRequest_UserEventRejoinScope = 2
+)
+
+// Enum value maps for RejoinUserEventsRequest_UserEventRejoinScope.
+var (
+ RejoinUserEventsRequest_UserEventRejoinScope_name = map[int32]string{
+ 0: "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED",
+ 1: "JOINED_EVENTS",
+ 2: "UNJOINED_EVENTS",
+ }
+ RejoinUserEventsRequest_UserEventRejoinScope_value = map[string]int32{
+ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED": 0,
+ "JOINED_EVENTS": 1,
+ "UNJOINED_EVENTS": 2,
+ }
+)
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Enum() *RejoinUserEventsRequest_UserEventRejoinScope {
+ p := new(RejoinUserEventsRequest_UserEventRejoinScope)
+ *p = x
+ return p
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_enumTypes[0].Descriptor()
+}
+
+func (RejoinUserEventsRequest_UserEventRejoinScope) Type() protoreflect.EnumType {
+ return &file_google_cloud_retail_v2beta_user_event_service_proto_enumTypes[0]
+}
+
+func (x RejoinUserEventsRequest_UserEventRejoinScope) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest_UserEventRejoinScope.Descriptor instead.
+func (RejoinUserEventsRequest_UserEventRejoinScope) EnumDescriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{2, 0}
+}
+
+// Request message for WriteUserEvent method.
+type WriteUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore resource name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. User event to write.
+ UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+}
+
+func (x *WriteUserEventRequest) Reset() {
+ *x = WriteUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WriteUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WriteUserEventRequest) ProtoMessage() {}
+
+func (x *WriteUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WriteUserEventRequest.ProtoReflect.Descriptor instead.
+func (*WriteUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *WriteUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *WriteUserEventRequest) GetUserEvent() *UserEvent {
+ if x != nil {
+ return x.UserEvent
+ }
+ return nil
+}
+
+// Request message for CollectUserEvent method.
+type CollectUserEventRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent eventStore name, such as
+ // "projects/1234/locations/global/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. URL encoded UserEvent proto.
+ UserEvent string `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
+ // The url including cgi-parameters but excluding the hash fragment. The URL
+ // must be truncated to 1.5K bytes to conservatively be under the 2K bytes.
+ // This is often more useful than the referer url, because many browsers only
+ // send the domain for 3rd party requests.
+ Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The event timestamp in milliseconds. This prevents browser caching of
+ // otherwise identical get requests. The name is abbreviated to reduce the
+ // payload bytes.
+ Ets int64 `protobuf:"varint,4,opt,name=ets,proto3" json:"ets,omitempty"`
+}
+
+func (x *CollectUserEventRequest) Reset() {
+ *x = CollectUserEventRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CollectUserEventRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CollectUserEventRequest) ProtoMessage() {}
+
+func (x *CollectUserEventRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CollectUserEventRequest.ProtoReflect.Descriptor instead.
+func (*CollectUserEventRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *CollectUserEventRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUserEvent() string {
+ if x != nil {
+ return x.UserEvent
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetUri() string {
+ if x != nil {
+ return x.Uri
+ }
+ return ""
+}
+
+func (x *CollectUserEventRequest) GetEts() int64 {
+ if x != nil {
+ return x.Ets
+ }
+ return 0
+}
+
+// Request message for CatalogRejoin method.
+type RejoinUserEventsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Full resource name of user event, such as
+ // "projects/*/locations/*/catalogs/default_catalog".
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The type of the catalog rejoin to define the scope and range of
+ // the user events to be rejoined with catalog items.
+ UserEventRejoinScope RejoinUserEventsRequest_UserEventRejoinScope `protobuf:"varint,2,opt,name=user_event_rejoin_scope,json=userEventRejoinScope,proto3,enum=google.cloud.retail.v2beta.RejoinUserEventsRequest_UserEventRejoinScope" json:"user_event_rejoin_scope,omitempty"`
+}
+
+func (x *RejoinUserEventsRequest) Reset() {
+ *x = RejoinUserEventsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsRequest) ProtoMessage() {}
+
+func (x *RejoinUserEventsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsRequest.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsRequest) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RejoinUserEventsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *RejoinUserEventsRequest) GetUserEventRejoinScope() RejoinUserEventsRequest_UserEventRejoinScope {
+ if x != nil {
+ return x.UserEventRejoinScope
+ }
+ return RejoinUserEventsRequest_USER_EVENT_REJOIN_SCOPE_UNSPECIFIED
+}
+
+// Response message for RejoinUserEvents method.
+type RejoinUserEventsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Number of user events that were joined with latest catalog items.
+ RejoinedUserEventsCount int64 `protobuf:"varint,1,opt,name=rejoined_user_events_count,json=rejoinedUserEventsCount,proto3" json:"rejoined_user_events_count,omitempty"`
+}
+
+func (x *RejoinUserEventsResponse) Reset() {
+ *x = RejoinUserEventsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsResponse) ProtoMessage() {}
+
+func (x *RejoinUserEventsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsResponse.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsResponse) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *RejoinUserEventsResponse) GetRejoinedUserEventsCount() int64 {
+ if x != nil {
+ return x.RejoinedUserEventsCount
+ }
+ return 0
+}
+
+// Metadata for RejoinUserEvents method.
+type RejoinUserEventsMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RejoinUserEventsMetadata) Reset() {
+ *x = RejoinUserEventsMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RejoinUserEventsMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejoinUserEventsMetadata) ProtoMessage() {}
+
+func (x *RejoinUserEventsMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejoinUserEventsMetadata.ProtoReflect.Descriptor instead.
+func (*RejoinUserEventsMetadata) Descriptor() ([]byte, []int) {
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP(), []int{4}
+}
+
+var File_google_cloud_retail_v2beta_user_event_service_proto protoreflect.FileDescriptor
+
+var file_google_cloud_retail_v2beta_user_event_service_proto_rawDesc = []byte{
+ 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x75, 0x73, 0x65,
+ 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 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, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
+ 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f,
+ 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 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, 0x7f, 0x0a, 0x15, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b,
+ 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
+ 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x7e, 0x0a, 0x17, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
+ 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22,
+ 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x03, 0x65, 0x74, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6a, 0x6f, 0x69,
+ 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0x84, 0x01, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
+ 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69,
+ 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x67, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x27,
+ 0x0a, 0x23, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4a,
+ 0x4f, 0x49, 0x4e, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x4f, 0x49, 0x4e, 0x45,
+ 0x44, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e,
+ 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x22,
+ 0x57, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x72,
+ 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x17, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f,
+ 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61,
+ 0x64, 0x61, 0x74, 0x61, 0x32, 0x99, 0x0c, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x57, 0x72,
+ 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55,
+ 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x22, 0x43,
+ 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f,
+ 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x77, 0x72,
+ 0x69, 0x74, 0x65, 0x3a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12,
+ 0xac, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22,
+ 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x96,
+ 0x02, 0x0a, 0x0f, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e,
+ 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xaf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x22, 0x43,
+ 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f,
+ 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x70, 0x75,
+ 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x5e, 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9b, 0x02, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f,
+ 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xb2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x32, 0x62, 0x65,
+ 0x74, 0x61, 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, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a,
+ 0x01, 0x2a, 0xca, 0x41, 0x60, 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
+ 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
+ 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9b, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
+ 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0xb2,
+ 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
+ 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,
+ 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a,
+ 0xca, 0x41, 0x60, 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
+ 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e,
+ 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0xef, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73,
+ 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76,
+ 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0x86, 0x01, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 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, 0x63, 0x61,
+ 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0xca, 0x41,
+ 0x34, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x52, 0x65, 0x6a,
+ 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 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, 0xde, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
+ 0x65, 0x74, 0x61, 0x42, 0x15, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
+ 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
+ 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02,
+ 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32,
+ 0x62, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c,
+ 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75,
+ 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74,
+ 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_cloud_retail_v2beta_user_event_service_proto_rawDescOnce sync.Once
+ file_google_cloud_retail_v2beta_user_event_service_proto_rawDescData = file_google_cloud_retail_v2beta_user_event_service_proto_rawDesc
+)
+
+func file_google_cloud_retail_v2beta_user_event_service_proto_rawDescGZIP() []byte {
+ file_google_cloud_retail_v2beta_user_event_service_proto_rawDescOnce.Do(func() {
+ file_google_cloud_retail_v2beta_user_event_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_user_event_service_proto_rawDescData)
+ })
+ return file_google_cloud_retail_v2beta_user_event_service_proto_rawDescData
+}
+
+var file_google_cloud_retail_v2beta_user_event_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_google_cloud_retail_v2beta_user_event_service_proto_goTypes = []interface{}{
+ (RejoinUserEventsRequest_UserEventRejoinScope)(0), // 0: google.cloud.retail.v2beta.RejoinUserEventsRequest.UserEventRejoinScope
+ (*WriteUserEventRequest)(nil), // 1: google.cloud.retail.v2beta.WriteUserEventRequest
+ (*CollectUserEventRequest)(nil), // 2: google.cloud.retail.v2beta.CollectUserEventRequest
+ (*RejoinUserEventsRequest)(nil), // 3: google.cloud.retail.v2beta.RejoinUserEventsRequest
+ (*RejoinUserEventsResponse)(nil), // 4: google.cloud.retail.v2beta.RejoinUserEventsResponse
+ (*RejoinUserEventsMetadata)(nil), // 5: google.cloud.retail.v2beta.RejoinUserEventsMetadata
+ (*UserEvent)(nil), // 6: google.cloud.retail.v2beta.UserEvent
+ (*PurgeUserEventsRequest)(nil), // 7: google.cloud.retail.v2beta.PurgeUserEventsRequest
+ (*ImportUserEventsRequest)(nil), // 8: google.cloud.retail.v2beta.ImportUserEventsRequest
+ (*ExportUserEventsRequest)(nil), // 9: google.cloud.retail.v2beta.ExportUserEventsRequest
+ (*httpbody.HttpBody)(nil), // 10: google.api.HttpBody
+ (*longrunning.Operation)(nil), // 11: google.longrunning.Operation
+}
+var file_google_cloud_retail_v2beta_user_event_service_proto_depIdxs = []int32{
+ 6, // 0: google.cloud.retail.v2beta.WriteUserEventRequest.user_event:type_name -> google.cloud.retail.v2beta.UserEvent
+ 0, // 1: google.cloud.retail.v2beta.RejoinUserEventsRequest.user_event_rejoin_scope:type_name -> google.cloud.retail.v2beta.RejoinUserEventsRequest.UserEventRejoinScope
+ 1, // 2: google.cloud.retail.v2beta.UserEventService.WriteUserEvent:input_type -> google.cloud.retail.v2beta.WriteUserEventRequest
+ 2, // 3: google.cloud.retail.v2beta.UserEventService.CollectUserEvent:input_type -> google.cloud.retail.v2beta.CollectUserEventRequest
+ 7, // 4: google.cloud.retail.v2beta.UserEventService.PurgeUserEvents:input_type -> google.cloud.retail.v2beta.PurgeUserEventsRequest
+ 8, // 5: google.cloud.retail.v2beta.UserEventService.ImportUserEvents:input_type -> google.cloud.retail.v2beta.ImportUserEventsRequest
+ 9, // 6: google.cloud.retail.v2beta.UserEventService.ExportUserEvents:input_type -> google.cloud.retail.v2beta.ExportUserEventsRequest
+ 3, // 7: google.cloud.retail.v2beta.UserEventService.RejoinUserEvents:input_type -> google.cloud.retail.v2beta.RejoinUserEventsRequest
+ 6, // 8: google.cloud.retail.v2beta.UserEventService.WriteUserEvent:output_type -> google.cloud.retail.v2beta.UserEvent
+ 10, // 9: google.cloud.retail.v2beta.UserEventService.CollectUserEvent:output_type -> google.api.HttpBody
+ 11, // 10: google.cloud.retail.v2beta.UserEventService.PurgeUserEvents:output_type -> google.longrunning.Operation
+ 11, // 11: google.cloud.retail.v2beta.UserEventService.ImportUserEvents:output_type -> google.longrunning.Operation
+ 11, // 12: google.cloud.retail.v2beta.UserEventService.ExportUserEvents:output_type -> google.longrunning.Operation
+ 11, // 13: google.cloud.retail.v2beta.UserEventService.RejoinUserEvents:output_type -> google.longrunning.Operation
+ 8, // [8:14] is the sub-list for method output_type
+ 2, // [2:8] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_google_cloud_retail_v2beta_user_event_service_proto_init() }
+func file_google_cloud_retail_v2beta_user_event_service_proto_init() {
+ if File_google_cloud_retail_v2beta_user_event_service_proto != nil {
+ return
+ }
+ file_google_cloud_retail_v2beta_export_config_proto_init()
+ file_google_cloud_retail_v2beta_import_config_proto_init()
+ file_google_cloud_retail_v2beta_purge_config_proto_init()
+ file_google_cloud_retail_v2beta_user_event_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WriteUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CollectUserEventRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RejoinUserEventsMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_cloud_retail_v2beta_user_event_service_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_cloud_retail_v2beta_user_event_service_proto_goTypes,
+ DependencyIndexes: file_google_cloud_retail_v2beta_user_event_service_proto_depIdxs,
+ EnumInfos: file_google_cloud_retail_v2beta_user_event_service_proto_enumTypes,
+ MessageInfos: file_google_cloud_retail_v2beta_user_event_service_proto_msgTypes,
+ }.Build()
+ File_google_cloud_retail_v2beta_user_event_service_proto = out.File
+ file_google_cloud_retail_v2beta_user_event_service_proto_rawDesc = nil
+ file_google_cloud_retail_v2beta_user_event_service_proto_goTypes = nil
+ file_google_cloud_retail_v2beta_user_event_service_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// UserEventServiceClient is the client API for UserEventService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type UserEventServiceClient interface {
+ // Writes a single user event.
+ WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Export of user events.
+ //
+ // Operation.response is of type ExportResponse.
+ // Operation.metadata is of type ExportMetadata.
+ ExportUserEvents(ctx context.Context, in *ExportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type userEventServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewUserEventServiceClient(cc grpc.ClientConnInterface) UserEventServiceClient {
+ return &userEventServiceClient{cc}
+}
+
+func (c *userEventServiceClient) WriteUserEvent(ctx context.Context, in *WriteUserEventRequest, opts ...grpc.CallOption) (*UserEvent, error) {
+ out := new(UserEvent)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/WriteUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) CollectUserEvent(ctx context.Context, in *CollectUserEventRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) {
+ out := new(httpbody.HttpBody)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/CollectUserEvent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) PurgeUserEvents(ctx context.Context, in *PurgeUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/PurgeUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) ImportUserEvents(ctx context.Context, in *ImportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/ImportUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) ExportUserEvents(ctx context.Context, in *ExportUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/ExportUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *userEventServiceClient) RejoinUserEvents(ctx context.Context, in *RejoinUserEventsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.UserEventService/RejoinUserEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// UserEventServiceServer is the server API for UserEventService service.
+type UserEventServiceServer interface {
+ // Writes a single user event.
+ WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error)
+ // Writes a single user event from the browser. This uses a GET request to
+ // due to browser restriction of POST-ing to a 3rd party domain.
+ //
+ // This method is used only by the Recommendations AI JavaScript pixel and
+ // Google Tag Manager. Users should not call this method directly.
+ CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error)
+ // Deletes permanently all user events specified by the filter provided.
+ // Depending on the number of events specified by the filter, this operation
+ // could take hours or days to complete. To test a filter, use the list
+ // command first.
+ PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error)
+ // Bulk import of User events. Request processing might be
+ // synchronous. Events that already exist are skipped.
+ // Use this method for backfilling historical user events.
+ //
+ // Operation.response is of type ImportResponse. Note that it is
+ // possible for a subset of the items to be successfully inserted.
+ // Operation.metadata is of type ImportMetadata.
+ ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error)
+ // Export of user events.
+ //
+ // Operation.response is of type ExportResponse.
+ // Operation.metadata is of type ExportMetadata.
+ ExportUserEvents(context.Context, *ExportUserEventsRequest) (*longrunning.Operation, error)
+ // Triggers a user event rejoin operation with latest catalog data. Events
+ // will not be annotated with detailed catalog information if catalog item is
+ // missing at the time the user event is ingested, and these events are stored
+ // as unjoined events with a limited usage on training and serving. This API
+ // can be used to trigger a 'join' operation on specified events with latest
+ // version of catalog items. It can also be used to correct events joined with
+ // wrong catalog items.
+ RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedUserEventServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedUserEventServiceServer struct {
+}
+
+func (*UnimplementedUserEventServiceServer) WriteUserEvent(context.Context, *WriteUserEventRequest) (*UserEvent, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method WriteUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) CollectUserEvent(context.Context, *CollectUserEventRequest) (*httpbody.HttpBody, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CollectUserEvent not implemented")
+}
+func (*UnimplementedUserEventServiceServer) PurgeUserEvents(context.Context, *PurgeUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PurgeUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) ImportUserEvents(context.Context, *ImportUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ImportUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) ExportUserEvents(context.Context, *ExportUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ExportUserEvents not implemented")
+}
+func (*UnimplementedUserEventServiceServer) RejoinUserEvents(context.Context, *RejoinUserEventsRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RejoinUserEvents not implemented")
+}
+
+func RegisterUserEventServiceServer(s *grpc.Server, srv UserEventServiceServer) {
+ s.RegisterService(&_UserEventService_serviceDesc, srv)
+}
+
+func _UserEventService_WriteUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(WriteUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/WriteUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).WriteUserEvent(ctx, req.(*WriteUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_CollectUserEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CollectUserEventRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/CollectUserEvent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).CollectUserEvent(ctx, req.(*CollectUserEventRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_PurgeUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PurgeUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/PurgeUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).PurgeUserEvents(ctx, req.(*PurgeUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_ImportUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ImportUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/ImportUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).ImportUserEvents(ctx, req.(*ImportUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_ExportUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ExportUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).ExportUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/ExportUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).ExportUserEvents(ctx, req.(*ExportUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserEventService_RejoinUserEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RejoinUserEventsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.cloud.retail.v2beta.UserEventService/RejoinUserEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserEventServiceServer).RejoinUserEvents(ctx, req.(*RejoinUserEventsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _UserEventService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.cloud.retail.v2beta.UserEventService",
+ HandlerType: (*UserEventServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "WriteUserEvent",
+ Handler: _UserEventService_WriteUserEvent_Handler,
+ },
+ {
+ MethodName: "CollectUserEvent",
+ Handler: _UserEventService_CollectUserEvent_Handler,
+ },
+ {
+ MethodName: "PurgeUserEvents",
+ Handler: _UserEventService_PurgeUserEvents_Handler,
+ },
+ {
+ MethodName: "ImportUserEvents",
+ Handler: _UserEventService_ImportUserEvents_Handler,
+ },
+ {
+ MethodName: "ExportUserEvents",
+ Handler: _UserEventService_ExportUserEvents_Handler,
+ },
+ {
+ MethodName: "RejoinUserEvents",
+ Handler: _UserEventService_RejoinUserEvents_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/cloud/retail/v2beta/user_event_service.proto",
+}
diff --git a/googleapis/partner/aistreams/v1alpha1/aistreams.pb.go b/googleapis/partner/aistreams/v1alpha1/aistreams.pb.go
new file mode 100644
index 000000000..e4db5e2bc
--- /dev/null
+++ b/googleapis/partner/aistreams/v1alpha1/aistreams.pb.go
@@ -0,0 +1,2309 @@
+// Copyright 2020 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.25.0
+// protoc v3.13.0
+// source: google/partner/aistreams/v1alpha1/aistreams.proto
+
+package aistreams
+
+import (
+ context "context"
+ reflect "reflect"
+ sync "sync"
+
+ proto "github.com/golang/protobuf/proto"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ longrunning "google.golang.org/genproto/googleapis/longrunning"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+)
+
+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)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Cluster resource.
+type Cluster struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the cluster. The format of cluster is:
+ // projects//locations//clusters/.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Output only. The time at which this cluster was created.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Output only. The time at which this cluster was updated.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+ // Labels with user-defined metadata.
+ Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Output only. The certificate for creating the secure connection between the client and
+ // the AI Streams data plane.
+ Certificate string `protobuf:"bytes,5,opt,name=certificate,proto3" json:"certificate,omitempty"`
+ // Output only. The endpoint of the data plane cluster.
+ ServiceEndpoint string `protobuf:"bytes,6,opt,name=service_endpoint,json=serviceEndpoint,proto3" json:"service_endpoint,omitempty"`
+}
+
+func (x *Cluster) Reset() {
+ *x = Cluster{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Cluster) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Cluster) ProtoMessage() {}
+
+func (x *Cluster) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Cluster.ProtoReflect.Descriptor instead.
+func (*Cluster) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Cluster) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Cluster) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *Cluster) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+func (x *Cluster) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *Cluster) GetCertificate() string {
+ if x != nil {
+ return x.Certificate
+ }
+ return ""
+}
+
+func (x *Cluster) GetServiceEndpoint() string {
+ if x != nil {
+ return x.ServiceEndpoint
+ }
+ return ""
+}
+
+// Request message for 'ListClusters'.
+type ListClustersRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent that owns the collection of Clusters.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of Clusters to return.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // Page token received from a previous `ListClusters` call. Provide this to
+ // retrieve the subsequent page. When paginating, all other parameters
+ // provided to `ListClusters` must match the call that provided the page
+ // token.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // Filter request.
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+ // Order by fields for the result.
+ OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
+}
+
+func (x *ListClustersRequest) Reset() {
+ *x = ListClustersRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListClustersRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListClustersRequest) ProtoMessage() {}
+
+func (x *ListClustersRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListClustersRequest.ProtoReflect.Descriptor instead.
+func (*ListClustersRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListClustersRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListClustersRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListClustersRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *ListClustersRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *ListClustersRequest) GetOrderBy() string {
+ if x != nil {
+ return x.OrderBy
+ }
+ return ""
+}
+
+// Response message from 'ListClusters'.
+type ListClustersResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // List of clusters.
+ Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
+ // A token, which can be sent as `page_token` to retrieve the next page.
+ // If this field is omitted, there are no subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+ // Locations that could not be reached.
+ Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
+}
+
+func (x *ListClustersResponse) Reset() {
+ *x = ListClustersResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListClustersResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListClustersResponse) ProtoMessage() {}
+
+func (x *ListClustersResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListClustersResponse.ProtoReflect.Descriptor instead.
+func (*ListClustersResponse) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListClustersResponse) GetClusters() []*Cluster {
+ if x != nil {
+ return x.Clusters
+ }
+ return nil
+}
+
+func (x *ListClustersResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+func (x *ListClustersResponse) GetUnreachable() []string {
+ if x != nil {
+ return x.Unreachable
+ }
+ return nil
+}
+
+// Request message for 'GetCluster'.
+type GetClusterRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The name of the Cluster resource to get.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetClusterRequest) Reset() {
+ *x = GetClusterRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetClusterRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetClusterRequest) ProtoMessage() {}
+
+func (x *GetClusterRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetClusterRequest.ProtoReflect.Descriptor instead.
+func (*GetClusterRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *GetClusterRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for 'CreateCluster'.
+type CreateClusterRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent that owns the collection of Clusters.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The cluster identifier.
+ ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
+ // Required. The cluster resource to create.
+ Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and the
+ // request times out. If you make the request again with the same request ID,
+ // the server can check if original operation with the same request ID was
+ // received, and if so, will ignore the second request. This prevents clients
+ // from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *CreateClusterRequest) Reset() {
+ *x = CreateClusterRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateClusterRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateClusterRequest) ProtoMessage() {}
+
+func (x *CreateClusterRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateClusterRequest.ProtoReflect.Descriptor instead.
+func (*CreateClusterRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *CreateClusterRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CreateClusterRequest) GetClusterId() string {
+ if x != nil {
+ return x.ClusterId
+ }
+ return ""
+}
+
+func (x *CreateClusterRequest) GetCluster() *Cluster {
+ if x != nil {
+ return x.Cluster
+ }
+ return nil
+}
+
+func (x *CreateClusterRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Request message for 'UpdateCluster'.
+type UpdateClusterRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Field mask is used to specify the fields to be overwritten in the
+ // Cluster resource by the update.
+ // The fields specified in the update_mask are relative to the resource, not
+ // the full request. A field will be overwritten if it is in the mask. If the
+ // user does not provide a mask then all fields will be overwritten.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+ // Required. The Cluster resource to update.
+ Cluster *Cluster `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and the
+ // request times out. If you make the request again with the same request ID,
+ // the server can check if original operation with the same request ID was
+ // received, and if so, will ignore the second request. This prevents clients
+ // from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *UpdateClusterRequest) Reset() {
+ *x = UpdateClusterRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateClusterRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateClusterRequest) ProtoMessage() {}
+
+func (x *UpdateClusterRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateClusterRequest.ProtoReflect.Descriptor instead.
+func (*UpdateClusterRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *UpdateClusterRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+func (x *UpdateClusterRequest) GetCluster() *Cluster {
+ if x != nil {
+ return x.Cluster
+ }
+ return nil
+}
+
+func (x *UpdateClusterRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Request message for 'DeleteCluster'.
+type DeleteClusterRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The name of cluster to delete.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes after the first request.
+ //
+ // For example, consider a situation where you make an initial request and the
+ // request times out. If you make the request again with the same request ID,
+ // the server can check if original operation with the same request ID was
+ // received, and if so, will ignore the second request. This prevents clients
+ // from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *DeleteClusterRequest) Reset() {
+ *x = DeleteClusterRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteClusterRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteClusterRequest) ProtoMessage() {}
+
+func (x *DeleteClusterRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteClusterRequest.ProtoReflect.Descriptor instead.
+func (*DeleteClusterRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *DeleteClusterRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *DeleteClusterRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Stream resource.
+type Stream struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The name of the stream. The format for the full name is:
+ // projects//location//clusters//streams/.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Output only. The time at which this Stream was created.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Output only. The time at which this Stream was updated.
+ UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+ // The labels of the stream.
+ Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *Stream) Reset() {
+ *x = Stream{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Stream) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Stream) ProtoMessage() {}
+
+func (x *Stream) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Stream.ProtoReflect.Descriptor instead.
+func (*Stream) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *Stream) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Stream) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *Stream) GetUpdateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdateTime
+ }
+ return nil
+}
+
+func (x *Stream) GetLabels() map[string]string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+// Request message for 'ListStreams'.
+type ListStreamsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent that owns the collection of the Streams.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Maximum number of Streams to return.
+ PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // Page token received from a previous `ListStreams` call. Provide this to
+ // retrieve the subsequent page. When paginating, all other parameters
+ // provided to `ListClusters` must match the call that provided the page
+ // token.
+ PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+ // Filter request.
+ Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+ // Order by fields for the result.
+ OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
+}
+
+func (x *ListStreamsRequest) Reset() {
+ *x = ListStreamsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListStreamsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListStreamsRequest) ProtoMessage() {}
+
+func (x *ListStreamsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListStreamsRequest.ProtoReflect.Descriptor instead.
+func (*ListStreamsRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ListStreamsRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *ListStreamsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListStreamsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+func (x *ListStreamsRequest) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+
+func (x *ListStreamsRequest) GetOrderBy() string {
+ if x != nil {
+ return x.OrderBy
+ }
+ return ""
+}
+
+// Response message from 'ListStreams'.
+type ListStreamsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // List of the streams.
+ Streams []*Stream `protobuf:"bytes,1,rep,name=streams,proto3" json:"streams,omitempty"`
+ // A token, which can be sent as `page_token` to retrieve the next page.
+ // If this field is omitted, there are no subsequent pages.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+ // Locations that could not be reached.
+ Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
+}
+
+func (x *ListStreamsResponse) Reset() {
+ *x = ListStreamsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListStreamsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListStreamsResponse) ProtoMessage() {}
+
+func (x *ListStreamsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListStreamsResponse.ProtoReflect.Descriptor instead.
+func (*ListStreamsResponse) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ListStreamsResponse) GetStreams() []*Stream {
+ if x != nil {
+ return x.Streams
+ }
+ return nil
+}
+
+func (x *ListStreamsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+func (x *ListStreamsResponse) GetUnreachable() []string {
+ if x != nil {
+ return x.Unreachable
+ }
+ return nil
+}
+
+// Request message for 'GetStream'.
+type GetStreamRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The name of the stream.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetStreamRequest) Reset() {
+ *x = GetStreamRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetStreamRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetStreamRequest) ProtoMessage() {}
+
+func (x *GetStreamRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetStreamRequest.ProtoReflect.Descriptor instead.
+func (*GetStreamRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *GetStreamRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request message for 'CreateStream'.
+type CreateStreamRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The parent that owns the collection of streams.
+ Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+ // Required. The stream identifier.
+ StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
+ // Required. The stream to create.
+ Stream *Stream `protobuf:"bytes,3,opt,name=stream,proto3" json:"stream,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *CreateStreamRequest) Reset() {
+ *x = CreateStreamRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateStreamRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateStreamRequest) ProtoMessage() {}
+
+func (x *CreateStreamRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateStreamRequest.ProtoReflect.Descriptor instead.
+func (*CreateStreamRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *CreateStreamRequest) GetParent() string {
+ if x != nil {
+ return x.Parent
+ }
+ return ""
+}
+
+func (x *CreateStreamRequest) GetStreamId() string {
+ if x != nil {
+ return x.StreamId
+ }
+ return ""
+}
+
+func (x *CreateStreamRequest) GetStream() *Stream {
+ if x != nil {
+ return x.Stream
+ }
+ return nil
+}
+
+func (x *CreateStreamRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Request message for 'UpdateStream'.
+type UpdateStreamRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. Field mask is used to specify the fields to be overwritten in the
+ // Stream resource by the update.
+ // The fields specified in the update_mask are relative to the resource, not
+ // the full request. A field will be overwritten if it is in the mask. If the
+ // user does not provide a mask then all fields will be overwritten.
+ UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+ // Required. The stream resource to update.
+ Stream *Stream `protobuf:"bytes,2,opt,name=stream,proto3" json:"stream,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes since the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *UpdateStreamRequest) Reset() {
+ *x = UpdateStreamRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateStreamRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateStreamRequest) ProtoMessage() {}
+
+func (x *UpdateStreamRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateStreamRequest.ProtoReflect.Descriptor instead.
+func (*UpdateStreamRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UpdateStreamRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
+ if x != nil {
+ return x.UpdateMask
+ }
+ return nil
+}
+
+func (x *UpdateStreamRequest) GetStream() *Stream {
+ if x != nil {
+ return x.Stream
+ }
+ return nil
+}
+
+func (x *UpdateStreamRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Request message for 'DeleteStream'.
+type DeleteStreamRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Required. The name of the stream.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Optional. An optional request ID to identify requests. Specify a unique request ID
+ // so that if you must retry your request, the server will know to ignore
+ // the request if it has already been completed. The server will guarantee
+ // that for at least 60 minutes after the first request.
+ //
+ // For example, consider a situation where you make an initial request and t
+ // he request times out. If you make the request again with the same request
+ // ID, the server can check if original operation with the same request ID
+ // was received, and if so, will ignore the second request. This prevents
+ // clients from accidentally creating duplicate commitments.
+ //
+ // The request ID must be a valid UUID with the exception that zero UUID is
+ // not supported (00000000-0000-0000-0000-000000000000).
+ RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+}
+
+func (x *DeleteStreamRequest) Reset() {
+ *x = DeleteStreamRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteStreamRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteStreamRequest) ProtoMessage() {}
+
+func (x *DeleteStreamRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteStreamRequest.ProtoReflect.Descriptor instead.
+func (*DeleteStreamRequest) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *DeleteStreamRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *DeleteStreamRequest) GetRequestId() string {
+ if x != nil {
+ return x.RequestId
+ }
+ return ""
+}
+
+// Represents the metadata of the long-running operation.
+type OperationMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Output only. The time the operation was created.
+ CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+ // Output only. The time the operation finished running.
+ EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
+ // Output only. Server-defined resource path for the target of the operation.
+ Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
+ // Output only. Name of the verb executed by the operation.
+ Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"`
+ // Output only. Human-readable status of the operation, if any.
+ StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
+ // Output only. Identifies whether the user has requested cancellation
+ // of the operation. Operations that have successfully been cancelled
+ // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ // corresponding to `Code.CANCELLED`.
+ RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"`
+ // Output only. API version used to start the operation.
+ ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
+}
+
+func (x *OperationMetadata) Reset() {
+ *x = OperationMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OperationMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperationMetadata) ProtoMessage() {}
+
+func (x *OperationMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead.
+func (*OperationMetadata) Descriptor() ([]byte, []int) {
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreateTime
+ }
+ return nil
+}
+
+func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp {
+ if x != nil {
+ return x.EndTime
+ }
+ return nil
+}
+
+func (x *OperationMetadata) GetTarget() string {
+ if x != nil {
+ return x.Target
+ }
+ return ""
+}
+
+func (x *OperationMetadata) GetVerb() string {
+ if x != nil {
+ return x.Verb
+ }
+ return ""
+}
+
+func (x *OperationMetadata) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+func (x *OperationMetadata) GetRequestedCancellation() bool {
+ if x != nil {
+ return x.RequestedCancellation
+ }
+ return false
+}
+
+func (x *OperationMetadata) GetApiVersion() string {
+ if x != nil {
+ return x.ApiVersion
+ }
+ return ""
+}
+
+var File_google_partner_aistreams_v1alpha1_aistreams_proto protoreflect.FileDescriptor
+
+var file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDesc = []byte{
+ 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72,
+ 0x2f, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74,
+ 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 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, 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, 0x1a, 0x20,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0xe6, 0x03, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x02, 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, 0x03, 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, 0x4e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+ 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
+ 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x10,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x61, 0xea, 0x41, 0x5e, 0x0a, 0x20, 0x61, 0x69,
+ 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
+ 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x3a,
+ 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
+ 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x22, 0xc7, 0x01, 0x0a, 0x13, 0x4c,
+ 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
+ 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64,
+ 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64,
+ 0x65, 0x72, 0x42, 0x79, 0x22, 0xa8, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a,
+ 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72,
+ 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61,
+ 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+ 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a,
+ 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22,
+ 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x61, 0x69, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22,
+ 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x49, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72,
+ 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76,
+ 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42,
+ 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a,
+ 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
+ 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02,
+ 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x49, 0x0a, 0x07,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61,
+ 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01,
+ 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x14, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x61, 0x69, 0x73, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x9d, 0x03, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x03, 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, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x71, 0xea, 0x41, 0x6e, 0x0a, 0x1f, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41,
+ 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b,
+ 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
+ 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa4, 0x01,
+ 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
+ 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c,
+ 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68,
+ 0x61, 0x62, 0x6c, 0x65, 0x22, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f,
+ 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0,
+ 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0x20, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49,
+ 0x64, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e,
+ 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61,
+ 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x03, 0xe0, 0x41,
+ 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc3, 0x01,
+ 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12,
+ 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21,
+ 0x0a, 0x1f, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01,
+ 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x11,
+ 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x01, 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, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0x02, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
+ 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04,
+ 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
+ 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
+ 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63,
+ 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65,
+ 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a,
+ 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x32, 0xd0, 0x11, 0x0a, 0x09, 0x41, 0x49, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74,
+ 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0xda,
+ 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb1, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61,
+ 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe7, 0x01, 0x0a,
+ 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x37,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e,
+ 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 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, 0x7e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x32,
+ 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x73, 0x3a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0xda, 0x41, 0x19, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2c, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x1c, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xea, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x32, 0x3a, 0x2f, 0x76, 0x31, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0xda, 0x41,
+ 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x1c, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0xd7, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x6e, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 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, 0x12, 0xcb, 0x01,
+ 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x35, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61,
+ 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61,
+ 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e,
+ 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb8, 0x01, 0x0a, 0x09,
+ 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65,
+ 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e,
+ 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0xda,
+ 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xec, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x84,
+ 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x3a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xda, 0x41, 0x17,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xee, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x86, 0x01,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x32, 0x43, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a,
+ 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x73, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0xda, 0x41, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xdf, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x78,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 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, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x1a, 0x4c, 0xca, 0x41, 0x18, 0x61, 0x69, 0x73,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 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, 0x88, 0x01, 0x0a, 0x25, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x2e, 0x61, 0x69,
+ 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
+ 0x42, 0x0e, 0x41, 0x49, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f,
+ 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65,
+ 0x72, 0x2f, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x31, 0x3b, 0x61, 0x69, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0xf8, 0x01,
+ 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescOnce sync.Once
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescData = file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDesc
+)
+
+func file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescGZIP() []byte {
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescOnce.Do(func() {
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescData)
+ })
+ return file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDescData
+}
+
+var file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
+var file_google_partner_aistreams_v1alpha1_aistreams_proto_goTypes = []interface{}{
+ (*Cluster)(nil), // 0: google.partner.aistreams.v1alpha1.Cluster
+ (*ListClustersRequest)(nil), // 1: google.partner.aistreams.v1alpha1.ListClustersRequest
+ (*ListClustersResponse)(nil), // 2: google.partner.aistreams.v1alpha1.ListClustersResponse
+ (*GetClusterRequest)(nil), // 3: google.partner.aistreams.v1alpha1.GetClusterRequest
+ (*CreateClusterRequest)(nil), // 4: google.partner.aistreams.v1alpha1.CreateClusterRequest
+ (*UpdateClusterRequest)(nil), // 5: google.partner.aistreams.v1alpha1.UpdateClusterRequest
+ (*DeleteClusterRequest)(nil), // 6: google.partner.aistreams.v1alpha1.DeleteClusterRequest
+ (*Stream)(nil), // 7: google.partner.aistreams.v1alpha1.Stream
+ (*ListStreamsRequest)(nil), // 8: google.partner.aistreams.v1alpha1.ListStreamsRequest
+ (*ListStreamsResponse)(nil), // 9: google.partner.aistreams.v1alpha1.ListStreamsResponse
+ (*GetStreamRequest)(nil), // 10: google.partner.aistreams.v1alpha1.GetStreamRequest
+ (*CreateStreamRequest)(nil), // 11: google.partner.aistreams.v1alpha1.CreateStreamRequest
+ (*UpdateStreamRequest)(nil), // 12: google.partner.aistreams.v1alpha1.UpdateStreamRequest
+ (*DeleteStreamRequest)(nil), // 13: google.partner.aistreams.v1alpha1.DeleteStreamRequest
+ (*OperationMetadata)(nil), // 14: google.partner.aistreams.v1alpha1.OperationMetadata
+ nil, // 15: google.partner.aistreams.v1alpha1.Cluster.LabelsEntry
+ nil, // 16: google.partner.aistreams.v1alpha1.Stream.LabelsEntry
+ (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
+ (*fieldmaskpb.FieldMask)(nil), // 18: google.protobuf.FieldMask
+ (*longrunning.Operation)(nil), // 19: google.longrunning.Operation
+}
+var file_google_partner_aistreams_v1alpha1_aistreams_proto_depIdxs = []int32{
+ 17, // 0: google.partner.aistreams.v1alpha1.Cluster.create_time:type_name -> google.protobuf.Timestamp
+ 17, // 1: google.partner.aistreams.v1alpha1.Cluster.update_time:type_name -> google.protobuf.Timestamp
+ 15, // 2: google.partner.aistreams.v1alpha1.Cluster.labels:type_name -> google.partner.aistreams.v1alpha1.Cluster.LabelsEntry
+ 0, // 3: google.partner.aistreams.v1alpha1.ListClustersResponse.clusters:type_name -> google.partner.aistreams.v1alpha1.Cluster
+ 0, // 4: google.partner.aistreams.v1alpha1.CreateClusterRequest.cluster:type_name -> google.partner.aistreams.v1alpha1.Cluster
+ 18, // 5: google.partner.aistreams.v1alpha1.UpdateClusterRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 0, // 6: google.partner.aistreams.v1alpha1.UpdateClusterRequest.cluster:type_name -> google.partner.aistreams.v1alpha1.Cluster
+ 17, // 7: google.partner.aistreams.v1alpha1.Stream.create_time:type_name -> google.protobuf.Timestamp
+ 17, // 8: google.partner.aistreams.v1alpha1.Stream.update_time:type_name -> google.protobuf.Timestamp
+ 16, // 9: google.partner.aistreams.v1alpha1.Stream.labels:type_name -> google.partner.aistreams.v1alpha1.Stream.LabelsEntry
+ 7, // 10: google.partner.aistreams.v1alpha1.ListStreamsResponse.streams:type_name -> google.partner.aistreams.v1alpha1.Stream
+ 7, // 11: google.partner.aistreams.v1alpha1.CreateStreamRequest.stream:type_name -> google.partner.aistreams.v1alpha1.Stream
+ 18, // 12: google.partner.aistreams.v1alpha1.UpdateStreamRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 7, // 13: google.partner.aistreams.v1alpha1.UpdateStreamRequest.stream:type_name -> google.partner.aistreams.v1alpha1.Stream
+ 17, // 14: google.partner.aistreams.v1alpha1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp
+ 17, // 15: google.partner.aistreams.v1alpha1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp
+ 1, // 16: google.partner.aistreams.v1alpha1.AIStreams.ListClusters:input_type -> google.partner.aistreams.v1alpha1.ListClustersRequest
+ 3, // 17: google.partner.aistreams.v1alpha1.AIStreams.GetCluster:input_type -> google.partner.aistreams.v1alpha1.GetClusterRequest
+ 4, // 18: google.partner.aistreams.v1alpha1.AIStreams.CreateCluster:input_type -> google.partner.aistreams.v1alpha1.CreateClusterRequest
+ 5, // 19: google.partner.aistreams.v1alpha1.AIStreams.UpdateCluster:input_type -> google.partner.aistreams.v1alpha1.UpdateClusterRequest
+ 6, // 20: google.partner.aistreams.v1alpha1.AIStreams.DeleteCluster:input_type -> google.partner.aistreams.v1alpha1.DeleteClusterRequest
+ 8, // 21: google.partner.aistreams.v1alpha1.AIStreams.ListStreams:input_type -> google.partner.aistreams.v1alpha1.ListStreamsRequest
+ 10, // 22: google.partner.aistreams.v1alpha1.AIStreams.GetStream:input_type -> google.partner.aistreams.v1alpha1.GetStreamRequest
+ 11, // 23: google.partner.aistreams.v1alpha1.AIStreams.CreateStream:input_type -> google.partner.aistreams.v1alpha1.CreateStreamRequest
+ 12, // 24: google.partner.aistreams.v1alpha1.AIStreams.UpdateStream:input_type -> google.partner.aistreams.v1alpha1.UpdateStreamRequest
+ 13, // 25: google.partner.aistreams.v1alpha1.AIStreams.DeleteStream:input_type -> google.partner.aistreams.v1alpha1.DeleteStreamRequest
+ 2, // 26: google.partner.aistreams.v1alpha1.AIStreams.ListClusters:output_type -> google.partner.aistreams.v1alpha1.ListClustersResponse
+ 0, // 27: google.partner.aistreams.v1alpha1.AIStreams.GetCluster:output_type -> google.partner.aistreams.v1alpha1.Cluster
+ 19, // 28: google.partner.aistreams.v1alpha1.AIStreams.CreateCluster:output_type -> google.longrunning.Operation
+ 19, // 29: google.partner.aistreams.v1alpha1.AIStreams.UpdateCluster:output_type -> google.longrunning.Operation
+ 19, // 30: google.partner.aistreams.v1alpha1.AIStreams.DeleteCluster:output_type -> google.longrunning.Operation
+ 9, // 31: google.partner.aistreams.v1alpha1.AIStreams.ListStreams:output_type -> google.partner.aistreams.v1alpha1.ListStreamsResponse
+ 7, // 32: google.partner.aistreams.v1alpha1.AIStreams.GetStream:output_type -> google.partner.aistreams.v1alpha1.Stream
+ 19, // 33: google.partner.aistreams.v1alpha1.AIStreams.CreateStream:output_type -> google.longrunning.Operation
+ 19, // 34: google.partner.aistreams.v1alpha1.AIStreams.UpdateStream:output_type -> google.longrunning.Operation
+ 19, // 35: google.partner.aistreams.v1alpha1.AIStreams.DeleteStream:output_type -> google.longrunning.Operation
+ 26, // [26:36] is the sub-list for method output_type
+ 16, // [16:26] is the sub-list for method input_type
+ 16, // [16:16] is the sub-list for extension type_name
+ 16, // [16:16] is the sub-list for extension extendee
+ 0, // [0:16] is the sub-list for field type_name
+}
+
+func init() { file_google_partner_aistreams_v1alpha1_aistreams_proto_init() }
+func file_google_partner_aistreams_v1alpha1_aistreams_proto_init() {
+ if File_google_partner_aistreams_v1alpha1_aistreams_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Cluster); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListClustersRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListClustersResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetClusterRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateClusterRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateClusterRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteClusterRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Stream); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListStreamsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListStreamsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetStreamRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateStreamRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateStreamRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteStreamRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OperationMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 17,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_google_partner_aistreams_v1alpha1_aistreams_proto_goTypes,
+ DependencyIndexes: file_google_partner_aistreams_v1alpha1_aistreams_proto_depIdxs,
+ MessageInfos: file_google_partner_aistreams_v1alpha1_aistreams_proto_msgTypes,
+ }.Build()
+ File_google_partner_aistreams_v1alpha1_aistreams_proto = out.File
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_rawDesc = nil
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_goTypes = nil
+ file_google_partner_aistreams_v1alpha1_aistreams_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// AIStreamsClient is the client API for AIStreams service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type AIStreamsClient interface {
+ // Lists Clusters in a given project and location.
+ ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error)
+ // Gets details of a single Cluster.
+ GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error)
+ // Creates a new Cluster in a given project and location.
+ CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Updates the parameters of a single Cluster.
+ UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Deletes a single Cluster.
+ DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Lists Streams in a given project, location and cluster.
+ ListStreams(ctx context.Context, in *ListStreamsRequest, opts ...grpc.CallOption) (*ListStreamsResponse, error)
+ // Gets details of a single Stream.
+ GetStream(ctx context.Context, in *GetStreamRequest, opts ...grpc.CallOption) (*Stream, error)
+ // Creates a new Stream in a given project and location.
+ CreateStream(ctx context.Context, in *CreateStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Updates the parameters of a single Stream.
+ UpdateStream(ctx context.Context, in *UpdateStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+ // Deletes a single Stream.
+ DeleteStream(ctx context.Context, in *DeleteStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type aIStreamsClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewAIStreamsClient(cc grpc.ClientConnInterface) AIStreamsClient {
+ return &aIStreamsClient{cc}
+}
+
+func (c *aIStreamsClient) ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error) {
+ out := new(ListClustersResponse)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/ListClusters", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error) {
+ out := new(Cluster)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/GetCluster", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/CreateCluster", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/UpdateCluster", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/DeleteCluster", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) ListStreams(ctx context.Context, in *ListStreamsRequest, opts ...grpc.CallOption) (*ListStreamsResponse, error) {
+ out := new(ListStreamsResponse)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/ListStreams", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) GetStream(ctx context.Context, in *GetStreamRequest, opts ...grpc.CallOption) (*Stream, error) {
+ out := new(Stream)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/GetStream", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) CreateStream(ctx context.Context, in *CreateStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/CreateStream", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) UpdateStream(ctx context.Context, in *UpdateStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/UpdateStream", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *aIStreamsClient) DeleteStream(ctx context.Context, in *DeleteStreamRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+ out := new(longrunning.Operation)
+ err := c.cc.Invoke(ctx, "/google.partner.aistreams.v1alpha1.AIStreams/DeleteStream", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// AIStreamsServer is the server API for AIStreams service.
+type AIStreamsServer interface {
+ // Lists Clusters in a given project and location.
+ ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error)
+ // Gets details of a single Cluster.
+ GetCluster(context.Context, *GetClusterRequest) (*Cluster, error)
+ // Creates a new Cluster in a given project and location.
+ CreateCluster(context.Context, *CreateClusterRequest) (*longrunning.Operation, error)
+ // Updates the parameters of a single Cluster.
+ UpdateCluster(context.Context, *UpdateClusterRequest) (*longrunning.Operation, error)
+ // Deletes a single Cluster.
+ DeleteCluster(context.Context, *DeleteClusterRequest) (*longrunning.Operation, error)
+ // Lists Streams in a given project, location and cluster.
+ ListStreams(context.Context, *ListStreamsRequest) (*ListStreamsResponse, error)
+ // Gets details of a single Stream.
+ GetStream(context.Context, *GetStreamRequest) (*Stream, error)
+ // Creates a new Stream in a given project and location.
+ CreateStream(context.Context, *CreateStreamRequest) (*longrunning.Operation, error)
+ // Updates the parameters of a single Stream.
+ UpdateStream(context.Context, *UpdateStreamRequest) (*longrunning.Operation, error)
+ // Deletes a single Stream.
+ DeleteStream(context.Context, *DeleteStreamRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedAIStreamsServer can be embedded to have forward compatible implementations.
+type UnimplementedAIStreamsServer struct {
+}
+
+func (*UnimplementedAIStreamsServer) ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListClusters not implemented")
+}
+func (*UnimplementedAIStreamsServer) GetCluster(context.Context, *GetClusterRequest) (*Cluster, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetCluster not implemented")
+}
+func (*UnimplementedAIStreamsServer) CreateCluster(context.Context, *CreateClusterRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateCluster not implemented")
+}
+func (*UnimplementedAIStreamsServer) UpdateCluster(context.Context, *UpdateClusterRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateCluster not implemented")
+}
+func (*UnimplementedAIStreamsServer) DeleteCluster(context.Context, *DeleteClusterRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteCluster not implemented")
+}
+func (*UnimplementedAIStreamsServer) ListStreams(context.Context, *ListStreamsRequest) (*ListStreamsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListStreams not implemented")
+}
+func (*UnimplementedAIStreamsServer) GetStream(context.Context, *GetStreamRequest) (*Stream, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetStream not implemented")
+}
+func (*UnimplementedAIStreamsServer) CreateStream(context.Context, *CreateStreamRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateStream not implemented")
+}
+func (*UnimplementedAIStreamsServer) UpdateStream(context.Context, *UpdateStreamRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateStream not implemented")
+}
+func (*UnimplementedAIStreamsServer) DeleteStream(context.Context, *DeleteStreamRequest) (*longrunning.Operation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteStream not implemented")
+}
+
+func RegisterAIStreamsServer(s *grpc.Server, srv AIStreamsServer) {
+ s.RegisterService(&_AIStreams_serviceDesc, srv)
+}
+
+func _AIStreams_ListClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListClustersRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).ListClusters(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/ListClusters",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).ListClusters(ctx, req.(*ListClustersRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_GetCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetClusterRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).GetCluster(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/GetCluster",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).GetCluster(ctx, req.(*GetClusterRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_CreateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateClusterRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).CreateCluster(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/CreateCluster",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).CreateCluster(ctx, req.(*CreateClusterRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_UpdateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateClusterRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).UpdateCluster(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/UpdateCluster",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).UpdateCluster(ctx, req.(*UpdateClusterRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_DeleteCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteClusterRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).DeleteCluster(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/DeleteCluster",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).DeleteCluster(ctx, req.(*DeleteClusterRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_ListStreams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListStreamsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).ListStreams(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/ListStreams",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).ListStreams(ctx, req.(*ListStreamsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_GetStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetStreamRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).GetStream(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/GetStream",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).GetStream(ctx, req.(*GetStreamRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_CreateStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateStreamRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).CreateStream(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/CreateStream",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).CreateStream(ctx, req.(*CreateStreamRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_UpdateStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateStreamRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).UpdateStream(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/UpdateStream",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).UpdateStream(ctx, req.(*UpdateStreamRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _AIStreams_DeleteStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteStreamRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(AIStreamsServer).DeleteStream(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/google.partner.aistreams.v1alpha1.AIStreams/DeleteStream",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(AIStreamsServer).DeleteStream(ctx, req.(*DeleteStreamRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _AIStreams_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "google.partner.aistreams.v1alpha1.AIStreams",
+ HandlerType: (*AIStreamsServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListClusters",
+ Handler: _AIStreams_ListClusters_Handler,
+ },
+ {
+ MethodName: "GetCluster",
+ Handler: _AIStreams_GetCluster_Handler,
+ },
+ {
+ MethodName: "CreateCluster",
+ Handler: _AIStreams_CreateCluster_Handler,
+ },
+ {
+ MethodName: "UpdateCluster",
+ Handler: _AIStreams_UpdateCluster_Handler,
+ },
+ {
+ MethodName: "DeleteCluster",
+ Handler: _AIStreams_DeleteCluster_Handler,
+ },
+ {
+ MethodName: "ListStreams",
+ Handler: _AIStreams_ListStreams_Handler,
+ },
+ {
+ MethodName: "GetStream",
+ Handler: _AIStreams_GetStream_Handler,
+ },
+ {
+ MethodName: "CreateStream",
+ Handler: _AIStreams_CreateStream_Handler,
+ },
+ {
+ MethodName: "UpdateStream",
+ Handler: _AIStreams_UpdateStream_Handler,
+ },
+ {
+ MethodName: "DeleteStream",
+ Handler: _AIStreams_DeleteStream_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "google/partner/aistreams/v1alpha1/aistreams.proto",
+}