google-shopping-merchant-conversions-v1 0.a → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/client.rb +956 -0
  6. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/credentials.rb +49 -0
  7. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/paths.rb +66 -0
  8. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/rest/client.rb +888 -0
  9. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/rest/service_stub.rb +452 -0
  10. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service/rest.rb +54 -0
  11. data/lib/google/shopping/merchant/conversions/v1/conversion_sources_service.rb +57 -0
  12. data/lib/google/shopping/merchant/conversions/v1/conversionsources_pb.rb +68 -0
  13. data/lib/google/shopping/merchant/conversions/v1/conversionsources_services_pb.rb +62 -0
  14. data/lib/google/shopping/merchant/conversions/v1/rest.rb +39 -0
  15. data/lib/google/shopping/merchant/conversions/v1/version.rb +7 -2
  16. data/lib/google/shopping/merchant/conversions/v1.rb +47 -0
  17. data/lib/google-shopping-merchant-conversions-v1.rb +21 -0
  18. data/proto_docs/README.md +4 -0
  19. data/proto_docs/google/api/client.rb +473 -0
  20. data/proto_docs/google/api/field_behavior.rb +85 -0
  21. data/proto_docs/google/api/launch_stage.rb +71 -0
  22. data/proto_docs/google/api/resource.rb +227 -0
  23. data/proto_docs/google/protobuf/duration.rb +98 -0
  24. data/proto_docs/google/protobuf/empty.rb +34 -0
  25. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  26. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  27. data/proto_docs/google/shopping/merchant/conversions/v1/conversionsources.rb +289 -0
  28. metadata +72 -9
