googleapis/google/cloud/retail/v2alpha/common.proto

162 lines
6.4 KiB
Protocol Buffer

// 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.
syntax = "proto3";
package google.cloud.retail.v2alpha;
import "google/api/annotations.proto";
import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.Retail.V2Alpha";
option go_package = "google.golang.org/genproto/googleapis/cloud/retail/v2alpha;retail";
option java_multiple_files = true;
option java_outer_classname = "CommonProto";
option java_package = "com.google.cloud.retail.v2alpha";
option objc_class_prefix = "RETAIL";
option php_namespace = "Google\\Cloud\\Retail\\V2alpha";
option ruby_package = "Google::Cloud::Retail::V2alpha";
// A custom attribute that is not explicitly modeled in
// [Product][google.cloud.retail.v2alpha.Product]].
message CustomAttribute {
// 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 characters.
// 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, an INVALID_ARGUMENT error is returned.
repeated string text = 1;
// 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, an INVALID_ARGUMENT error is returned.
repeated double numbers = 2;
}
// [Product][google.cloud.retail.v2alpha.Product] thumbnail/detail image.
message Image {
// Required. URI of the image.
//
// This field must be a valid UTF-8 encoded URI with a length limit of 5,000
// characters. 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](https://schema.org/image).
string uri = 1 [(google.api.field_behavior) = REQUIRED];
// Height of the image in number of pixels.
//
// This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
// returned.
int32 height = 2;
// Width of the image in number of pixels.
//
// This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
// returned.
int32 width = 3;
}
// The price information of a [Product][google.cloud.retail.v2alpha.Product].
message PriceInfo {
// 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.
string currency_code = 1;
// 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).
float price = 2;
// Price of the product without any discount. If zero, by default set to be
// the [price][google.cloud.retail.v2alpha.PriceInfo.price].
float original_price = 3;
// 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).
float cost = 4;
}
// Information of an end user.
message UserInfo {
// 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
// characters. Otherwise, an INVALID_ARGUMENT error is returned.
string user_id = 1;
// 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.
string ip_address = 2;
// User agent as included in the HTTP header.
//
// The field must be a UTF-8 encoded string with a length limit of 1,000
// characters. 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.
string user_agent = 3;
// 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].
bool direct_user_request = 4;
}