xref: /aosp_15_r20/external/googleapis/google/shopping/type/types.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.shopping.type;
18
19option csharp_namespace = "Google.Shopping.Type";
20option go_package = "cloud.google.com/go/shopping/type/typepb;typepb";
21option java_multiple_files = true;
22option java_outer_classname = "TypesProto";
23option java_package = "com.google.shopping.type";
24
25// The price represented as a number and currency.
26message Price {
27  // The price represented as a number in micros (1 million micros is an
28  // equivalent to one's currency standard unit, for example, 1 USD = 1000000
29  // micros).
30  // This field can also be set as infinity by setting to -1.
31  // This field only support -1 and positive value.
32  optional int64 amount_micros = 1;
33
34  // The currency of the price using three-letter acronyms according to [ISO
35  // 4217](http://en.wikipedia.org/wiki/ISO_4217).
36  optional string currency_code = 2;
37}
38
39// A message that represents custom attributes. Exactly one of `value` or
40// `group_values` must not be empty.
41message CustomAttribute {
42  // The name of the attribute.
43  optional string name = 1;
44
45  // The value of the attribute. If `value` is not empty, `group_values` must be
46  // empty.
47  optional string value = 2;
48
49  // Subattributes within this attribute group.  If
50  // `group_values` is not empty, `value` must be empty.
51  repeated CustomAttribute group_values = 3;
52}
53
54// Destinations available for a product.
55//
56// Destinations are used in Merchant Center to allow you to control where the
57// products from your data feed should be displayed.
58//
59message Destination {
60  // Destination values.
61  enum DestinationEnum {
62    // Not specified.
63    DESTINATION_ENUM_UNSPECIFIED = 0;
64
65    // [Shopping ads](https://support.google.com/google-ads/answer/2454022).
66    SHOPPING_ADS = 1;
67
68    // [Display ads](https://support.google.com/merchants/answer/6069387).
69    DISPLAY_ADS = 2;
70
71    // [Local inventory
72    // ads](https://support.google.com/merchants/answer/3057972).
73    LOCAL_INVENTORY_ADS = 3;
74
75    // [Free listings](https://support.google.com/merchants/answer/9199328).
76    FREE_LISTINGS = 4;
77
78    // [Free local product
79    // listings](https://support.google.com/merchants/answer/9825611).
80    FREE_LOCAL_LISTINGS = 5;
81
82    // [YouTube Shopping](https://support.google.com/merchants/answer/12362804).
83    YOUTUBE_SHOPPING = 6;
84  }
85}
86
87// Reporting contexts that your account and product issues apply to.
88//
89// Reporting contexts are groups of surfaces and formats for product results on
90// Google. They can represent the entire destination (for example, [Shopping
91// ads](https://support.google.com/merchants/answer/6149970)) or a subset of
92// formats within a destination (for example, [Demand Gen
93// ads](https://support.google.com/merchants/answer/13389785)).
94//
95message ReportingContext {
96  // Reporting context values.
97  enum ReportingContextEnum {
98    // Not specified.
99    REPORTING_CONTEXT_ENUM_UNSPECIFIED = 0;
100
101    // [Shopping ads](https://support.google.com/merchants/answer/6149970).
102    SHOPPING_ADS = 1;
103
104    // Deprecated:  Use `DEMAND_GEN_ADS` instead.
105    // [Discovery and Demand Gen
106    // ads](https://support.google.com/merchants/answer/13389785).
107    DISCOVERY_ADS = 2 [deprecated = true];
108
109    // [Demand Gen ads](https://support.google.com/merchants/answer/13389785).
110    DEMAND_GEN_ADS = 13;
111
112    // [Demand Gen ads on Discover
113    // surface](https://support.google.com/merchants/answer/13389785).
114    DEMAND_GEN_ADS_DISCOVER_SURFACE = 14;
115
116    // [Video ads](https://support.google.com/google-ads/answer/6340491).
117    VIDEO_ADS = 3;
118
119    // [Display ads](https://support.google.com/merchants/answer/6069387).
120    DISPLAY_ADS = 4;
121
122    // [Local inventory
123    // ads](https://support.google.com/merchants/answer/3271956).
124    LOCAL_INVENTORY_ADS = 5;
125
126    // [Vehicle inventory
127    // ads](https://support.google.com/merchants/answer/11544533).
128    VEHICLE_INVENTORY_ADS = 6;
129
130    // [Free product
131    // listings](https://support.google.com/merchants/answer/9199328).
132    FREE_LISTINGS = 7;
133
134    // [Free local product
135    // listings](https://support.google.com/merchants/answer/9825611).
136    FREE_LOCAL_LISTINGS = 8;
137
138    // [Free local vehicle
139    // listings](https://support.google.com/merchants/answer/11544533).
140    FREE_LOCAL_VEHICLE_LISTINGS = 9;
141
142    // [YouTube
143    // Shopping](https://support.google.com/merchants/answer/13478370).
144    YOUTUBE_SHOPPING = 10;
145
146    // [Cloud retail](https://cloud.google.com/solutions/retail).
147    CLOUD_RETAIL = 11;
148
149    // [Local cloud retail](https://cloud.google.com/solutions/retail).
150    LOCAL_CLOUD_RETAIL = 12;
151  }
152}
153
154// [Channel](https://support.google.com/merchants/answer/7361332) of a product.
155//
156// Channel is used to distinguish between online and local products.
157message Channel {
158  // Channel values.
159  enum ChannelEnum {
160    // Not specified.
161    CHANNEL_ENUM_UNSPECIFIED = 0;
162
163    // Online product.
164    ONLINE = 1;
165
166    // Local product.
167    LOCAL = 2;
168  }
169}
170