@@ -0,0 +1,229 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # `FieldMask` represents a set of symbolic field paths, for example:
23
+ #
24
+ # paths: "f.a"
25
+ # paths: "f.b.d"
26
+ #
27
+ # Here `f` represents a field in some root message, `a` and `b`
28
+ # fields in the message found in `f`, and `d` a field found in the
29
+ # message in `f.b`.
30
+ #
31
+ # Field masks are used to specify a subset of fields that should be
32
+ # returned by a get operation or modified by an update operation.
33
+ # Field masks also have a custom JSON encoding (see below).
34
+ #
35
+ # # Field Masks in Projections
36
+ #
37
+ # When used in the context of a projection, a response message or
38
+ # sub-message is filtered by the API to only contain those fields as
39
+ # specified in the mask. For example, if the mask in the previous
40
+ # example is applied to a response message as follows:
41
+ #
42
+ # f {
43
+ # a : 22
44
+ # b {
45
+ # d : 1
46
+ # x : 2
47
+ # }
48
+ # y : 13
49
+ # }
50
+ # z: 8
51
+ #
52
+ # The result will not contain specific values for fields x,y and z
53
+ # (their value will be set to the default, and omitted in proto text
54
+ # output):
55
+ #
56
+ #
57
+ # f {
58
+ # a : 22
59
+ # b {
60
+ # d : 1
61
+ # }
62
+ # }
63
+ #
64
+ # A repeated field is not allowed except at the last position of a
65
+ # paths string.
66
+ #
67
+ # If a FieldMask object is not present in a get operation, the
68
+ # operation applies to all fields (as if a FieldMask of all fields
69
+ # had been specified).
70
+ #
71
+ # Note that a field mask does not necessarily apply to the
72
+ # top-level response message. In case of a REST get operation, the
73
+ # field mask applies directly to the response, but in case of a REST
74
+ # list operation, the mask instead applies to each individual message
75
+ # in the returned resource list. In case of a REST custom method,
76
+ # other definitions may be used. Where the mask applies will be
77
+ # clearly documented together with its declaration in the API. In
78
+ # any case, the effect on the returned resource/resources is required
79
+ # behavior for APIs.
80
+ #
81
+ # # Field Masks in Update Operations
82
+ #
83
+ # A field mask in update operations specifies which fields of the
84
+ # targeted resource are going to be updated. The API is required
85
+ # to only change the values of the fields as specified in the mask
86
+ # and leave the others untouched. If a resource is passed in to
87
+ # describe the updated values, the API ignores the values of all
88
+ # fields not covered by the mask.
89
+ #
90
+ # If a repeated field is specified for an update operation, new values will
91
+ # be appended to the existing repeated field in the target resource. Note that
92
+ # a repeated field is only allowed in the last position of a `paths` string.
93
+ #
94
+ # If a sub-message is specified in the last position of the field mask for an
95
+ # update operation, then new value will be merged into the existing sub-message
96
+ # in the target resource.
97
+ #
98
+ # For example, given the target message:
99
+ #
100
+ # f {
101
+ # b {
102
+ # d: 1
103
+ # x: 2
104
+ # }
105
+ # c: [1]
106
+ # }
107
+ #
108
+ # And an update message:
109
+ #
110
+ # f {
111
+ # b {
112
+ # d: 10
113
+ # }
114
+ # c: [2]
115
+ # }
116
+ #
117
+ # then if the field mask is:
118
+ #
119
+ # paths: ["f.b", "f.c"]
120
+ #
121
+ # then the result will be:
122
+ #
123
+ # f {
124
+ # b {
125
+ # d: 10
126
+ # x: 2
127
+ # }
128
+ # c: [1, 2]
129
+ # }
130
+ #
131
+ # An implementation may provide options to override this default behavior for
132
+ # repeated and message fields.
133
+ #
134
+ # In order to reset a field's value to the default, the field must
135
+ # be in the mask and set to the default value in the provided resource.
136
+ # Hence, in order to reset all fields of a resource, provide a default
137
+ # instance of the resource and set all fields in the mask, or do
138
+ # not provide a mask as described below.
139
+ #
140
+ # If a field mask is not present on update, the operation applies to
141
+ # all fields (as if a field mask of all fields has been specified).
142
+ # Note that in the presence of schema evolution, this may mean that
143
+ # fields the client does not know and has therefore not filled into
144
+ # the request will be reset to their default. If this is unwanted
145
+ # behavior, a specific service may require a client to always specify
146
+ # a field mask, producing an error if not.
147
+ #
148
+ # As with get operations, the location of the resource which
149
+ # describes the updated values in the request message depends on the
150
+ # operation kind. In any case, the effect of the field mask is
151
+ # required to be honored by the API.
152
+ #
153
+ # ## Considerations for HTTP REST
154
+ #
155
+ # The HTTP kind of an update operation which uses a field mask must
156
+ # be set to PATCH instead of PUT in order to satisfy HTTP semantics
157
+ # (PUT must only be used for full updates).
158
+ #
159
+ # # JSON Encoding of Field Masks
160
+ #
161
+ # In JSON, a field mask is encoded as a single string where paths are
162
+ # separated by a comma. Fields name in each path are converted
163
+ # to/from lower-camel naming conventions.
164
+ #
165
+ # As an example, consider the following message declarations:
166
+ #
167
+ # message Profile {
168
+ # User user = 1;
169
+ # Photo photo = 2;
170
+ # }
171
+ # message User {
172
+ # string display_name = 1;
173
+ # string address = 2;
174
+ # }
175
+ #
176
+ # In proto a field mask for `Profile` may look as such:
177
+ #
178
+ # mask {
179
+ # paths: "user.display_name"
180
+ # paths: "photo"
181
+ # }
182
+ #
183
+ # In JSON, the same mask is represented as below:
184
+ #
185
+ # {
186
+ # mask: "user.displayName,photo"
187
+ # }
188
+ #
189
+ # # Field Masks and Oneof Fields
190
+ #
191
+ # Field masks treat fields in oneofs just as regular fields. Consider the
192
+ # following message:
193
+ #
194
+ # message SampleMessage {
195
+ # oneof test_oneof {
196
+ # string name = 4;
197
+ # SubMessage sub_message = 9;
198
+ # }
199
+ # }
200
+ #
201
+ # The field mask can be:
202
+ #
203
+ # mask {
204
+ # paths: "name"
205
+ # }
206
+ #
207
+ # Or:
208
+ #
209
+ # mask {
210
+ # paths: "sub_message"
211
+ # }
212
+ #
213
+ # Note that oneof type names ("test_oneof" in this case) cannot be used in
214
+ # paths.
215
+ #
216
+ # ## Field Mask Verification
217
+ #
218
+ # The implementation of any API method which has a FieldMask type field in the
219
+ # request should verify the included field paths, and return an
220
+ # `INVALID_ARGUMENT` error if any path is unmappable.
221
+ # @!attribute [rw] paths
222
+ # @return [::Array<::String>]
223
+ # The set of field mask paths.
224
+ class FieldMask
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
228
+ end
229
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # A Timestamp represents a point in time independent of any time zone or local
23
+ # calendar, encoded as a count of seconds and fractions of seconds at
24
+ # nanosecond resolution. The count is relative to an epoch at UTC midnight on
25
+ # January 1, 1970, in the proleptic Gregorian calendar which extends the
26
+ # Gregorian calendar backwards to year one.
27
+ #
28
+ # All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
29
+ # second table is needed for interpretation, using a [24-hour linear
30
+ # smear](https://developers.google.com/time/smear).
31
+ #
32
+ # The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
33
+ # restricting to that range, we ensure that we can convert to and from [RFC
34
+ # 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
35
+ #
36
+ # # Examples
37
+ #
38
+ # Example 1: Compute Timestamp from POSIX `time()`.
39
+ #
40
+ # Timestamp timestamp;
41
+ # timestamp.set_seconds(time(NULL));
42
+ # timestamp.set_nanos(0);
43
+ #
44
+ # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
45
+ #
46
+ # struct timeval tv;
47
+ # gettimeofday(&tv, NULL);
48
+ #
49
+ # Timestamp timestamp;
50
+ # timestamp.set_seconds(tv.tv_sec);
51
+ # timestamp.set_nanos(tv.tv_usec * 1000);
52
+ #
53
+ # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
54
+ #
55
+ # FILETIME ft;
56
+ # GetSystemTimeAsFileTime(&ft);
57
+ # UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
58
+ #
59
+ # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
60
+ # // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
61
+ # Timestamp timestamp;
62
+ # timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
63
+ # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
64
+ #
65
+ # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
66
+ #
67
+ # long millis = System.currentTimeMillis();
68
+ #
69
+ # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
70
+ # .setNanos((int) ((millis % 1000) * 1000000)).build();
71
+ #
72
+ # Example 5: Compute Timestamp from Java `Instant.now()`.
73
+ #
74
+ # Instant now = Instant.now();
75
+ #
76
+ # Timestamp timestamp =
77
+ # Timestamp.newBuilder().setSeconds(now.getEpochSecond())
78
+ # .setNanos(now.getNano()).build();
79
+ #
80
+ # Example 6: Compute Timestamp from current time in Python.
81
+ #
82
+ # timestamp = Timestamp()
83
+ # timestamp.GetCurrentTime()
84
+ #
85
+ # # JSON Mapping
86
+ #
87
+ # In JSON format, the Timestamp type is encoded as a string in the
88
+ # [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
89
+ # format is "\\{year}-\\{month}-\\{day}T\\{hour}:\\{min}:\\{sec}[.\\{frac_sec}]Z"
90
+ # where \\{year} is always expressed using four digits while \\{month}, \\{day},
91
+ # \\{hour}, \\{min}, and \\{sec} are zero-padded to two digits each. The fractional
92
+ # seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
93
+ # are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
94
+ # is required. A proto3 JSON serializer should always use UTC (as indicated by
95
+ # "Z") when printing the Timestamp type and a proto3 JSON parser should be
96
+ # able to accept both UTC and other timezones (as indicated by an offset).
97
+ #
98
+ # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
99
+ # 01:30 UTC on January 15, 2017.
100
+ #
101
+ # In JavaScript, one can convert a Date object to this format using the
102
+ # standard
103
+ # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
104
+ # method. In Python, a standard `datetime.datetime` object can be converted
105
+ # to this format using
106
+ # [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
107
+ # the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
108
+ # the Joda Time's [`ISODateTimeFormat.dateTime()`](
109
+ # http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
110
+ # ) to obtain a formatter capable of generating timestamps in this format.
111
+ # @!attribute [rw] seconds
112
+ # @return [::Integer]
113
+ # Represents seconds of UTC time since Unix epoch
114
+ # 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
115
+ # 9999-12-31T23:59:59Z inclusive.
116
+ # @!attribute [rw] nanos
117
+ # @return [::Integer]
118
+ # Non-negative fractions of a second at nanosecond resolution. Negative
119
+ # second values with fractions must still have non-negative nanos values
120
+ # that count forward in time. Must be from 0 to 999,999,999
121
+ # inclusive.
122
+ class Timestamp
123
+ include ::Google::Protobuf::MessageExts
124
+ extend ::Google::Protobuf::MessageExts::ClassMethods
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,289 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Shopping
22
+ module Merchant
23
+ module Conversions
24
+ module V1
25
+ # Represents a conversion source owned by a Merchant account. A merchant
26
+ # account can have up to 200 conversion sources.
27
+ # @!attribute [rw] google_analytics_link
28
+ # @return [::Google::Shopping::Merchant::Conversions::V1::GoogleAnalyticsLink]
29
+ # Immutable. Conversion Source of type "Link to Google Analytics Property".
30
+ #
31
+ # Note: The following fields are mutually exclusive: `google_analytics_link`, `merchant_center_destination`. If a field in that set is populated, all other fields in the set will automatically be cleared.
32
+ # @!attribute [rw] merchant_center_destination
33
+ # @return [::Google::Shopping::Merchant::Conversions::V1::MerchantCenterDestination]
34
+ # Conversion Source of type "Merchant Center Tag Destination".
35
+ #
36
+ # Note: The following fields are mutually exclusive: `merchant_center_destination`, `google_analytics_link`. If a field in that set is populated, all other fields in the set will automatically be cleared.
37
+ # @!attribute [r] name
38
+ # @return [::String]
39
+ # Output only. Identifier. Generated by the Content API upon creation of a
40
+ # new `ConversionSource`. Format: `[a-z]{4}:.+` The four characters before
41
+ # the colon represent the type of conversion source. Content after the colon
42
+ # represents the ID of the conversion source within that type. The ID of two
43
+ # different conversion sources might be the same across different types. The
44
+ # following type prefixes are supported:
45
+ # * `galk`: For GoogleAnalyticsLink sources.
46
+ # * `mcdn`: For MerchantCenterDestination sources.
47
+ # @!attribute [r] state
48
+ # @return [::Google::Shopping::Merchant::Conversions::V1::ConversionSource::State]
49
+ # Output only. Current state of this conversion source. Can't be edited
50
+ # through the API.
51
+ # @!attribute [r] expire_time
52
+ # @return [::Google::Protobuf::Timestamp]
53
+ # Output only. The time when an archived conversion source becomes
54
+ # permanently deleted and is no longer available to undelete.
55
+ # @!attribute [r] controller
56
+ # @return [::Google::Shopping::Merchant::Conversions::V1::ConversionSource::Controller]
57
+ # Output only. Controller of the conversion source.
58
+ class ConversionSource
59
+ include ::Google::Protobuf::MessageExts
60
+ extend ::Google::Protobuf::MessageExts::ClassMethods
61
+
62
+ # Represents the state of a conversion source.
63
+ module State
64
+ # Conversion source has unspecified state.
65
+ STATE_UNSPECIFIED = 0
66
+
67
+ # Conversion source is fully functional.
68
+ ACTIVE = 1
69
+
70
+ # Conversion source has been archived in the last 30 days and is currently
71
+ # not functional. Can be restored using the undelete method.
72
+ ARCHIVED = 2
73
+
74
+ # Conversion source creation has started but not fully finished yet.
75
+ PENDING = 3
76
+ end
77
+
78
+ # Entity controlling the conversion source.
79
+ module Controller
80
+ # Default value. This value is unused.
81
+ CONTROLLER_UNSPECIFIED = 0
82
+
83
+ # Controlled by the Merchant who owns the Conversion Source.
84
+ MERCHANT = 1
85
+
86
+ # Controlled by the Youtube Affiliates program.
87
+ YOUTUBE_AFFILIATES = 2
88
+ end
89
+ end
90
+
91
+ # Represents attribution settings for conversion sources receiving
92
+ # pre-attribution data.
93
+ # @!attribute [rw] attribution_lookback_window_days
94
+ # @return [::Integer]
95
+ # Required. Lookback window (in days) used for attribution in this source.
96
+ # Supported values are `7`, `30` & `40`.
97
+ # @!attribute [rw] attribution_model
98
+ # @return [::Google::Shopping::Merchant::Conversions::V1::AttributionSettings::AttributionModel]
99
+ # Required. Attribution model.
100
+ # @!attribute [rw] conversion_type
101
+ # @return [::Array<::Google::Shopping::Merchant::Conversions::V1::AttributionSettings::ConversionType>]
102
+ # Immutable. Unordered list. List of different conversion types a conversion
103
+ # event can be classified as. A standard "purchase" type will be
104
+ # automatically created if this list is empty at creation time.
105
+ class AttributionSettings
106
+ include ::Google::Protobuf::MessageExts
107
+ extend ::Google::Protobuf::MessageExts::ClassMethods
108
+
109
+ # Message representing the type of a conversion event.
110
+ # @!attribute [r] name
111
+ # @return [::String]
112
+ # Output only. Conversion event name, as it'll be reported by the client.
113
+ # @!attribute [r] report
114
+ # @return [::Boolean]
115
+ # Output only. Option indicating if the type should be included in Merchant
116
+ # Center reporting.
117
+ class ConversionType
118
+ include ::Google::Protobuf::MessageExts
119
+ extend ::Google::Protobuf::MessageExts::ClassMethods
120
+ end
121
+
122
+ # The attribution model used for this source. We support the same set of
123
+ # [models offered by Google Analytics
124
+ # 4](https://support.google.com/analytics/answer/10596866).
125
+ module AttributionModel
126
+ # Unspecified model.
127
+ ATTRIBUTION_MODEL_UNSPECIFIED = 0
128
+
129
+ # Cross-channel Last Click model.
130
+ CROSS_CHANNEL_LAST_CLICK = 1
131
+
132
+ # Ads-preferred Last Click model.
133
+ ADS_PREFERRED_LAST_CLICK = 2
134
+
135
+ # Cross-channel Data Driven model.
136
+ CROSS_CHANNEL_DATA_DRIVEN = 5
137
+
138
+ # Cross-channel First Click model.
139
+ CROSS_CHANNEL_FIRST_CLICK = 6
140
+
141
+ # Cross-channel Linear model.
142
+ CROSS_CHANNEL_LINEAR = 7
143
+
144
+ # Cross-channel Position Based model.
145
+ CROSS_CHANNEL_POSITION_BASED = 8
146
+
147
+ # Cross-channel Time Decay model.
148
+ CROSS_CHANNEL_TIME_DECAY = 9
149
+ end
150
+ end
151
+
152
+ # "Google Analytics Link" sources can be used to get conversion data from an
153
+ # existing Google Analytics property into the linked Merchant Center account.
154
+ # @!attribute [rw] property_id
155
+ # @return [::Integer]
156
+ # Required. Immutable. ID of the Google Analytics property the merchant is
157
+ # linked to.
158
+ # @!attribute [r] attribution_settings
159
+ # @return [::Google::Shopping::Merchant::Conversions::V1::AttributionSettings]
160
+ # Output only. Attribution settings for the linked Google Analytics property.
161
+ # @!attribute [r] property
162
+ # @return [::String]
163
+ # Output only. Name of the Google Analytics property the merchant is linked
164
+ # to.
165
+ class GoogleAnalyticsLink
166
+ include ::Google::Protobuf::MessageExts
167
+ extend ::Google::Protobuf::MessageExts::ClassMethods
168
+ end
169
+
170
+ # "Merchant Center Destination" sources can be used to send conversion events
171
+ # from an online store using a Google tag directly to a Merchant Center account
172
+ # where the source is created.
173
+ # @!attribute [r] destination
174
+ # @return [::String]
175
+ # Output only. Merchant Center Destination ID.
176
+ # @!attribute [rw] attribution_settings
177
+ # @return [::Google::Shopping::Merchant::Conversions::V1::AttributionSettings]
178
+ # Required. Attribution settings used for the Merchant Center Destination.
179
+ # @!attribute [rw] display_name
180
+ # @return [::String]
181
+ # Required. Merchant-specified display name for the destination. This is the
182
+ # name that identifies the conversion source within the Merchant Center UI.
183
+ # The maximum length is 64 characters.
184
+ # @!attribute [rw] currency_code
185
+ # @return [::String]
186
+ # Required. Three-letter currency code (ISO 4217). The currency code defines
187
+ # in which currency the conversions sent to this destination will be reported
188
+ # in Merchant Center.
189
+ class MerchantCenterDestination
190
+ include ::Google::Protobuf::MessageExts
191
+ extend ::Google::Protobuf::MessageExts::ClassMethods
192
+ end
193
+
194
+ # Request message for the CreateConversionSource method.
195
+ # @!attribute [rw] parent
196
+ # @return [::String]
197
+ # Required. The merchant account that will own the new conversion source.
198
+ # Format: `accounts/{account}`
199
+ # @!attribute [rw] conversion_source
200
+ # @return [::Google::Shopping::Merchant::Conversions::V1::ConversionSource]
201
+ # Required. The conversion source description. A new ID will be automatically
202
+ # assigned to it upon creation.
203
+ class CreateConversionSourceRequest
204
+ include ::Google::Protobuf::MessageExts
205
+ extend ::Google::Protobuf::MessageExts::ClassMethods
206
+ end
207
+
208
+ # Request message for the UpdateConversionSource method.
209
+ # @!attribute [rw] conversion_source
210
+ # @return [::Google::Shopping::Merchant::Conversions::V1::ConversionSource]
211
+ # Required. The new version of the conversion source data.
212
+ # @!attribute [rw] update_mask
213
+ # @return [::Google::Protobuf::FieldMask]
214
+ # Optional. List of fields being updated.
215
+ class UpdateConversionSourceRequest
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # Request message for the DeleteConversionSource method.
221
+ # @!attribute [rw] name
222
+ # @return [::String]
223
+ # Required. The name of the conversion source to be deleted.
224
+ # Format: `accounts/{account}/conversionSources/{conversion_source}`
225
+ class DeleteConversionSourceRequest
226
+ include ::Google::Protobuf::MessageExts
227
+ extend ::Google::Protobuf::MessageExts::ClassMethods
228
+ end
229
+
230
+ # Request message for the UndeleteConversionSource method.
231
+ # @!attribute [rw] name
232
+ # @return [::String]
233
+ # Required. The name of the conversion source to be undeleted.
234
+ # Format: `accounts/{account}/conversionSources/{conversion_source}`
235
+ class UndeleteConversionSourceRequest
236
+ include ::Google::Protobuf::MessageExts
237
+ extend ::Google::Protobuf::MessageExts::ClassMethods
238
+ end
239
+
240
+ # Request message for the GetConversionSource method.
241
+ # @!attribute [rw] name
242
+ # @return [::String]
243
+ # Required. The name of the conversion source to be fetched.
244
+ # Format: `accounts/{account}/conversionSources/{conversion_source}`
245
+ class GetConversionSourceRequest
246
+ include ::Google::Protobuf::MessageExts
247
+ extend ::Google::Protobuf::MessageExts::ClassMethods
248
+ end
249
+
250
+ # Request message for the ListConversionSources method.
251
+ # @!attribute [rw] parent
252
+ # @return [::String]
253
+ # Required. The merchant account who owns the collection of conversion
254
+ # sources. Format: `accounts/{account}`
255
+ # @!attribute [rw] page_size
256
+ # @return [::Integer]
257
+ # Optional. The maximum number of conversion sources to return in a page.
258
+ # If no `page_size` is specified, `100` is used as the default value. The
259
+ # maximum value is `200`. Values above `200` will be coerced to `200`.
260
+ # Regardless of pagination, at most `200` conversion sources are returned
261
+ # in total.
262
+ # @!attribute [rw] page_token
263
+ # @return [::String]
264
+ # Optional. Page token.
265
+ # @!attribute [rw] show_deleted
266
+ # @return [::Boolean]
267
+ # Optional. Show deleted (archived) conversion sources. By default, deleted
268
+ # conversion sources are not returned.
269
+ class ListConversionSourcesRequest
270
+ include ::Google::Protobuf::MessageExts
271
+ extend ::Google::Protobuf::MessageExts::ClassMethods
272
+ end
273
+
274
+ # Response message for the ListConversionSources method.
275
+ # @!attribute [rw] conversion_sources
276
+ # @return [::Array<::Google::Shopping::Merchant::Conversions::V1::ConversionSource>]
277
+ # List of conversion sources.
278
+ # @!attribute [rw] next_page_token
279
+ # @return [::String]
280
+ # Token to be used to fetch the next results page.
281
+ class ListConversionSourcesResponse
282
+ include ::Google::Protobuf::MessageExts
283
+ extend ::Google::Protobuf::MessageExts::ClassMethods
284
+ end
285
+ end
286
+ end
287
+ end
288
+ end
289
+ end