google-api-client 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +11 -2
  4. data/api_names.yaml +76 -43
  5. data/api_names_out.yaml +3853 -3508
  6. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +151 -151
  7. data/generated/google/apis/adexchangebuyer_v1_4.rb +35 -0
  8. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +2785 -0
  9. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1033 -0
  10. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +1378 -0
  11. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +79 -79
  12. data/generated/google/apis/admin_datatransfer_v1/classes.rb +26 -26
  13. data/generated/google/apis/admin_directory_v1/classes.rb +374 -374
  14. data/generated/google/apis/admin_reports_v1/classes.rb +63 -63
  15. data/generated/google/apis/adsense_v1_4.rb +1 -1
  16. data/generated/google/apis/adsense_v1_4/classes.rb +145 -143
  17. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  18. data/generated/google/apis/adsensehost_v4_1/classes.rb +95 -92
  19. data/generated/google/apis/analytics_v3/classes.rb +582 -582
  20. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  21. data/generated/google/apis/androidenterprise_v1/classes.rb +132 -132
  22. data/generated/google/apis/androidenterprise_v1/service.rb +9 -8
  23. data/generated/google/apis/androidpublisher_v2/classes.rb +122 -122
  24. data/generated/google/apis/appengine_v1beta4.rb +1 -1
  25. data/generated/google/apis/appengine_v1beta4/classes.rb +195 -142
  26. data/generated/google/apis/appengine_v1beta4/representations.rb +16 -0
  27. data/generated/google/apis/appengine_v1beta4/service.rb +3 -2
  28. data/generated/google/apis/appengine_v1beta5.rb +35 -0
  29. data/generated/google/apis/appengine_v1beta5/classes.rb +1523 -0
  30. data/generated/google/apis/appengine_v1beta5/representations.rb +525 -0
  31. data/generated/google/apis/appengine_v1beta5/service.rb +478 -0
  32. data/generated/google/apis/appsactivity_v1/classes.rb +34 -34
  33. data/generated/google/apis/appstate_v1.rb +1 -1
  34. data/generated/google/apis/appstate_v1/classes.rb +12 -12
  35. data/generated/google/apis/autoscaler_v1beta2/classes.rb +82 -82
  36. data/generated/google/apis/bigquery_v2.rb +1 -1
  37. data/generated/google/apis/bigquery_v2/classes.rb +266 -265
  38. data/generated/google/apis/blogger_v3/classes.rb +145 -145
  39. data/generated/google/apis/books_v1.rb +1 -1
  40. data/generated/google/apis/books_v1/classes.rb +431 -431
  41. data/generated/google/apis/books_v1/service.rb +3 -12
  42. data/generated/google/apis/calendar_v3.rb +1 -1
  43. data/generated/google/apis/calendar_v3/classes.rb +180 -180
  44. data/generated/google/apis/civicinfo_v2/classes.rb +125 -125
  45. data/generated/google/apis/classroom_v1/classes.rb +42 -42
  46. data/generated/google/apis/cloudbilling_v1/classes.rb +11 -11
  47. data/generated/google/apis/{mapsengine_v1.rb → cloudbuild_v1.rb} +11 -14
  48. data/generated/google/apis/cloudbuild_v1/classes.rb +521 -0
  49. data/generated/google/apis/cloudbuild_v1/representations.rb +190 -0
  50. data/generated/google/apis/cloudbuild_v1/service.rb +278 -0
  51. data/generated/google/apis/clouddebugger_v2/classes.rb +81 -81
  52. data/generated/google/apis/cloudlatencytest_v2.rb +34 -0
  53. data/generated/google/apis/cloudlatencytest_v2/classes.rb +195 -0
  54. data/generated/google/apis/cloudlatencytest_v2/representations.rb +113 -0
  55. data/generated/google/apis/cloudlatencytest_v2/service.rb +135 -0
  56. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  57. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +55 -55
  58. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +26 -26
  59. data/generated/google/apis/cloudtrace_v1/classes.rb +13 -13
  60. data/generated/google/apis/clouduseraccounts_beta/classes.rb +85 -85
  61. data/generated/google/apis/compute_beta.rb +1 -1
  62. data/generated/google/apis/compute_beta/classes.rb +1051 -998
  63. data/generated/google/apis/compute_beta/representations.rb +1 -0
  64. data/generated/google/apis/compute_beta/service.rb +426 -366
  65. data/generated/google/apis/compute_v1.rb +1 -1
  66. data/generated/google/apis/compute_v1/classes.rb +1332 -946
  67. data/generated/google/apis/compute_v1/representations.rb +108 -0
  68. data/generated/google/apis/compute_v1/service.rb +686 -318
  69. data/generated/google/apis/container_v1/classes.rb +43 -43
  70. data/generated/google/apis/content_v2.rb +1 -1
  71. data/generated/google/apis/content_v2/classes.rb +767 -639
  72. data/generated/google/apis/content_v2/representations.rb +40 -0
  73. data/generated/google/apis/coordinate_v1/classes.rb +66 -66
  74. data/generated/google/apis/customsearch_v1/classes.rb +96 -96
  75. data/generated/google/apis/dataproc_v1.rb +43 -0
  76. data/generated/google/apis/dataproc_v1/classes.rb +175 -0
  77. data/generated/google/apis/dataproc_v1/representations.rb +84 -0
  78. data/generated/google/apis/dataproc_v1/service.rb +142 -0
  79. data/generated/google/apis/datastore_v1beta2/classes.rb +105 -105
  80. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  81. data/generated/google/apis/deploymentmanager_v2/classes.rb +183 -112
  82. data/generated/google/apis/deploymentmanager_v2/representations.rb +28 -0
  83. data/generated/google/apis/deploymentmanager_v2/service.rb +42 -37
  84. data/generated/google/apis/dfareporting_v2_3.rb +37 -0
  85. data/generated/google/apis/dfareporting_v2_3/classes.rb +10830 -0
  86. data/generated/google/apis/dfareporting_v2_3/representations.rb +3443 -0
  87. data/generated/google/apis/dfareporting_v2_3/service.rb +8581 -0
  88. data/generated/google/apis/discovery_v1/classes.rb +106 -106
  89. data/generated/google/apis/dns_v1/classes.rb +39 -39
  90. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  91. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +155 -69
  92. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +31 -0
  93. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +33 -0
  94. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  95. data/generated/google/apis/doubleclicksearch_v2/classes.rb +106 -104
  96. data/generated/google/apis/drive_v2.rb +1 -1
  97. data/generated/google/apis/drive_v2/classes.rb +308 -308
  98. data/generated/google/apis/drive_v2/service.rb +44 -0
  99. data/generated/google/apis/drive_v3.rb +1 -1
  100. data/generated/google/apis/drive_v3/classes.rb +178 -178
  101. data/generated/google/apis/drive_v3/service.rb +2 -1
  102. data/generated/google/apis/fitness_v1/classes.rb +74 -74
  103. data/generated/google/apis/fusiontables_v2/classes.rb +108 -108
  104. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  105. data/generated/google/apis/games_configuration_v1configuration/classes.rb +52 -52
  106. data/generated/google/apis/games_management_v1management.rb +2 -2
  107. data/generated/google/apis/games_management_v1management/classes.rb +55 -46
  108. data/generated/google/apis/games_management_v1management/representations.rb +1 -0
  109. data/generated/google/apis/games_v1.rb +2 -2
  110. data/generated/google/apis/games_v1/classes.rb +484 -475
  111. data/generated/google/apis/games_v1/representations.rb +1 -0
  112. data/generated/google/apis/gan_v1beta1/classes.rb +187 -187
  113. data/generated/google/apis/genomics_v1.rb +2 -2
  114. data/generated/google/apis/genomics_v1/classes.rb +441 -232
  115. data/generated/google/apis/genomics_v1/representations.rb +85 -0
  116. data/generated/google/apis/genomics_v1/service.rb +1 -1
  117. data/generated/google/apis/gmail_v1/classes.rb +73 -73
  118. data/generated/google/apis/groupsmigration_v1/classes.rb +2 -2
  119. data/generated/google/apis/groupssettings_v1/classes.rb +28 -28
  120. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  121. data/generated/google/apis/identitytoolkit_v3/classes.rb +232 -166
  122. data/generated/google/apis/identitytoolkit_v3/representations.rb +10 -0
  123. data/generated/google/apis/kgsearch_v1/classes.rb +3 -3
  124. data/generated/google/apis/licensing_v1/classes.rb +11 -11
  125. data/generated/google/apis/logging_v2beta1.rb +47 -0
  126. data/generated/google/apis/logging_v2beta1/classes.rb +990 -0
  127. data/generated/google/apis/logging_v2beta1/representations.rb +337 -0
  128. data/generated/google/apis/logging_v2beta1/service.rb +547 -0
  129. data/generated/google/apis/manager_v1beta2/classes.rb +125 -125
  130. data/generated/google/apis/mirror_v1/classes.rb +101 -101
  131. data/generated/google/apis/oauth2_v2.rb +2 -2
  132. data/generated/google/apis/oauth2_v2/classes.rb +27 -27
  133. data/generated/google/apis/pagespeedonline_v2/classes.rb +62 -62
  134. data/generated/google/apis/partners_v2/classes.rb +87 -87
  135. data/generated/google/apis/people_v1.rb +59 -0
  136. data/generated/google/apis/people_v1/classes.rb +1594 -0
  137. data/generated/google/apis/people_v1/representations.rb +593 -0
  138. data/generated/google/apis/people_v1/service.rb +193 -0
  139. data/generated/google/apis/plus_domains_v1.rb +2 -2
  140. data/generated/google/apis/plus_domains_v1/classes.rb +274 -274
  141. data/generated/google/apis/plus_v1.rb +2 -2
  142. data/generated/google/apis/plus_v1/classes.rb +215 -215
  143. data/generated/google/apis/prediction_v1_6/classes.rb +73 -73
  144. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +45 -45
  145. data/generated/google/apis/pubsub_v1/classes.rb +36 -36
  146. data/generated/google/apis/qpx_express_v1/classes.rb +135 -135
  147. data/generated/google/apis/replicapool_v1beta2/classes.rb +63 -63
  148. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +76 -76
  149. data/generated/google/apis/reseller_v1.rb +1 -1
  150. data/generated/google/apis/reseller_v1/classes.rb +55 -55
  151. data/generated/google/apis/reseller_v1/service.rb +1 -1
  152. data/generated/google/apis/resourceviews_v1beta2/classes.rb +68 -68
  153. data/generated/google/apis/script_v1/classes.rb +18 -18
  154. data/generated/google/apis/site_verification_v1/classes.rb +12 -12
  155. data/generated/google/apis/sqladmin_v1beta4/classes.rb +203 -203
  156. data/generated/google/apis/storage_v1.rb +1 -1
  157. data/generated/google/apis/storage_v1/classes.rb +130 -130
  158. data/generated/google/apis/storagetransfer_v1/classes.rb +84 -84
  159. data/generated/google/apis/tagmanager_v1/classes.rb +154 -154
  160. data/generated/google/apis/taskqueue_v1beta2/classes.rb +24 -24
  161. data/generated/google/apis/tasks_v1/classes.rb +32 -32
  162. data/generated/google/apis/translate_v2/classes.rb +10 -10
  163. data/generated/google/apis/urlshortener_v1/classes.rb +24 -24
  164. data/generated/google/apis/webmasters_v3/classes.rb +49 -49
  165. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  166. data/generated/google/apis/youtube_analytics_v1/classes.rb +49 -49
  167. data/generated/google/apis/youtube_v3.rb +1 -1
  168. data/generated/google/apis/youtube_v3/classes.rb +882 -895
  169. data/generated/google/apis/youtube_v3/representations.rb +2 -13
  170. data/generated/google/apis/youtubereporting_v1/classes.rb +19 -19
  171. data/lib/google/apis/core/api_command.rb +1 -1
  172. data/lib/google/apis/core/upload.rb +1 -1
  173. data/lib/google/apis/generator/templates/_class.tmpl +1 -1
  174. data/lib/google/apis/version.rb +1 -1
  175. data/samples/cli/lib/base_cli.rb +2 -1
  176. data/samples/cli/lib/samples/androidpublisher.rb +47 -0
  177. data/script/generate +17 -13
  178. metadata +35 -6
  179. data/generated/google/apis/mapsengine_v1/classes.rb +0 -2873
  180. data/generated/google/apis/mapsengine_v1/representations.rb +0 -1235
  181. data/generated/google/apis/mapsengine_v1/service.rb +0 -3388
@@ -0,0 +1,35 @@
1
+ # Copyright 2015 Google Inc.
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
+
15
+ require 'google/apis/adexchangebuyer_v1_4/service.rb'
16
+ require 'google/apis/adexchangebuyer_v1_4/classes.rb'
17
+ require 'google/apis/adexchangebuyer_v1_4/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Ad Exchange Buyer API
22
+ #
23
+ # Accesses your bidding-account information, submits creatives for validation,
24
+ # finds available direct deals, and retrieves performance reports.
25
+ #
26
+ # @see https://developers.google.com/ad-exchange/buyer-rest
27
+ module AdexchangebuyerV1_4
28
+ VERSION = 'V1_4'
29
+ REVISION = '20160118'
30
+
31
+ # Manage your Ad Exchange buyer account configuration
32
+ AUTH_ADEXCHANGE_BUYER = 'https://www.googleapis.com/auth/adexchange.buyer'
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,2785 @@
1
+ # Copyright 2015 Google Inc.
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
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module AdexchangebuyerV1_4
24
+
25
+ # Configuration data for an Ad Exchange buyer account.
26
+ class Account
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Your bidder locations that have distinct URLs.
30
+ # Corresponds to the JSON property `bidderLocation`
31
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Account::BidderLocation>]
32
+ attr_accessor :bidder_location
33
+
34
+ # The nid parameter value used in cookie match requests. Please contact your
35
+ # technical account manager if you need to change this.
36
+ # Corresponds to the JSON property `cookieMatchingNid`
37
+ # @return [String]
38
+ attr_accessor :cookie_matching_nid
39
+
40
+ # The base URL used in cookie match requests.
41
+ # Corresponds to the JSON property `cookieMatchingUrl`
42
+ # @return [String]
43
+ attr_accessor :cookie_matching_url
44
+
45
+ # Account id.
46
+ # Corresponds to the JSON property `id`
47
+ # @return [Fixnum]
48
+ attr_accessor :id
49
+
50
+ # Resource type.
51
+ # Corresponds to the JSON property `kind`
52
+ # @return [String]
53
+ attr_accessor :kind
54
+
55
+ # The maximum number of active creatives that an account can have, where a
56
+ # creative is active if it was inserted or bid with in the last 30 days. Please
57
+ # contact your technical account manager if you need to change this.
58
+ # Corresponds to the JSON property `maximumActiveCreatives`
59
+ # @return [Fixnum]
60
+ attr_accessor :maximum_active_creatives
61
+
62
+ # The sum of all bidderLocation.maximumQps values cannot exceed this. Please
63
+ # contact your technical account manager if you need to change this.
64
+ # Corresponds to the JSON property `maximumTotalQps`
65
+ # @return [Fixnum]
66
+ attr_accessor :maximum_total_qps
67
+
68
+ # The number of creatives that this account inserted or bid with in the last 30
69
+ # days.
70
+ # Corresponds to the JSON property `numberActiveCreatives`
71
+ # @return [Fixnum]
72
+ attr_accessor :number_active_creatives
73
+
74
+ def initialize(**args)
75
+ update!(**args)
76
+ end
77
+
78
+ # Update properties of this object
79
+ def update!(**args)
80
+ @bidder_location = args[:bidder_location] if args.key?(:bidder_location)
81
+ @cookie_matching_nid = args[:cookie_matching_nid] if args.key?(:cookie_matching_nid)
82
+ @cookie_matching_url = args[:cookie_matching_url] if args.key?(:cookie_matching_url)
83
+ @id = args[:id] if args.key?(:id)
84
+ @kind = args[:kind] if args.key?(:kind)
85
+ @maximum_active_creatives = args[:maximum_active_creatives] if args.key?(:maximum_active_creatives)
86
+ @maximum_total_qps = args[:maximum_total_qps] if args.key?(:maximum_total_qps)
87
+ @number_active_creatives = args[:number_active_creatives] if args.key?(:number_active_creatives)
88
+ end
89
+
90
+ #
91
+ class BidderLocation
92
+ include Google::Apis::Core::Hashable
93
+
94
+ # The maximum queries per second the Ad Exchange will send.
95
+ # Corresponds to the JSON property `maximumQps`
96
+ # @return [Fixnum]
97
+ attr_accessor :maximum_qps
98
+
99
+ # The geographical region the Ad Exchange should send requests from. Only used
100
+ # by some quota systems, but always setting the value is recommended. Allowed
101
+ # values:
102
+ # - ASIA
103
+ # - EUROPE
104
+ # - US_EAST
105
+ # - US_WEST
106
+ # Corresponds to the JSON property `region`
107
+ # @return [String]
108
+ attr_accessor :region
109
+
110
+ # The URL to which the Ad Exchange will send bid requests.
111
+ # Corresponds to the JSON property `url`
112
+ # @return [String]
113
+ attr_accessor :url
114
+
115
+ def initialize(**args)
116
+ update!(**args)
117
+ end
118
+
119
+ # Update properties of this object
120
+ def update!(**args)
121
+ @maximum_qps = args[:maximum_qps] if args.key?(:maximum_qps)
122
+ @region = args[:region] if args.key?(:region)
123
+ @url = args[:url] if args.key?(:url)
124
+ end
125
+ end
126
+ end
127
+
128
+ # An account feed lists Ad Exchange buyer accounts that the user has access to.
129
+ # Each entry in the feed corresponds to a single buyer account.
130
+ class AccountsList
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # A list of accounts.
134
+ # Corresponds to the JSON property `items`
135
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Account>]
136
+ attr_accessor :items
137
+
138
+ # Resource type.
139
+ # Corresponds to the JSON property `kind`
140
+ # @return [String]
141
+ attr_accessor :kind
142
+
143
+ def initialize(**args)
144
+ update!(**args)
145
+ end
146
+
147
+ # Update properties of this object
148
+ def update!(**args)
149
+ @items = args[:items] if args.key?(:items)
150
+ @kind = args[:kind] if args.key?(:kind)
151
+ end
152
+ end
153
+
154
+ #
155
+ class AddOrderDealsRequest
156
+ include Google::Apis::Core::Hashable
157
+
158
+ # The list of deals to add
159
+ # Corresponds to the JSON property `deals`
160
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
161
+ attr_accessor :deals
162
+
163
+ # The last known proposal revision number.
164
+ # Corresponds to the JSON property `proposalRevisionNumber`
165
+ # @return [String]
166
+ attr_accessor :proposal_revision_number
167
+
168
+ # Indicates an optional action to take on the proposal
169
+ # Corresponds to the JSON property `updateAction`
170
+ # @return [String]
171
+ attr_accessor :update_action
172
+
173
+ def initialize(**args)
174
+ update!(**args)
175
+ end
176
+
177
+ # Update properties of this object
178
+ def update!(**args)
179
+ @deals = args[:deals] if args.key?(:deals)
180
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
181
+ @update_action = args[:update_action] if args.key?(:update_action)
182
+ end
183
+ end
184
+
185
+ #
186
+ class AddOrderDealsResponse
187
+ include Google::Apis::Core::Hashable
188
+
189
+ # List of deals added (in the same proposal as passed in the request)
190
+ # Corresponds to the JSON property `deals`
191
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
192
+ attr_accessor :deals
193
+
194
+ # The updated revision number for the proposal.
195
+ # Corresponds to the JSON property `proposalRevisionNumber`
196
+ # @return [String]
197
+ attr_accessor :proposal_revision_number
198
+
199
+ def initialize(**args)
200
+ update!(**args)
201
+ end
202
+
203
+ # Update properties of this object
204
+ def update!(**args)
205
+ @deals = args[:deals] if args.key?(:deals)
206
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
207
+ end
208
+ end
209
+
210
+ #
211
+ class AddOrderNotesRequest
212
+ include Google::Apis::Core::Hashable
213
+
214
+ # The list of notes to add.
215
+ # Corresponds to the JSON property `notes`
216
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
217
+ attr_accessor :notes
218
+
219
+ def initialize(**args)
220
+ update!(**args)
221
+ end
222
+
223
+ # Update properties of this object
224
+ def update!(**args)
225
+ @notes = args[:notes] if args.key?(:notes)
226
+ end
227
+ end
228
+
229
+ #
230
+ class AddOrderNotesResponse
231
+ include Google::Apis::Core::Hashable
232
+
233
+ #
234
+ # Corresponds to the JSON property `notes`
235
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
236
+ attr_accessor :notes
237
+
238
+ def initialize(**args)
239
+ update!(**args)
240
+ end
241
+
242
+ # Update properties of this object
243
+ def update!(**args)
244
+ @notes = args[:notes] if args.key?(:notes)
245
+ end
246
+ end
247
+
248
+ # The configuration data for an Ad Exchange billing info.
249
+ class BillingInfo
250
+ include Google::Apis::Core::Hashable
251
+
252
+ # Account id.
253
+ # Corresponds to the JSON property `accountId`
254
+ # @return [Fixnum]
255
+ attr_accessor :account_id
256
+
257
+ # Account name.
258
+ # Corresponds to the JSON property `accountName`
259
+ # @return [String]
260
+ attr_accessor :account_name
261
+
262
+ # A list of adgroup IDs associated with this particular account. These IDs may
263
+ # show up as part of a realtime bidding BidRequest, which indicates a bid
264
+ # request for this account.
265
+ # Corresponds to the JSON property `billingId`
266
+ # @return [Array<String>]
267
+ attr_accessor :billing_id
268
+
269
+ # Resource type.
270
+ # Corresponds to the JSON property `kind`
271
+ # @return [String]
272
+ attr_accessor :kind
273
+
274
+ def initialize(**args)
275
+ update!(**args)
276
+ end
277
+
278
+ # Update properties of this object
279
+ def update!(**args)
280
+ @account_id = args[:account_id] if args.key?(:account_id)
281
+ @account_name = args[:account_name] if args.key?(:account_name)
282
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
283
+ @kind = args[:kind] if args.key?(:kind)
284
+ end
285
+ end
286
+
287
+ # A billing info feed lists Billing Info the Ad Exchange buyer account has
288
+ # access to. Each entry in the feed corresponds to a single billing info.
289
+ class BillingInfoList
290
+ include Google::Apis::Core::Hashable
291
+
292
+ # A list of billing info relevant for your account.
293
+ # Corresponds to the JSON property `items`
294
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::BillingInfo>]
295
+ attr_accessor :items
296
+
297
+ # Resource type.
298
+ # Corresponds to the JSON property `kind`
299
+ # @return [String]
300
+ attr_accessor :kind
301
+
302
+ def initialize(**args)
303
+ update!(**args)
304
+ end
305
+
306
+ # Update properties of this object
307
+ def update!(**args)
308
+ @items = args[:items] if args.key?(:items)
309
+ @kind = args[:kind] if args.key?(:kind)
310
+ end
311
+ end
312
+
313
+ # The configuration data for Ad Exchange RTB - Budget API.
314
+ class Budget
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # The id of the account. This is required for get and update requests.
318
+ # Corresponds to the JSON property `accountId`
319
+ # @return [String]
320
+ attr_accessor :account_id
321
+
322
+ # The billing id to determine which adgroup to provide budget information for.
323
+ # This is required for get and update requests.
324
+ # Corresponds to the JSON property `billingId`
325
+ # @return [String]
326
+ attr_accessor :billing_id
327
+
328
+ # The daily budget amount in unit amount of the account currency to apply for
329
+ # the billingId provided. This is required for update requests.
330
+ # Corresponds to the JSON property `budgetAmount`
331
+ # @return [String]
332
+ attr_accessor :budget_amount
333
+
334
+ # The currency code for the buyer. This cannot be altered here.
335
+ # Corresponds to the JSON property `currencyCode`
336
+ # @return [String]
337
+ attr_accessor :currency_code
338
+
339
+ # The unique id that describes this item.
340
+ # Corresponds to the JSON property `id`
341
+ # @return [String]
342
+ attr_accessor :id
343
+
344
+ # The kind of the resource, i.e. "adexchangebuyer#budget".
345
+ # Corresponds to the JSON property `kind`
346
+ # @return [String]
347
+ attr_accessor :kind
348
+
349
+ def initialize(**args)
350
+ update!(**args)
351
+ end
352
+
353
+ # Update properties of this object
354
+ def update!(**args)
355
+ @account_id = args[:account_id] if args.key?(:account_id)
356
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
357
+ @budget_amount = args[:budget_amount] if args.key?(:budget_amount)
358
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
359
+ @id = args[:id] if args.key?(:id)
360
+ @kind = args[:kind] if args.key?(:kind)
361
+ end
362
+ end
363
+
364
+ #
365
+ class Buyer
366
+ include Google::Apis::Core::Hashable
367
+
368
+ # Adx account id of the buyer.
369
+ # Corresponds to the JSON property `accountId`
370
+ # @return [String]
371
+ attr_accessor :account_id
372
+
373
+ def initialize(**args)
374
+ update!(**args)
375
+ end
376
+
377
+ # Update properties of this object
378
+ def update!(**args)
379
+ @account_id = args[:account_id] if args.key?(:account_id)
380
+ end
381
+ end
382
+
383
+ #
384
+ class ContactInformation
385
+ include Google::Apis::Core::Hashable
386
+
387
+ # Email address of the contact.
388
+ # Corresponds to the JSON property `email`
389
+ # @return [String]
390
+ attr_accessor :email
391
+
392
+ # The name of the contact.
393
+ # Corresponds to the JSON property `name`
394
+ # @return [String]
395
+ attr_accessor :name
396
+
397
+ def initialize(**args)
398
+ update!(**args)
399
+ end
400
+
401
+ # Update properties of this object
402
+ def update!(**args)
403
+ @email = args[:email] if args.key?(:email)
404
+ @name = args[:name] if args.key?(:name)
405
+ end
406
+ end
407
+
408
+ #
409
+ class CreateOrdersRequest
410
+ include Google::Apis::Core::Hashable
411
+
412
+ # The list of proposals to create.
413
+ # Corresponds to the JSON property `proposals`
414
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
415
+ attr_accessor :proposals
416
+
417
+ #
418
+ # Corresponds to the JSON property `webPropertyCode`
419
+ # @return [String]
420
+ attr_accessor :web_property_code
421
+
422
+ def initialize(**args)
423
+ update!(**args)
424
+ end
425
+
426
+ # Update properties of this object
427
+ def update!(**args)
428
+ @proposals = args[:proposals] if args.key?(:proposals)
429
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
430
+ end
431
+ end
432
+
433
+ #
434
+ class CreateOrdersResponse
435
+ include Google::Apis::Core::Hashable
436
+
437
+ # The list of proposals successfully created.
438
+ # Corresponds to the JSON property `proposals`
439
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
440
+ attr_accessor :proposals
441
+
442
+ def initialize(**args)
443
+ update!(**args)
444
+ end
445
+
446
+ # Update properties of this object
447
+ def update!(**args)
448
+ @proposals = args[:proposals] if args.key?(:proposals)
449
+ end
450
+ end
451
+
452
+ # A creative and its classification data.
453
+ class Creative
454
+ include Google::Apis::Core::Hashable
455
+
456
+ # The HTML snippet that displays the ad when inserted in the web page. If set,
457
+ # videoURL should not be set.
458
+ # Corresponds to the JSON property `HTMLSnippet`
459
+ # @return [String]
460
+ attr_accessor :html_snippet
461
+
462
+ # Account id.
463
+ # Corresponds to the JSON property `accountId`
464
+ # @return [Fixnum]
465
+ attr_accessor :account_id
466
+
467
+ # Detected advertiser id, if any. Read-only. This field should not be set in
468
+ # requests.
469
+ # Corresponds to the JSON property `advertiserId`
470
+ # @return [Array<String>]
471
+ attr_accessor :advertiser_id
472
+
473
+ # The name of the company being advertised in the creative.
474
+ # Corresponds to the JSON property `advertiserName`
475
+ # @return [String]
476
+ attr_accessor :advertiser_name
477
+
478
+ # The agency id for this creative.
479
+ # Corresponds to the JSON property `agencyId`
480
+ # @return [String]
481
+ attr_accessor :agency_id
482
+
483
+ # The last upload timestamp of this creative if it was uploaded via API. Read-
484
+ # only. The value of this field is generated, and will be ignored for uploads. (
485
+ # formatted RFC 3339 timestamp).
486
+ # Corresponds to the JSON property `apiUploadTimestamp`
487
+ # @return [DateTime]
488
+ attr_accessor :api_upload_timestamp
489
+
490
+ # All attributes for the ads that may be shown from this snippet.
491
+ # Corresponds to the JSON property `attribute`
492
+ # @return [Array<Fixnum>]
493
+ attr_accessor :attribute
494
+
495
+ # A buyer-specific id identifying the creative in this ad.
496
+ # Corresponds to the JSON property `buyerCreativeId`
497
+ # @return [String]
498
+ attr_accessor :buyer_creative_id
499
+
500
+ # The set of destination urls for the snippet.
501
+ # Corresponds to the JSON property `clickThroughUrl`
502
+ # @return [Array<String>]
503
+ attr_accessor :click_through_url
504
+
505
+ # Shows any corrections that were applied to this creative. Read-only. This
506
+ # field should not be set in requests.
507
+ # Corresponds to the JSON property `corrections`
508
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::Correction>]
509
+ attr_accessor :corrections
510
+
511
+ # Top-level deals status. Read-only. This field should not be set in requests.
512
+ # If disapproved, an entry for auctionType=DIRECT_DEALS (or ALL) in
513
+ # servingRestrictions will also exist. Note that this may be nuanced with other
514
+ # contextual restrictions, in which case it may be preferable to read from
515
+ # servingRestrictions directly.
516
+ # Corresponds to the JSON property `dealsStatus`
517
+ # @return [String]
518
+ attr_accessor :deals_status
519
+
520
+ # The filtering reasons for the creative. Read-only. This field should not be
521
+ # set in requests.
522
+ # Corresponds to the JSON property `filteringReasons`
523
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::FilteringReasons]
524
+ attr_accessor :filtering_reasons
525
+
526
+ # Ad height.
527
+ # Corresponds to the JSON property `height`
528
+ # @return [Fixnum]
529
+ attr_accessor :height
530
+
531
+ # The set of urls to be called to record an impression.
532
+ # Corresponds to the JSON property `impressionTrackingUrl`
533
+ # @return [Array<String>]
534
+ attr_accessor :impression_tracking_url
535
+
536
+ # Resource type.
537
+ # Corresponds to the JSON property `kind`
538
+ # @return [String]
539
+ attr_accessor :kind
540
+
541
+ # If nativeAd is set, HTMLSnippet and videoURL should not be set.
542
+ # Corresponds to the JSON property `nativeAd`
543
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd]
544
+ attr_accessor :native_ad
545
+
546
+ # Top-level open auction status. Read-only. This field should not be set in
547
+ # requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in
548
+ # servingRestrictions will also exist. Note that this may be nuanced with other
549
+ # contextual restrictions, in which case it may be preferable to read from
550
+ # ServingRestrictions directly.
551
+ # Corresponds to the JSON property `openAuctionStatus`
552
+ # @return [String]
553
+ attr_accessor :open_auction_status
554
+
555
+ # Detected product categories, if any. Read-only. This field should not be set
556
+ # in requests.
557
+ # Corresponds to the JSON property `productCategories`
558
+ # @return [Array<Fixnum>]
559
+ attr_accessor :product_categories
560
+
561
+ # All restricted categories for the ads that may be shown from this snippet.
562
+ # Corresponds to the JSON property `restrictedCategories`
563
+ # @return [Array<Fixnum>]
564
+ attr_accessor :restricted_categories
565
+
566
+ # Detected sensitive categories, if any. Read-only. This field should not be set
567
+ # in requests.
568
+ # Corresponds to the JSON property `sensitiveCategories`
569
+ # @return [Array<Fixnum>]
570
+ attr_accessor :sensitive_categories
571
+
572
+ # The granular status of this ad in specific contexts. A context here relates to
573
+ # where something ultimately serves (for example, a physical location, a
574
+ # platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This
575
+ # field should not be set in requests.
576
+ # Corresponds to the JSON property `servingRestrictions`
577
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction>]
578
+ attr_accessor :serving_restrictions
579
+
580
+ # All vendor types for the ads that may be shown from this snippet.
581
+ # Corresponds to the JSON property `vendorType`
582
+ # @return [Array<Fixnum>]
583
+ attr_accessor :vendor_type
584
+
585
+ # The version for this creative. Read-only. This field should not be set in
586
+ # requests.
587
+ # Corresponds to the JSON property `version`
588
+ # @return [Fixnum]
589
+ attr_accessor :version
590
+
591
+ # The url to fetch a video ad. If set, HTMLSnippet should not be set.
592
+ # Corresponds to the JSON property `videoURL`
593
+ # @return [String]
594
+ attr_accessor :video_url
595
+
596
+ # Ad width.
597
+ # Corresponds to the JSON property `width`
598
+ # @return [Fixnum]
599
+ attr_accessor :width
600
+
601
+ def initialize(**args)
602
+ update!(**args)
603
+ end
604
+
605
+ # Update properties of this object
606
+ def update!(**args)
607
+ @html_snippet = args[:html_snippet] if args.key?(:html_snippet)
608
+ @account_id = args[:account_id] if args.key?(:account_id)
609
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
610
+ @advertiser_name = args[:advertiser_name] if args.key?(:advertiser_name)
611
+ @agency_id = args[:agency_id] if args.key?(:agency_id)
612
+ @api_upload_timestamp = args[:api_upload_timestamp] if args.key?(:api_upload_timestamp)
613
+ @attribute = args[:attribute] if args.key?(:attribute)
614
+ @buyer_creative_id = args[:buyer_creative_id] if args.key?(:buyer_creative_id)
615
+ @click_through_url = args[:click_through_url] if args.key?(:click_through_url)
616
+ @corrections = args[:corrections] if args.key?(:corrections)
617
+ @deals_status = args[:deals_status] if args.key?(:deals_status)
618
+ @filtering_reasons = args[:filtering_reasons] if args.key?(:filtering_reasons)
619
+ @height = args[:height] if args.key?(:height)
620
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
621
+ @kind = args[:kind] if args.key?(:kind)
622
+ @native_ad = args[:native_ad] if args.key?(:native_ad)
623
+ @open_auction_status = args[:open_auction_status] if args.key?(:open_auction_status)
624
+ @product_categories = args[:product_categories] if args.key?(:product_categories)
625
+ @restricted_categories = args[:restricted_categories] if args.key?(:restricted_categories)
626
+ @sensitive_categories = args[:sensitive_categories] if args.key?(:sensitive_categories)
627
+ @serving_restrictions = args[:serving_restrictions] if args.key?(:serving_restrictions)
628
+ @vendor_type = args[:vendor_type] if args.key?(:vendor_type)
629
+ @version = args[:version] if args.key?(:version)
630
+ @video_url = args[:video_url] if args.key?(:video_url)
631
+ @width = args[:width] if args.key?(:width)
632
+ end
633
+
634
+ #
635
+ class Correction
636
+ include Google::Apis::Core::Hashable
637
+
638
+ # Additional details about the correction.
639
+ # Corresponds to the JSON property `details`
640
+ # @return [Array<String>]
641
+ attr_accessor :details
642
+
643
+ # The type of correction that was applied to the creative.
644
+ # Corresponds to the JSON property `reason`
645
+ # @return [String]
646
+ attr_accessor :reason
647
+
648
+ def initialize(**args)
649
+ update!(**args)
650
+ end
651
+
652
+ # Update properties of this object
653
+ def update!(**args)
654
+ @details = args[:details] if args.key?(:details)
655
+ @reason = args[:reason] if args.key?(:reason)
656
+ end
657
+ end
658
+
659
+ # The filtering reasons for the creative. Read-only. This field should not be
660
+ # set in requests.
661
+ class FilteringReasons
662
+ include Google::Apis::Core::Hashable
663
+
664
+ # The date in ISO 8601 format for the data. The data is collected from 00:00:00
665
+ # to 23:59:59 in PST.
666
+ # Corresponds to the JSON property `date`
667
+ # @return [String]
668
+ attr_accessor :date
669
+
670
+ # The filtering reasons.
671
+ # Corresponds to the JSON property `reasons`
672
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::FilteringReasons::Reason>]
673
+ attr_accessor :reasons
674
+
675
+ def initialize(**args)
676
+ update!(**args)
677
+ end
678
+
679
+ # Update properties of this object
680
+ def update!(**args)
681
+ @date = args[:date] if args.key?(:date)
682
+ @reasons = args[:reasons] if args.key?(:reasons)
683
+ end
684
+
685
+ #
686
+ class Reason
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # The number of times the creative was filtered for the status. The count is
690
+ # aggregated across all publishers on the exchange.
691
+ # Corresponds to the JSON property `filteringCount`
692
+ # @return [String]
693
+ attr_accessor :filtering_count
694
+
695
+ # The filtering status code. Please refer to the creative-status-codes.txt file
696
+ # for different statuses.
697
+ # Corresponds to the JSON property `filteringStatus`
698
+ # @return [Fixnum]
699
+ attr_accessor :filtering_status
700
+
701
+ def initialize(**args)
702
+ update!(**args)
703
+ end
704
+
705
+ # Update properties of this object
706
+ def update!(**args)
707
+ @filtering_count = args[:filtering_count] if args.key?(:filtering_count)
708
+ @filtering_status = args[:filtering_status] if args.key?(:filtering_status)
709
+ end
710
+ end
711
+ end
712
+
713
+ # If nativeAd is set, HTMLSnippet and videoURL should not be set.
714
+ class NativeAd
715
+ include Google::Apis::Core::Hashable
716
+
717
+ #
718
+ # Corresponds to the JSON property `advertiser`
719
+ # @return [String]
720
+ attr_accessor :advertiser
721
+
722
+ # The app icon, for app download ads.
723
+ # Corresponds to the JSON property `appIcon`
724
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::AppIcon]
725
+ attr_accessor :app_icon
726
+
727
+ # A long description of the ad.
728
+ # Corresponds to the JSON property `body`
729
+ # @return [String]
730
+ attr_accessor :body
731
+
732
+ # A label for the button that the user is supposed to click.
733
+ # Corresponds to the JSON property `callToAction`
734
+ # @return [String]
735
+ attr_accessor :call_to_action
736
+
737
+ # The URL to use for click tracking.
738
+ # Corresponds to the JSON property `clickTrackingUrl`
739
+ # @return [String]
740
+ attr_accessor :click_tracking_url
741
+
742
+ # A short title for the ad.
743
+ # Corresponds to the JSON property `headline`
744
+ # @return [String]
745
+ attr_accessor :headline
746
+
747
+ # A large image.
748
+ # Corresponds to the JSON property `image`
749
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::Image]
750
+ attr_accessor :image
751
+
752
+ # The URLs are called when the impression is rendered.
753
+ # Corresponds to the JSON property `impressionTrackingUrl`
754
+ # @return [Array<String>]
755
+ attr_accessor :impression_tracking_url
756
+
757
+ # A smaller image, for the advertiser logo.
758
+ # Corresponds to the JSON property `logo`
759
+ # @return [Google::Apis::AdexchangebuyerV1_4::Creative::NativeAd::Logo]
760
+ attr_accessor :logo
761
+
762
+ # The price of the promoted app including the currency info.
763
+ # Corresponds to the JSON property `price`
764
+ # @return [String]
765
+ attr_accessor :price
766
+
767
+ # The app rating in the app store. Must be in the range [0-5].
768
+ # Corresponds to the JSON property `starRating`
769
+ # @return [Float]
770
+ attr_accessor :star_rating
771
+
772
+ # The URL to the app store to purchase/download the promoted app.
773
+ # Corresponds to the JSON property `store`
774
+ # @return [String]
775
+ attr_accessor :store
776
+
777
+ def initialize(**args)
778
+ update!(**args)
779
+ end
780
+
781
+ # Update properties of this object
782
+ def update!(**args)
783
+ @advertiser = args[:advertiser] if args.key?(:advertiser)
784
+ @app_icon = args[:app_icon] if args.key?(:app_icon)
785
+ @body = args[:body] if args.key?(:body)
786
+ @call_to_action = args[:call_to_action] if args.key?(:call_to_action)
787
+ @click_tracking_url = args[:click_tracking_url] if args.key?(:click_tracking_url)
788
+ @headline = args[:headline] if args.key?(:headline)
789
+ @image = args[:image] if args.key?(:image)
790
+ @impression_tracking_url = args[:impression_tracking_url] if args.key?(:impression_tracking_url)
791
+ @logo = args[:logo] if args.key?(:logo)
792
+ @price = args[:price] if args.key?(:price)
793
+ @star_rating = args[:star_rating] if args.key?(:star_rating)
794
+ @store = args[:store] if args.key?(:store)
795
+ end
796
+
797
+ # The app icon, for app download ads.
798
+ class AppIcon
799
+ include Google::Apis::Core::Hashable
800
+
801
+ #
802
+ # Corresponds to the JSON property `height`
803
+ # @return [Fixnum]
804
+ attr_accessor :height
805
+
806
+ #
807
+ # Corresponds to the JSON property `url`
808
+ # @return [String]
809
+ attr_accessor :url
810
+
811
+ #
812
+ # Corresponds to the JSON property `width`
813
+ # @return [Fixnum]
814
+ attr_accessor :width
815
+
816
+ def initialize(**args)
817
+ update!(**args)
818
+ end
819
+
820
+ # Update properties of this object
821
+ def update!(**args)
822
+ @height = args[:height] if args.key?(:height)
823
+ @url = args[:url] if args.key?(:url)
824
+ @width = args[:width] if args.key?(:width)
825
+ end
826
+ end
827
+
828
+ # A large image.
829
+ class Image
830
+ include Google::Apis::Core::Hashable
831
+
832
+ #
833
+ # Corresponds to the JSON property `height`
834
+ # @return [Fixnum]
835
+ attr_accessor :height
836
+
837
+ #
838
+ # Corresponds to the JSON property `url`
839
+ # @return [String]
840
+ attr_accessor :url
841
+
842
+ #
843
+ # Corresponds to the JSON property `width`
844
+ # @return [Fixnum]
845
+ attr_accessor :width
846
+
847
+ def initialize(**args)
848
+ update!(**args)
849
+ end
850
+
851
+ # Update properties of this object
852
+ def update!(**args)
853
+ @height = args[:height] if args.key?(:height)
854
+ @url = args[:url] if args.key?(:url)
855
+ @width = args[:width] if args.key?(:width)
856
+ end
857
+ end
858
+
859
+ # A smaller image, for the advertiser logo.
860
+ class Logo
861
+ include Google::Apis::Core::Hashable
862
+
863
+ #
864
+ # Corresponds to the JSON property `height`
865
+ # @return [Fixnum]
866
+ attr_accessor :height
867
+
868
+ #
869
+ # Corresponds to the JSON property `url`
870
+ # @return [String]
871
+ attr_accessor :url
872
+
873
+ #
874
+ # Corresponds to the JSON property `width`
875
+ # @return [Fixnum]
876
+ attr_accessor :width
877
+
878
+ def initialize(**args)
879
+ update!(**args)
880
+ end
881
+
882
+ # Update properties of this object
883
+ def update!(**args)
884
+ @height = args[:height] if args.key?(:height)
885
+ @url = args[:url] if args.key?(:url)
886
+ @width = args[:width] if args.key?(:width)
887
+ end
888
+ end
889
+ end
890
+
891
+ #
892
+ class ServingRestriction
893
+ include Google::Apis::Core::Hashable
894
+
895
+ # All known contexts/restrictions.
896
+ # Corresponds to the JSON property `contexts`
897
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction::Context>]
898
+ attr_accessor :contexts
899
+
900
+ # The reasons for disapproval within this restriction, if any. Note that not all
901
+ # disapproval reasons may be categorized, so it is possible for the creative to
902
+ # have a status of DISAPPROVED or CONDITIONALLY_APPROVED with an empty list for
903
+ # disapproval_reasons. In this case, please reach out to your TAM to help debug
904
+ # the issue.
905
+ # Corresponds to the JSON property `disapprovalReasons`
906
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative::ServingRestriction::DisapprovalReason>]
907
+ attr_accessor :disapproval_reasons
908
+
909
+ # Why the creative is ineligible to serve in this context (e.g., it has been
910
+ # explicitly disapproved or is pending review).
911
+ # Corresponds to the JSON property `reason`
912
+ # @return [String]
913
+ attr_accessor :reason
914
+
915
+ def initialize(**args)
916
+ update!(**args)
917
+ end
918
+
919
+ # Update properties of this object
920
+ def update!(**args)
921
+ @contexts = args[:contexts] if args.key?(:contexts)
922
+ @disapproval_reasons = args[:disapproval_reasons] if args.key?(:disapproval_reasons)
923
+ @reason = args[:reason] if args.key?(:reason)
924
+ end
925
+
926
+ #
927
+ class Context
928
+ include Google::Apis::Core::Hashable
929
+
930
+ # Only set when contextType=AUCTION_TYPE. Represents the auction types this
931
+ # restriction applies to.
932
+ # Corresponds to the JSON property `auctionType`
933
+ # @return [Array<String>]
934
+ attr_accessor :auction_type
935
+
936
+ # The type of context (e.g., location, platform, auction type, SSL-ness).
937
+ # Corresponds to the JSON property `contextType`
938
+ # @return [String]
939
+ attr_accessor :context_type
940
+
941
+ # Only set when contextType=LOCATION. Represents the geo criterias this
942
+ # restriction applies to.
943
+ # Corresponds to the JSON property `geoCriteriaId`
944
+ # @return [Array<Fixnum>]
945
+ attr_accessor :geo_criteria_id
946
+
947
+ # Only set when contextType=PLATFORM. Represents the platforms this restriction
948
+ # applies to.
949
+ # Corresponds to the JSON property `platform`
950
+ # @return [Array<String>]
951
+ attr_accessor :platform
952
+
953
+ def initialize(**args)
954
+ update!(**args)
955
+ end
956
+
957
+ # Update properties of this object
958
+ def update!(**args)
959
+ @auction_type = args[:auction_type] if args.key?(:auction_type)
960
+ @context_type = args[:context_type] if args.key?(:context_type)
961
+ @geo_criteria_id = args[:geo_criteria_id] if args.key?(:geo_criteria_id)
962
+ @platform = args[:platform] if args.key?(:platform)
963
+ end
964
+ end
965
+
966
+ #
967
+ class DisapprovalReason
968
+ include Google::Apis::Core::Hashable
969
+
970
+ # Additional details about the reason for disapproval.
971
+ # Corresponds to the JSON property `details`
972
+ # @return [Array<String>]
973
+ attr_accessor :details
974
+
975
+ # The categorized reason for disapproval.
976
+ # Corresponds to the JSON property `reason`
977
+ # @return [String]
978
+ attr_accessor :reason
979
+
980
+ def initialize(**args)
981
+ update!(**args)
982
+ end
983
+
984
+ # Update properties of this object
985
+ def update!(**args)
986
+ @details = args[:details] if args.key?(:details)
987
+ @reason = args[:reason] if args.key?(:reason)
988
+ end
989
+ end
990
+ end
991
+ end
992
+
993
+ # The creatives feed lists the active creatives for the Ad Exchange buyer
994
+ # accounts that the user has access to. Each entry in the feed corresponds to a
995
+ # single creative.
996
+ class CreativesList
997
+ include Google::Apis::Core::Hashable
998
+
999
+ # A list of creatives.
1000
+ # Corresponds to the JSON property `items`
1001
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Creative>]
1002
+ attr_accessor :items
1003
+
1004
+ # Resource type.
1005
+ # Corresponds to the JSON property `kind`
1006
+ # @return [String]
1007
+ attr_accessor :kind
1008
+
1009
+ # Continuation token used to page through creatives. To retrieve the next page
1010
+ # of results, set the next request's "pageToken" value to this.
1011
+ # Corresponds to the JSON property `nextPageToken`
1012
+ # @return [String]
1013
+ attr_accessor :next_page_token
1014
+
1015
+ def initialize(**args)
1016
+ update!(**args)
1017
+ end
1018
+
1019
+ # Update properties of this object
1020
+ def update!(**args)
1021
+ @items = args[:items] if args.key?(:items)
1022
+ @kind = args[:kind] if args.key?(:kind)
1023
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1024
+ end
1025
+ end
1026
+
1027
+ #
1028
+ class DealTerms
1029
+ include Google::Apis::Core::Hashable
1030
+
1031
+ # Visibilty of the URL in bid requests.
1032
+ # Corresponds to the JSON property `brandingType`
1033
+ # @return [String]
1034
+ attr_accessor :branding_type
1035
+
1036
+ # Description for the proposed terms of the deal.
1037
+ # Corresponds to the JSON property `description`
1038
+ # @return [String]
1039
+ attr_accessor :description
1040
+
1041
+ # Non-binding estimate of the estimated gross spend for this deal Can be set by
1042
+ # buyer or seller.
1043
+ # Corresponds to the JSON property `estimatedGrossSpend`
1044
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
1045
+ attr_accessor :estimated_gross_spend
1046
+
1047
+ # Non-binding estimate of the impressions served per day Can be set by buyer or
1048
+ # seller.
1049
+ # Corresponds to the JSON property `estimatedImpressionsPerDay`
1050
+ # @return [String]
1051
+ attr_accessor :estimated_impressions_per_day
1052
+
1053
+ # The terms for guaranteed fixed price deals.
1054
+ # Corresponds to the JSON property `guaranteedFixedPriceTerms`
1055
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsGuaranteedFixedPriceTerms]
1056
+ attr_accessor :guaranteed_fixed_price_terms
1057
+
1058
+ # The terms for non-guaranteed auction deals.
1059
+ # Corresponds to the JSON property `nonGuaranteedAuctionTerms`
1060
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsNonGuaranteedAuctionTerms]
1061
+ attr_accessor :non_guaranteed_auction_terms
1062
+
1063
+ # The terms for non-guaranteed fixed price deals.
1064
+ # Corresponds to the JSON property `nonGuaranteedFixedPriceTerms`
1065
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTermsNonGuaranteedFixedPriceTerms]
1066
+ attr_accessor :non_guaranteed_fixed_price_terms
1067
+
1068
+ def initialize(**args)
1069
+ update!(**args)
1070
+ end
1071
+
1072
+ # Update properties of this object
1073
+ def update!(**args)
1074
+ @branding_type = args[:branding_type] if args.key?(:branding_type)
1075
+ @description = args[:description] if args.key?(:description)
1076
+ @estimated_gross_spend = args[:estimated_gross_spend] if args.key?(:estimated_gross_spend)
1077
+ @estimated_impressions_per_day = args[:estimated_impressions_per_day] if args.key?(:estimated_impressions_per_day)
1078
+ @guaranteed_fixed_price_terms = args[:guaranteed_fixed_price_terms] if args.key?(:guaranteed_fixed_price_terms)
1079
+ @non_guaranteed_auction_terms = args[:non_guaranteed_auction_terms] if args.key?(:non_guaranteed_auction_terms)
1080
+ @non_guaranteed_fixed_price_terms = args[:non_guaranteed_fixed_price_terms] if args.key?(:non_guaranteed_fixed_price_terms)
1081
+ end
1082
+ end
1083
+
1084
+ #
1085
+ class DealTermsGuaranteedFixedPriceTerms
1086
+ include Google::Apis::Core::Hashable
1087
+
1088
+ # Fixed price for the specified buyer.
1089
+ # Corresponds to the JSON property `fixedPrices`
1090
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1091
+ attr_accessor :fixed_prices
1092
+
1093
+ # Guaranteed impressions as a percentage. This is the percentage of guaranteed
1094
+ # looks that the buyer is guaranteeing to buy.
1095
+ # Corresponds to the JSON property `guaranteedImpressions`
1096
+ # @return [String]
1097
+ attr_accessor :guaranteed_impressions
1098
+
1099
+ # Count of guaranteed looks. Required for deal, optional for product.
1100
+ # Corresponds to the JSON property `guaranteedLooks`
1101
+ # @return [String]
1102
+ attr_accessor :guaranteed_looks
1103
+
1104
+ def initialize(**args)
1105
+ update!(**args)
1106
+ end
1107
+
1108
+ # Update properties of this object
1109
+ def update!(**args)
1110
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
1111
+ @guaranteed_impressions = args[:guaranteed_impressions] if args.key?(:guaranteed_impressions)
1112
+ @guaranteed_looks = args[:guaranteed_looks] if args.key?(:guaranteed_looks)
1113
+ end
1114
+ end
1115
+
1116
+ #
1117
+ class DealTermsNonGuaranteedAuctionTerms
1118
+ include Google::Apis::Core::Hashable
1119
+
1120
+ # Id of the corresponding private auction.
1121
+ # Corresponds to the JSON property `privateAuctionId`
1122
+ # @return [String]
1123
+ attr_accessor :private_auction_id
1124
+
1125
+ # Reserve price for the specified buyer.
1126
+ # Corresponds to the JSON property `reservePricePerBuyers`
1127
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1128
+ attr_accessor :reserve_price_per_buyers
1129
+
1130
+ def initialize(**args)
1131
+ update!(**args)
1132
+ end
1133
+
1134
+ # Update properties of this object
1135
+ def update!(**args)
1136
+ @private_auction_id = args[:private_auction_id] if args.key?(:private_auction_id)
1137
+ @reserve_price_per_buyers = args[:reserve_price_per_buyers] if args.key?(:reserve_price_per_buyers)
1138
+ end
1139
+ end
1140
+
1141
+ #
1142
+ class DealTermsNonGuaranteedFixedPriceTerms
1143
+ include Google::Apis::Core::Hashable
1144
+
1145
+ # Fixed price for the specified buyer.
1146
+ # Corresponds to the JSON property `fixedPrices`
1147
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PricePerBuyer>]
1148
+ attr_accessor :fixed_prices
1149
+
1150
+ def initialize(**args)
1151
+ update!(**args)
1152
+ end
1153
+
1154
+ # Update properties of this object
1155
+ def update!(**args)
1156
+ @fixed_prices = args[:fixed_prices] if args.key?(:fixed_prices)
1157
+ end
1158
+ end
1159
+
1160
+ #
1161
+ class DeleteOrderDealsRequest
1162
+ include Google::Apis::Core::Hashable
1163
+
1164
+ # List of deals to delete for a given proposal
1165
+ # Corresponds to the JSON property `dealIds`
1166
+ # @return [Array<String>]
1167
+ attr_accessor :deal_ids
1168
+
1169
+ # The last known proposal revision number.
1170
+ # Corresponds to the JSON property `proposalRevisionNumber`
1171
+ # @return [String]
1172
+ attr_accessor :proposal_revision_number
1173
+
1174
+ #
1175
+ # Corresponds to the JSON property `updateAction`
1176
+ # @return [String]
1177
+ attr_accessor :update_action
1178
+
1179
+ def initialize(**args)
1180
+ update!(**args)
1181
+ end
1182
+
1183
+ # Update properties of this object
1184
+ def update!(**args)
1185
+ @deal_ids = args[:deal_ids] if args.key?(:deal_ids)
1186
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1187
+ @update_action = args[:update_action] if args.key?(:update_action)
1188
+ end
1189
+ end
1190
+
1191
+ #
1192
+ class DeleteOrderDealsResponse
1193
+ include Google::Apis::Core::Hashable
1194
+
1195
+ # List of deals deleted (in the same proposal as passed in the request)
1196
+ # Corresponds to the JSON property `deals`
1197
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1198
+ attr_accessor :deals
1199
+
1200
+ # The updated revision number for the proposal.
1201
+ # Corresponds to the JSON property `proposalRevisionNumber`
1202
+ # @return [String]
1203
+ attr_accessor :proposal_revision_number
1204
+
1205
+ def initialize(**args)
1206
+ update!(**args)
1207
+ end
1208
+
1209
+ # Update properties of this object
1210
+ def update!(**args)
1211
+ @deals = args[:deals] if args.key?(:deals)
1212
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1213
+ end
1214
+ end
1215
+
1216
+ #
1217
+ class DeliveryControl
1218
+ include Google::Apis::Core::Hashable
1219
+
1220
+ #
1221
+ # Corresponds to the JSON property `creativeBlockingLevel`
1222
+ # @return [String]
1223
+ attr_accessor :creative_blocking_level
1224
+
1225
+ #
1226
+ # Corresponds to the JSON property `deliveryRateType`
1227
+ # @return [String]
1228
+ attr_accessor :delivery_rate_type
1229
+
1230
+ #
1231
+ # Corresponds to the JSON property `frequencyCaps`
1232
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::DeliveryControlFrequencyCap>]
1233
+ attr_accessor :frequency_caps
1234
+
1235
+ def initialize(**args)
1236
+ update!(**args)
1237
+ end
1238
+
1239
+ # Update properties of this object
1240
+ def update!(**args)
1241
+ @creative_blocking_level = args[:creative_blocking_level] if args.key?(:creative_blocking_level)
1242
+ @delivery_rate_type = args[:delivery_rate_type] if args.key?(:delivery_rate_type)
1243
+ @frequency_caps = args[:frequency_caps] if args.key?(:frequency_caps)
1244
+ end
1245
+ end
1246
+
1247
+ #
1248
+ class DeliveryControlFrequencyCap
1249
+ include Google::Apis::Core::Hashable
1250
+
1251
+ #
1252
+ # Corresponds to the JSON property `maxImpressions`
1253
+ # @return [Fixnum]
1254
+ attr_accessor :max_impressions
1255
+
1256
+ #
1257
+ # Corresponds to the JSON property `numTimeUnits`
1258
+ # @return [Fixnum]
1259
+ attr_accessor :num_time_units
1260
+
1261
+ #
1262
+ # Corresponds to the JSON property `timeUnitType`
1263
+ # @return [String]
1264
+ attr_accessor :time_unit_type
1265
+
1266
+ def initialize(**args)
1267
+ update!(**args)
1268
+ end
1269
+
1270
+ # Update properties of this object
1271
+ def update!(**args)
1272
+ @max_impressions = args[:max_impressions] if args.key?(:max_impressions)
1273
+ @num_time_units = args[:num_time_units] if args.key?(:num_time_units)
1274
+ @time_unit_type = args[:time_unit_type] if args.key?(:time_unit_type)
1275
+ end
1276
+ end
1277
+
1278
+ #
1279
+ class EditAllOrderDealsRequest
1280
+ include Google::Apis::Core::Hashable
1281
+
1282
+ # List of deals to edit. Service may perform 3 different operations based on
1283
+ # comparison of deals in this list vs deals already persisted in database: 1.
1284
+ # Add new deal to proposal If a deal in this list does not exist in the proposal,
1285
+ # the service will create a new deal and add it to the proposal. Validation
1286
+ # will follow AddOrderDealsRequest. 2. Update existing deal in the proposal If a
1287
+ # deal in this list already exist in the proposal, the service will update that
1288
+ # existing deal to this new deal in the request. Validation will follow
1289
+ # UpdateOrderDealsRequest. 3. Delete deals from the proposal (just need the id)
1290
+ # If a existing deal in the proposal is not present in this list, the service
1291
+ # will delete that deal from the proposal. Validation will follow
1292
+ # DeleteOrderDealsRequest.
1293
+ # Corresponds to the JSON property `deals`
1294
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1295
+ attr_accessor :deals
1296
+
1297
+ # Represents a proposal in the marketplace. A proposal is the unit of
1298
+ # negotiation between a seller and a buyer and contains deals which are served.
1299
+ # Each field in a proposal can have one of the following setting:
1300
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
1301
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
1302
+ # field. (updatable) - The field is updatable at all times by either buyer or
1303
+ # the seller.
1304
+ # Corresponds to the JSON property `proposal`
1305
+ # @return [Google::Apis::AdexchangebuyerV1_4::Proposal]
1306
+ attr_accessor :proposal
1307
+
1308
+ # The last known revision number for the proposal.
1309
+ # Corresponds to the JSON property `proposalRevisionNumber`
1310
+ # @return [String]
1311
+ attr_accessor :proposal_revision_number
1312
+
1313
+ # Indicates an optional action to take on the proposal
1314
+ # Corresponds to the JSON property `updateAction`
1315
+ # @return [String]
1316
+ attr_accessor :update_action
1317
+
1318
+ def initialize(**args)
1319
+ update!(**args)
1320
+ end
1321
+
1322
+ # Update properties of this object
1323
+ def update!(**args)
1324
+ @deals = args[:deals] if args.key?(:deals)
1325
+ @proposal = args[:proposal] if args.key?(:proposal)
1326
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1327
+ @update_action = args[:update_action] if args.key?(:update_action)
1328
+ end
1329
+ end
1330
+
1331
+ #
1332
+ class EditAllOrderDealsResponse
1333
+ include Google::Apis::Core::Hashable
1334
+
1335
+ # List of all deals in the proposal after edit.
1336
+ # Corresponds to the JSON property `deals`
1337
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1338
+ attr_accessor :deals
1339
+
1340
+ def initialize(**args)
1341
+ update!(**args)
1342
+ end
1343
+
1344
+ # Update properties of this object
1345
+ def update!(**args)
1346
+ @deals = args[:deals] if args.key?(:deals)
1347
+ end
1348
+ end
1349
+
1350
+ #
1351
+ class GetOffersResponse
1352
+ include Google::Apis::Core::Hashable
1353
+
1354
+ # The returned list of products.
1355
+ # Corresponds to the JSON property `products`
1356
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Product>]
1357
+ attr_accessor :products
1358
+
1359
+ def initialize(**args)
1360
+ update!(**args)
1361
+ end
1362
+
1363
+ # Update properties of this object
1364
+ def update!(**args)
1365
+ @products = args[:products] if args.key?(:products)
1366
+ end
1367
+ end
1368
+
1369
+ #
1370
+ class GetOrderDealsResponse
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # List of deals for the proposal
1374
+ # Corresponds to the JSON property `deals`
1375
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceDeal>]
1376
+ attr_accessor :deals
1377
+
1378
+ def initialize(**args)
1379
+ update!(**args)
1380
+ end
1381
+
1382
+ # Update properties of this object
1383
+ def update!(**args)
1384
+ @deals = args[:deals] if args.key?(:deals)
1385
+ end
1386
+ end
1387
+
1388
+ #
1389
+ class GetOrderNotesResponse
1390
+ include Google::Apis::Core::Hashable
1391
+
1392
+ # The list of matching notes.
1393
+ # Corresponds to the JSON property `notes`
1394
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceNote>]
1395
+ attr_accessor :notes
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ @notes = args[:notes] if args.key?(:notes)
1404
+ end
1405
+ end
1406
+
1407
+ #
1408
+ class GetOrdersResponse
1409
+ include Google::Apis::Core::Hashable
1410
+
1411
+ # The list of matching proposals.
1412
+ # Corresponds to the JSON property `proposals`
1413
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::Proposal>]
1414
+ attr_accessor :proposals
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @proposals = args[:proposals] if args.key?(:proposals)
1423
+ end
1424
+ end
1425
+
1426
+ # A proposal can contain multiple deals. A deal contains the terms and targeting
1427
+ # information that is used for serving.
1428
+ class MarketplaceDeal
1429
+ include Google::Apis::Core::Hashable
1430
+
1431
+ # Buyer private data (hidden from seller).
1432
+ # Corresponds to the JSON property `buyerPrivateData`
1433
+ # @return [Google::Apis::AdexchangebuyerV1_4::PrivateData]
1434
+ attr_accessor :buyer_private_data
1435
+
1436
+ # The time (ms since epoch) of the deal creation. (readonly)
1437
+ # Corresponds to the JSON property `creationTimeMs`
1438
+ # @return [String]
1439
+ attr_accessor :creation_time_ms
1440
+
1441
+ # Specifies the creative pre-approval policy (buyer-readonly)
1442
+ # Corresponds to the JSON property `creativePreApprovalPolicy`
1443
+ # @return [String]
1444
+ attr_accessor :creative_pre_approval_policy
1445
+
1446
+ # A unique deal=id for the deal (readonly).
1447
+ # Corresponds to the JSON property `dealId`
1448
+ # @return [String]
1449
+ attr_accessor :deal_id
1450
+
1451
+ # The set of fields around delivery control that are interesting for a buyer to
1452
+ # see but are non-negotiable. These are set by the publisher. This message is
1453
+ # assigned an id of 100 since some day we would want to model this as a protobuf
1454
+ # extension.
1455
+ # Corresponds to the JSON property `deliveryControl`
1456
+ # @return [Google::Apis::AdexchangebuyerV1_4::DeliveryControl]
1457
+ attr_accessor :delivery_control
1458
+
1459
+ # The external deal id assigned to this deal once the deal is finalized. This is
1460
+ # the deal-id that shows up in serving/reporting etc. (readonly)
1461
+ # Corresponds to the JSON property `externalDealId`
1462
+ # @return [String]
1463
+ attr_accessor :external_deal_id
1464
+
1465
+ # Proposed flight end time of the deal (ms since epoch) This will generally be
1466
+ # stored in a granularity of a second. (updatable)
1467
+ # Corresponds to the JSON property `flightEndTimeMs`
1468
+ # @return [String]
1469
+ attr_accessor :flight_end_time_ms
1470
+
1471
+ # Proposed flight start time of the deal (ms since epoch) This will generally be
1472
+ # stored in a granularity of a second. (updatable)
1473
+ # Corresponds to the JSON property `flightStartTimeMs`
1474
+ # @return [String]
1475
+ attr_accessor :flight_start_time_ms
1476
+
1477
+ # Description for the deal terms. (updatable)
1478
+ # Corresponds to the JSON property `inventoryDescription`
1479
+ # @return [String]
1480
+ attr_accessor :inventory_description
1481
+
1482
+ # Identifies what kind of resource this is. Value: the fixed string "
1483
+ # adexchangebuyer#marketplaceDeal".
1484
+ # Corresponds to the JSON property `kind`
1485
+ # @return [String]
1486
+ attr_accessor :kind
1487
+
1488
+ # The time (ms since epoch) when the deal was last updated. (readonly)
1489
+ # Corresponds to the JSON property `lastUpdateTimeMs`
1490
+ # @return [String]
1491
+ attr_accessor :last_update_time_ms
1492
+
1493
+ # The name of the deal. (updatable)
1494
+ # Corresponds to the JSON property `name`
1495
+ # @return [String]
1496
+ attr_accessor :name
1497
+
1498
+ # The product-id from which this deal was created. (readonly, except on create)
1499
+ # Corresponds to the JSON property `productId`
1500
+ # @return [String]
1501
+ attr_accessor :product_id
1502
+
1503
+ # The revision number of the product that the deal was created from (readonly,
1504
+ # except on create)
1505
+ # Corresponds to the JSON property `productRevisionNumber`
1506
+ # @return [String]
1507
+ attr_accessor :product_revision_number
1508
+
1509
+ #
1510
+ # Corresponds to the JSON property `proposalId`
1511
+ # @return [String]
1512
+ attr_accessor :proposal_id
1513
+
1514
+ # Optional Seller contact information for the deal (buyer-readonly)
1515
+ # Corresponds to the JSON property `sellerContacts`
1516
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
1517
+ attr_accessor :seller_contacts
1518
+
1519
+ # The shared targeting visible to buyers and sellers. (updatable)
1520
+ # Corresponds to the JSON property `sharedTargetings`
1521
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::SharedTargeting>]
1522
+ attr_accessor :shared_targetings
1523
+
1524
+ # The syndication product associated with the deal. (readonly, except on create)
1525
+ # Corresponds to the JSON property `syndicationProduct`
1526
+ # @return [String]
1527
+ attr_accessor :syndication_product
1528
+
1529
+ # The negotiable terms of the deal. (updatable)
1530
+ # Corresponds to the JSON property `terms`
1531
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTerms]
1532
+ attr_accessor :terms
1533
+
1534
+ #
1535
+ # Corresponds to the JSON property `webPropertyCode`
1536
+ # @return [String]
1537
+ attr_accessor :web_property_code
1538
+
1539
+ def initialize(**args)
1540
+ update!(**args)
1541
+ end
1542
+
1543
+ # Update properties of this object
1544
+ def update!(**args)
1545
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
1546
+ @creation_time_ms = args[:creation_time_ms] if args.key?(:creation_time_ms)
1547
+ @creative_pre_approval_policy = args[:creative_pre_approval_policy] if args.key?(:creative_pre_approval_policy)
1548
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
1549
+ @delivery_control = args[:delivery_control] if args.key?(:delivery_control)
1550
+ @external_deal_id = args[:external_deal_id] if args.key?(:external_deal_id)
1551
+ @flight_end_time_ms = args[:flight_end_time_ms] if args.key?(:flight_end_time_ms)
1552
+ @flight_start_time_ms = args[:flight_start_time_ms] if args.key?(:flight_start_time_ms)
1553
+ @inventory_description = args[:inventory_description] if args.key?(:inventory_description)
1554
+ @kind = args[:kind] if args.key?(:kind)
1555
+ @last_update_time_ms = args[:last_update_time_ms] if args.key?(:last_update_time_ms)
1556
+ @name = args[:name] if args.key?(:name)
1557
+ @product_id = args[:product_id] if args.key?(:product_id)
1558
+ @product_revision_number = args[:product_revision_number] if args.key?(:product_revision_number)
1559
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
1560
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
1561
+ @shared_targetings = args[:shared_targetings] if args.key?(:shared_targetings)
1562
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
1563
+ @terms = args[:terms] if args.key?(:terms)
1564
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
1565
+ end
1566
+ end
1567
+
1568
+ #
1569
+ class MarketplaceDealParty
1570
+ include Google::Apis::Core::Hashable
1571
+
1572
+ # The buyer/seller associated with the deal. One of buyer/seller is specified
1573
+ # for a deal-party.
1574
+ # Corresponds to the JSON property `buyer`
1575
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
1576
+ attr_accessor :buyer
1577
+
1578
+ # The buyer/seller associated with the deal. One of buyer/seller is specified
1579
+ # for a deal party.
1580
+ # Corresponds to the JSON property `seller`
1581
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
1582
+ attr_accessor :seller
1583
+
1584
+ def initialize(**args)
1585
+ update!(**args)
1586
+ end
1587
+
1588
+ # Update properties of this object
1589
+ def update!(**args)
1590
+ @buyer = args[:buyer] if args.key?(:buyer)
1591
+ @seller = args[:seller] if args.key?(:seller)
1592
+ end
1593
+ end
1594
+
1595
+ #
1596
+ class MarketplaceLabel
1597
+ include Google::Apis::Core::Hashable
1598
+
1599
+ # The accountId of the party that created the label.
1600
+ # Corresponds to the JSON property `accountId`
1601
+ # @return [String]
1602
+ attr_accessor :account_id
1603
+
1604
+ # The creation time (in ms since epoch) for the label.
1605
+ # Corresponds to the JSON property `createTimeMs`
1606
+ # @return [String]
1607
+ attr_accessor :create_time_ms
1608
+
1609
+ # Information about the party that created the label.
1610
+ # Corresponds to the JSON property `deprecatedMarketplaceDealParty`
1611
+ # @return [Google::Apis::AdexchangebuyerV1_4::MarketplaceDealParty]
1612
+ attr_accessor :deprecated_marketplace_deal_party
1613
+
1614
+ # The label to use.
1615
+ # Corresponds to the JSON property `label`
1616
+ # @return [String]
1617
+ attr_accessor :label
1618
+
1619
+ def initialize(**args)
1620
+ update!(**args)
1621
+ end
1622
+
1623
+ # Update properties of this object
1624
+ def update!(**args)
1625
+ @account_id = args[:account_id] if args.key?(:account_id)
1626
+ @create_time_ms = args[:create_time_ms] if args.key?(:create_time_ms)
1627
+ @deprecated_marketplace_deal_party = args[:deprecated_marketplace_deal_party] if args.key?(:deprecated_marketplace_deal_party)
1628
+ @label = args[:label] if args.key?(:label)
1629
+ end
1630
+ end
1631
+
1632
+ # A proposal is associated with a bunch of notes which may optionally be
1633
+ # associated with a deal and/or revision number.
1634
+ class MarketplaceNote
1635
+ include Google::Apis::Core::Hashable
1636
+
1637
+ # The role of the person (buyer/seller) creating the note. (readonly)
1638
+ # Corresponds to the JSON property `creatorRole`
1639
+ # @return [String]
1640
+ attr_accessor :creator_role
1641
+
1642
+ # Notes can optionally be associated with a deal. (readonly, except on create)
1643
+ # Corresponds to the JSON property `dealId`
1644
+ # @return [String]
1645
+ attr_accessor :deal_id
1646
+
1647
+ # Identifies what kind of resource this is. Value: the fixed string "
1648
+ # adexchangebuyer#marketplaceNote".
1649
+ # Corresponds to the JSON property `kind`
1650
+ # @return [String]
1651
+ attr_accessor :kind
1652
+
1653
+ # The actual note to attach. (readonly, except on create)
1654
+ # Corresponds to the JSON property `note`
1655
+ # @return [String]
1656
+ attr_accessor :note
1657
+
1658
+ # The unique id for the note. (readonly)
1659
+ # Corresponds to the JSON property `noteId`
1660
+ # @return [String]
1661
+ attr_accessor :note_id
1662
+
1663
+ # The proposalId that a note is attached to. (readonly)
1664
+ # Corresponds to the JSON property `proposalId`
1665
+ # @return [String]
1666
+ attr_accessor :proposal_id
1667
+
1668
+ # If the note is associated with a proposal revision number, then store that
1669
+ # here. (readonly, except on create)
1670
+ # Corresponds to the JSON property `proposalRevisionNumber`
1671
+ # @return [String]
1672
+ attr_accessor :proposal_revision_number
1673
+
1674
+ # The timestamp (ms since epoch) that this note was created. (readonly)
1675
+ # Corresponds to the JSON property `timestampMs`
1676
+ # @return [String]
1677
+ attr_accessor :timestamp_ms
1678
+
1679
+ def initialize(**args)
1680
+ update!(**args)
1681
+ end
1682
+
1683
+ # Update properties of this object
1684
+ def update!(**args)
1685
+ @creator_role = args[:creator_role] if args.key?(:creator_role)
1686
+ @deal_id = args[:deal_id] if args.key?(:deal_id)
1687
+ @kind = args[:kind] if args.key?(:kind)
1688
+ @note = args[:note] if args.key?(:note)
1689
+ @note_id = args[:note_id] if args.key?(:note_id)
1690
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
1691
+ @proposal_revision_number = args[:proposal_revision_number] if args.key?(:proposal_revision_number)
1692
+ @timestamp_ms = args[:timestamp_ms] if args.key?(:timestamp_ms)
1693
+ end
1694
+ end
1695
+
1696
+ # The configuration data for an Ad Exchange performance report list.
1697
+ class PerformanceReport
1698
+ include Google::Apis::Core::Hashable
1699
+
1700
+ # The number of bid responses with an ad.
1701
+ # Corresponds to the JSON property `bidRate`
1702
+ # @return [Float]
1703
+ attr_accessor :bid_rate
1704
+
1705
+ # The number of bid requests sent to your bidder.
1706
+ # Corresponds to the JSON property `bidRequestRate`
1707
+ # @return [Float]
1708
+ attr_accessor :bid_request_rate
1709
+
1710
+ # Rate of various prefiltering statuses per match. Please refer to the callout-
1711
+ # status-codes.txt file for different statuses.
1712
+ # Corresponds to the JSON property `calloutStatusRate`
1713
+ # @return [Array<Object>]
1714
+ attr_accessor :callout_status_rate
1715
+
1716
+ # Average QPS for cookie matcher operations.
1717
+ # Corresponds to the JSON property `cookieMatcherStatusRate`
1718
+ # @return [Array<Object>]
1719
+ attr_accessor :cookie_matcher_status_rate
1720
+
1721
+ # Rate of ads with a given status. Please refer to the creative-status-codes.txt
1722
+ # file for different statuses.
1723
+ # Corresponds to the JSON property `creativeStatusRate`
1724
+ # @return [Array<Object>]
1725
+ attr_accessor :creative_status_rate
1726
+
1727
+ # The number of bid responses that were filtered due to a policy violation or
1728
+ # other errors.
1729
+ # Corresponds to the JSON property `filteredBidRate`
1730
+ # @return [Float]
1731
+ attr_accessor :filtered_bid_rate
1732
+
1733
+ # Average QPS for hosted match operations.
1734
+ # Corresponds to the JSON property `hostedMatchStatusRate`
1735
+ # @return [Array<Object>]
1736
+ attr_accessor :hosted_match_status_rate
1737
+
1738
+ # The number of potential queries based on your pretargeting settings.
1739
+ # Corresponds to the JSON property `inventoryMatchRate`
1740
+ # @return [Float]
1741
+ attr_accessor :inventory_match_rate
1742
+
1743
+ # Resource type.
1744
+ # Corresponds to the JSON property `kind`
1745
+ # @return [String]
1746
+ attr_accessor :kind
1747
+
1748
+ # The 50th percentile round trip latency(ms) as perceived from Google servers
1749
+ # for the duration period covered by the report.
1750
+ # Corresponds to the JSON property `latency50thPercentile`
1751
+ # @return [Float]
1752
+ attr_accessor :latency_50th_percentile
1753
+
1754
+ # The 85th percentile round trip latency(ms) as perceived from Google servers
1755
+ # for the duration period covered by the report.
1756
+ # Corresponds to the JSON property `latency85thPercentile`
1757
+ # @return [Float]
1758
+ attr_accessor :latency_85th_percentile
1759
+
1760
+ # The 95th percentile round trip latency(ms) as perceived from Google servers
1761
+ # for the duration period covered by the report.
1762
+ # Corresponds to the JSON property `latency95thPercentile`
1763
+ # @return [Float]
1764
+ attr_accessor :latency_95th_percentile
1765
+
1766
+ # Rate of various quota account statuses per quota check.
1767
+ # Corresponds to the JSON property `noQuotaInRegion`
1768
+ # @return [Float]
1769
+ attr_accessor :no_quota_in_region
1770
+
1771
+ # Rate of various quota account statuses per quota check.
1772
+ # Corresponds to the JSON property `outOfQuota`
1773
+ # @return [Float]
1774
+ attr_accessor :out_of_quota
1775
+
1776
+ # Average QPS for pixel match requests from clients.
1777
+ # Corresponds to the JSON property `pixelMatchRequests`
1778
+ # @return [Float]
1779
+ attr_accessor :pixel_match_requests
1780
+
1781
+ # Average QPS for pixel match responses from clients.
1782
+ # Corresponds to the JSON property `pixelMatchResponses`
1783
+ # @return [Float]
1784
+ attr_accessor :pixel_match_responses
1785
+
1786
+ # The configured quota limits for this account.
1787
+ # Corresponds to the JSON property `quotaConfiguredLimit`
1788
+ # @return [Float]
1789
+ attr_accessor :quota_configured_limit
1790
+
1791
+ # The throttled quota limits for this account.
1792
+ # Corresponds to the JSON property `quotaThrottledLimit`
1793
+ # @return [Float]
1794
+ attr_accessor :quota_throttled_limit
1795
+
1796
+ # The trading location of this data.
1797
+ # Corresponds to the JSON property `region`
1798
+ # @return [String]
1799
+ attr_accessor :region
1800
+
1801
+ # The number of properly formed bid responses received by our servers within the
1802
+ # deadline.
1803
+ # Corresponds to the JSON property `successfulRequestRate`
1804
+ # @return [Float]
1805
+ attr_accessor :successful_request_rate
1806
+
1807
+ # The unix timestamp of the starting time of this performance data.
1808
+ # Corresponds to the JSON property `timestamp`
1809
+ # @return [String]
1810
+ attr_accessor :timestamp
1811
+
1812
+ # The number of bid responses that were unsuccessful due to timeouts, incorrect
1813
+ # formatting, etc.
1814
+ # Corresponds to the JSON property `unsuccessfulRequestRate`
1815
+ # @return [Float]
1816
+ attr_accessor :unsuccessful_request_rate
1817
+
1818
+ def initialize(**args)
1819
+ update!(**args)
1820
+ end
1821
+
1822
+ # Update properties of this object
1823
+ def update!(**args)
1824
+ @bid_rate = args[:bid_rate] if args.key?(:bid_rate)
1825
+ @bid_request_rate = args[:bid_request_rate] if args.key?(:bid_request_rate)
1826
+ @callout_status_rate = args[:callout_status_rate] if args.key?(:callout_status_rate)
1827
+ @cookie_matcher_status_rate = args[:cookie_matcher_status_rate] if args.key?(:cookie_matcher_status_rate)
1828
+ @creative_status_rate = args[:creative_status_rate] if args.key?(:creative_status_rate)
1829
+ @filtered_bid_rate = args[:filtered_bid_rate] if args.key?(:filtered_bid_rate)
1830
+ @hosted_match_status_rate = args[:hosted_match_status_rate] if args.key?(:hosted_match_status_rate)
1831
+ @inventory_match_rate = args[:inventory_match_rate] if args.key?(:inventory_match_rate)
1832
+ @kind = args[:kind] if args.key?(:kind)
1833
+ @latency_50th_percentile = args[:latency_50th_percentile] if args.key?(:latency_50th_percentile)
1834
+ @latency_85th_percentile = args[:latency_85th_percentile] if args.key?(:latency_85th_percentile)
1835
+ @latency_95th_percentile = args[:latency_95th_percentile] if args.key?(:latency_95th_percentile)
1836
+ @no_quota_in_region = args[:no_quota_in_region] if args.key?(:no_quota_in_region)
1837
+ @out_of_quota = args[:out_of_quota] if args.key?(:out_of_quota)
1838
+ @pixel_match_requests = args[:pixel_match_requests] if args.key?(:pixel_match_requests)
1839
+ @pixel_match_responses = args[:pixel_match_responses] if args.key?(:pixel_match_responses)
1840
+ @quota_configured_limit = args[:quota_configured_limit] if args.key?(:quota_configured_limit)
1841
+ @quota_throttled_limit = args[:quota_throttled_limit] if args.key?(:quota_throttled_limit)
1842
+ @region = args[:region] if args.key?(:region)
1843
+ @successful_request_rate = args[:successful_request_rate] if args.key?(:successful_request_rate)
1844
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
1845
+ @unsuccessful_request_rate = args[:unsuccessful_request_rate] if args.key?(:unsuccessful_request_rate)
1846
+ end
1847
+ end
1848
+
1849
+ # The configuration data for an Ad Exchange performance report list. https://
1850
+ # sites.google.com/a/google.com/adx-integration/Home/engineering/binary-releases/
1851
+ # rtb-api-release https://cs.corp.google.com/#piper///depot/google3/contentads/
1852
+ # adx/tools/rtb_api/adxrtb.py
1853
+ class PerformanceReportList
1854
+ include Google::Apis::Core::Hashable
1855
+
1856
+ # Resource type.
1857
+ # Corresponds to the JSON property `kind`
1858
+ # @return [String]
1859
+ attr_accessor :kind
1860
+
1861
+ # A list of performance reports relevant for the account.
1862
+ # Corresponds to the JSON property `performanceReport`
1863
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PerformanceReport>]
1864
+ attr_accessor :performance_report
1865
+
1866
+ def initialize(**args)
1867
+ update!(**args)
1868
+ end
1869
+
1870
+ # Update properties of this object
1871
+ def update!(**args)
1872
+ @kind = args[:kind] if args.key?(:kind)
1873
+ @performance_report = args[:performance_report] if args.key?(:performance_report)
1874
+ end
1875
+ end
1876
+
1877
+ #
1878
+ class PretargetingConfig
1879
+ include Google::Apis::Core::Hashable
1880
+
1881
+ # The id for billing purposes, provided for reference. Leave this field blank
1882
+ # for insert requests; the id will be generated automatically.
1883
+ # Corresponds to the JSON property `billingId`
1884
+ # @return [String]
1885
+ attr_accessor :billing_id
1886
+
1887
+ # The config id; generated automatically. Leave this field blank for insert
1888
+ # requests.
1889
+ # Corresponds to the JSON property `configId`
1890
+ # @return [String]
1891
+ attr_accessor :config_id
1892
+
1893
+ # The name of the config. Must be unique. Required for all requests.
1894
+ # Corresponds to the JSON property `configName`
1895
+ # @return [String]
1896
+ attr_accessor :config_name
1897
+
1898
+ # List must contain exactly one of PRETARGETING_CREATIVE_TYPE_HTML or
1899
+ # PRETARGETING_CREATIVE_TYPE_VIDEO.
1900
+ # Corresponds to the JSON property `creativeType`
1901
+ # @return [Array<String>]
1902
+ attr_accessor :creative_type
1903
+
1904
+ # Requests which allow one of these (width, height) pairs will match. All pairs
1905
+ # must be supported ad dimensions.
1906
+ # Corresponds to the JSON property `dimensions`
1907
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::Dimension>]
1908
+ attr_accessor :dimensions
1909
+
1910
+ # Requests with any of these content labels will not match. Values are from
1911
+ # content-labels.txt in the downloadable files section.
1912
+ # Corresponds to the JSON property `excludedContentLabels`
1913
+ # @return [Array<String>]
1914
+ attr_accessor :excluded_content_labels
1915
+
1916
+ # Requests containing any of these geo criteria ids will not match.
1917
+ # Corresponds to the JSON property `excludedGeoCriteriaIds`
1918
+ # @return [Array<String>]
1919
+ attr_accessor :excluded_geo_criteria_ids
1920
+
1921
+ # Requests containing any of these placements will not match.
1922
+ # Corresponds to the JSON property `excludedPlacements`
1923
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::ExcludedPlacement>]
1924
+ attr_accessor :excluded_placements
1925
+
1926
+ # Requests containing any of these users list ids will not match.
1927
+ # Corresponds to the JSON property `excludedUserLists`
1928
+ # @return [Array<String>]
1929
+ attr_accessor :excluded_user_lists
1930
+
1931
+ # Requests containing any of these vertical ids will not match. Values are from
1932
+ # the publisher-verticals.txt file in the downloadable files section.
1933
+ # Corresponds to the JSON property `excludedVerticals`
1934
+ # @return [Array<String>]
1935
+ attr_accessor :excluded_verticals
1936
+
1937
+ # Requests containing any of these geo criteria ids will match.
1938
+ # Corresponds to the JSON property `geoCriteriaIds`
1939
+ # @return [Array<String>]
1940
+ attr_accessor :geo_criteria_ids
1941
+
1942
+ # Whether this config is active. Required for all requests.
1943
+ # Corresponds to the JSON property `isActive`
1944
+ # @return [Boolean]
1945
+ attr_accessor :is_active
1946
+ alias_method :is_active?, :is_active
1947
+
1948
+ # The kind of the resource, i.e. "adexchangebuyer#pretargetingConfig".
1949
+ # Corresponds to the JSON property `kind`
1950
+ # @return [String]
1951
+ attr_accessor :kind
1952
+
1953
+ # Request containing any of these language codes will match.
1954
+ # Corresponds to the JSON property `languages`
1955
+ # @return [Array<String>]
1956
+ attr_accessor :languages
1957
+
1958
+ # Requests containing any of these mobile carrier ids will match. Values are
1959
+ # from mobile-carriers.csv in the downloadable files section.
1960
+ # Corresponds to the JSON property `mobileCarriers`
1961
+ # @return [Array<String>]
1962
+ attr_accessor :mobile_carriers
1963
+
1964
+ # Requests containing any of these mobile device ids will match. Values are from
1965
+ # mobile-devices.csv in the downloadable files section.
1966
+ # Corresponds to the JSON property `mobileDevices`
1967
+ # @return [Array<String>]
1968
+ attr_accessor :mobile_devices
1969
+
1970
+ # Requests containing any of these mobile operating system version ids will
1971
+ # match. Values are from mobile-os.csv in the downloadable files section.
1972
+ # Corresponds to the JSON property `mobileOperatingSystemVersions`
1973
+ # @return [Array<String>]
1974
+ attr_accessor :mobile_operating_system_versions
1975
+
1976
+ # Requests containing any of these placements will match.
1977
+ # Corresponds to the JSON property `placements`
1978
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::Placement>]
1979
+ attr_accessor :placements
1980
+
1981
+ # Requests matching any of these platforms will match. Possible values are
1982
+ # PRETARGETING_PLATFORM_MOBILE, PRETARGETING_PLATFORM_DESKTOP, and
1983
+ # PRETARGETING_PLATFORM_TABLET.
1984
+ # Corresponds to the JSON property `platforms`
1985
+ # @return [Array<String>]
1986
+ attr_accessor :platforms
1987
+
1988
+ # Creative attributes should be declared here if all creatives corresponding to
1989
+ # this pretargeting configuration have that creative attribute. Values are from
1990
+ # pretargetable-creative-attributes.txt in the downloadable files section.
1991
+ # Corresponds to the JSON property `supportedCreativeAttributes`
1992
+ # @return [Array<String>]
1993
+ attr_accessor :supported_creative_attributes
1994
+
1995
+ # Requests containing any of these user list ids will match.
1996
+ # Corresponds to the JSON property `userLists`
1997
+ # @return [Array<String>]
1998
+ attr_accessor :user_lists
1999
+
2000
+ # Requests that allow any of these vendor ids will match. Values are from
2001
+ # vendors.txt in the downloadable files section.
2002
+ # Corresponds to the JSON property `vendorTypes`
2003
+ # @return [Array<String>]
2004
+ attr_accessor :vendor_types
2005
+
2006
+ # Requests containing any of these vertical ids will match.
2007
+ # Corresponds to the JSON property `verticals`
2008
+ # @return [Array<String>]
2009
+ attr_accessor :verticals
2010
+
2011
+ # Video requests satisfying any of these player size constraints will match.
2012
+ # Corresponds to the JSON property `videoPlayerSizes`
2013
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig::VideoPlayerSize>]
2014
+ attr_accessor :video_player_sizes
2015
+
2016
+ def initialize(**args)
2017
+ update!(**args)
2018
+ end
2019
+
2020
+ # Update properties of this object
2021
+ def update!(**args)
2022
+ @billing_id = args[:billing_id] if args.key?(:billing_id)
2023
+ @config_id = args[:config_id] if args.key?(:config_id)
2024
+ @config_name = args[:config_name] if args.key?(:config_name)
2025
+ @creative_type = args[:creative_type] if args.key?(:creative_type)
2026
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
2027
+ @excluded_content_labels = args[:excluded_content_labels] if args.key?(:excluded_content_labels)
2028
+ @excluded_geo_criteria_ids = args[:excluded_geo_criteria_ids] if args.key?(:excluded_geo_criteria_ids)
2029
+ @excluded_placements = args[:excluded_placements] if args.key?(:excluded_placements)
2030
+ @excluded_user_lists = args[:excluded_user_lists] if args.key?(:excluded_user_lists)
2031
+ @excluded_verticals = args[:excluded_verticals] if args.key?(:excluded_verticals)
2032
+ @geo_criteria_ids = args[:geo_criteria_ids] if args.key?(:geo_criteria_ids)
2033
+ @is_active = args[:is_active] if args.key?(:is_active)
2034
+ @kind = args[:kind] if args.key?(:kind)
2035
+ @languages = args[:languages] if args.key?(:languages)
2036
+ @mobile_carriers = args[:mobile_carriers] if args.key?(:mobile_carriers)
2037
+ @mobile_devices = args[:mobile_devices] if args.key?(:mobile_devices)
2038
+ @mobile_operating_system_versions = args[:mobile_operating_system_versions] if args.key?(:mobile_operating_system_versions)
2039
+ @placements = args[:placements] if args.key?(:placements)
2040
+ @platforms = args[:platforms] if args.key?(:platforms)
2041
+ @supported_creative_attributes = args[:supported_creative_attributes] if args.key?(:supported_creative_attributes)
2042
+ @user_lists = args[:user_lists] if args.key?(:user_lists)
2043
+ @vendor_types = args[:vendor_types] if args.key?(:vendor_types)
2044
+ @verticals = args[:verticals] if args.key?(:verticals)
2045
+ @video_player_sizes = args[:video_player_sizes] if args.key?(:video_player_sizes)
2046
+ end
2047
+
2048
+ #
2049
+ class Dimension
2050
+ include Google::Apis::Core::Hashable
2051
+
2052
+ # Height in pixels.
2053
+ # Corresponds to the JSON property `height`
2054
+ # @return [String]
2055
+ attr_accessor :height
2056
+
2057
+ # Width in pixels.
2058
+ # Corresponds to the JSON property `width`
2059
+ # @return [String]
2060
+ attr_accessor :width
2061
+
2062
+ def initialize(**args)
2063
+ update!(**args)
2064
+ end
2065
+
2066
+ # Update properties of this object
2067
+ def update!(**args)
2068
+ @height = args[:height] if args.key?(:height)
2069
+ @width = args[:width] if args.key?(:width)
2070
+ end
2071
+ end
2072
+
2073
+ #
2074
+ class ExcludedPlacement
2075
+ include Google::Apis::Core::Hashable
2076
+
2077
+ # The value of the placement. Interpretation depends on the placement type, e.g.
2078
+ # URL for a site placement, channel name for a channel placement, app id for a
2079
+ # mobile app placement.
2080
+ # Corresponds to the JSON property `token`
2081
+ # @return [String]
2082
+ attr_accessor :token
2083
+
2084
+ # The type of the placement.
2085
+ # Corresponds to the JSON property `type`
2086
+ # @return [String]
2087
+ attr_accessor :type
2088
+
2089
+ def initialize(**args)
2090
+ update!(**args)
2091
+ end
2092
+
2093
+ # Update properties of this object
2094
+ def update!(**args)
2095
+ @token = args[:token] if args.key?(:token)
2096
+ @type = args[:type] if args.key?(:type)
2097
+ end
2098
+ end
2099
+
2100
+ #
2101
+ class Placement
2102
+ include Google::Apis::Core::Hashable
2103
+
2104
+ # The value of the placement. Interpretation depends on the placement type, e.g.
2105
+ # URL for a site placement, channel name for a channel placement, app id for a
2106
+ # mobile app placement.
2107
+ # Corresponds to the JSON property `token`
2108
+ # @return [String]
2109
+ attr_accessor :token
2110
+
2111
+ # The type of the placement.
2112
+ # Corresponds to the JSON property `type`
2113
+ # @return [String]
2114
+ attr_accessor :type
2115
+
2116
+ def initialize(**args)
2117
+ update!(**args)
2118
+ end
2119
+
2120
+ # Update properties of this object
2121
+ def update!(**args)
2122
+ @token = args[:token] if args.key?(:token)
2123
+ @type = args[:type] if args.key?(:type)
2124
+ end
2125
+ end
2126
+
2127
+ #
2128
+ class VideoPlayerSize
2129
+ include Google::Apis::Core::Hashable
2130
+
2131
+ # The type of aspect ratio. Leave this field blank to match all aspect ratios.
2132
+ # Corresponds to the JSON property `aspectRatio`
2133
+ # @return [String]
2134
+ attr_accessor :aspect_ratio
2135
+
2136
+ # The minimum player height in pixels. Leave this field blank to match any
2137
+ # player height.
2138
+ # Corresponds to the JSON property `minHeight`
2139
+ # @return [String]
2140
+ attr_accessor :min_height
2141
+
2142
+ # The minimum player width in pixels. Leave this field blank to match any player
2143
+ # width.
2144
+ # Corresponds to the JSON property `minWidth`
2145
+ # @return [String]
2146
+ attr_accessor :min_width
2147
+
2148
+ def initialize(**args)
2149
+ update!(**args)
2150
+ end
2151
+
2152
+ # Update properties of this object
2153
+ def update!(**args)
2154
+ @aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
2155
+ @min_height = args[:min_height] if args.key?(:min_height)
2156
+ @min_width = args[:min_width] if args.key?(:min_width)
2157
+ end
2158
+ end
2159
+ end
2160
+
2161
+ #
2162
+ class PretargetingConfigList
2163
+ include Google::Apis::Core::Hashable
2164
+
2165
+ # A list of pretargeting configs
2166
+ # Corresponds to the JSON property `items`
2167
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::PretargetingConfig>]
2168
+ attr_accessor :items
2169
+
2170
+ # Resource type.
2171
+ # Corresponds to the JSON property `kind`
2172
+ # @return [String]
2173
+ attr_accessor :kind
2174
+
2175
+ def initialize(**args)
2176
+ update!(**args)
2177
+ end
2178
+
2179
+ # Update properties of this object
2180
+ def update!(**args)
2181
+ @items = args[:items] if args.key?(:items)
2182
+ @kind = args[:kind] if args.key?(:kind)
2183
+ end
2184
+ end
2185
+
2186
+ #
2187
+ class Price
2188
+ include Google::Apis::Core::Hashable
2189
+
2190
+ # The price value in micros.
2191
+ # Corresponds to the JSON property `amountMicros`
2192
+ # @return [Float]
2193
+ attr_accessor :amount_micros
2194
+
2195
+ # The currency code for the price.
2196
+ # Corresponds to the JSON property `currencyCode`
2197
+ # @return [String]
2198
+ attr_accessor :currency_code
2199
+
2200
+ # The pricing type for the deal/product.
2201
+ # Corresponds to the JSON property `pricingType`
2202
+ # @return [String]
2203
+ attr_accessor :pricing_type
2204
+
2205
+ def initialize(**args)
2206
+ update!(**args)
2207
+ end
2208
+
2209
+ # Update properties of this object
2210
+ def update!(**args)
2211
+ @amount_micros = args[:amount_micros] if args.key?(:amount_micros)
2212
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2213
+ @pricing_type = args[:pricing_type] if args.key?(:pricing_type)
2214
+ end
2215
+ end
2216
+
2217
+ # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an
2218
+ # product can become [0,1] deals. To check if there is a PricePerBuyer for a
2219
+ # particular buyer or buyer/advertiser pair, we look for the most specific
2220
+ # matching rule - we first look for a rule matching the buyer and advertiser,
2221
+ # next a rule with the buyer but an empty advertiser list, and otherwise look
2222
+ # for a matching rule where no buyer is set.
2223
+ class PricePerBuyer
2224
+ include Google::Apis::Core::Hashable
2225
+
2226
+ # The buyer who will pay this price. If unset, all buyers can pay this price (if
2227
+ # the advertisers match, and there's no more specific rule matching the buyer).
2228
+ # Corresponds to the JSON property `buyer`
2229
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2230
+ attr_accessor :buyer
2231
+
2232
+ # The specified price
2233
+ # Corresponds to the JSON property `price`
2234
+ # @return [Google::Apis::AdexchangebuyerV1_4::Price]
2235
+ attr_accessor :price
2236
+
2237
+ def initialize(**args)
2238
+ update!(**args)
2239
+ end
2240
+
2241
+ # Update properties of this object
2242
+ def update!(**args)
2243
+ @buyer = args[:buyer] if args.key?(:buyer)
2244
+ @price = args[:price] if args.key?(:price)
2245
+ end
2246
+ end
2247
+
2248
+ #
2249
+ class PrivateData
2250
+ include Google::Apis::Core::Hashable
2251
+
2252
+ #
2253
+ # Corresponds to the JSON property `referenceId`
2254
+ # @return [String]
2255
+ attr_accessor :reference_id
2256
+
2257
+ #
2258
+ # Corresponds to the JSON property `referencePayload`
2259
+ # @return [String]
2260
+ attr_accessor :reference_payload
2261
+
2262
+ def initialize(**args)
2263
+ update!(**args)
2264
+ end
2265
+
2266
+ # Update properties of this object
2267
+ def update!(**args)
2268
+ @reference_id = args[:reference_id] if args.key?(:reference_id)
2269
+ @reference_payload = args[:reference_payload] if args.key?(:reference_payload)
2270
+ end
2271
+ end
2272
+
2273
+ # A product is segment of inventory that a seller wishes to sell. It is
2274
+ # associated with certain terms and targeting information which helps buyer know
2275
+ # more about the inventory. Each field in a product can have one of the
2276
+ # following setting:
2277
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
2278
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
2279
+ # field. (updatable) - The field is updatable at all times by either buyer or
2280
+ # the seller.
2281
+ class Product
2282
+ include Google::Apis::Core::Hashable
2283
+
2284
+ # Creation time in ms. since epoch (readonly)
2285
+ # Corresponds to the JSON property `creationTimeMs`
2286
+ # @return [String]
2287
+ attr_accessor :creation_time_ms
2288
+
2289
+ # Optional contact information for the creator of this product. (buyer-readonly)
2290
+ # Corresponds to the JSON property `creatorContacts`
2291
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
2292
+ attr_accessor :creator_contacts
2293
+
2294
+ # The proposed end time for the deal (ms since epoch) (buyer-readonly)
2295
+ # Corresponds to the JSON property `flightEndTimeMs`
2296
+ # @return [String]
2297
+ attr_accessor :flight_end_time_ms
2298
+
2299
+ # Inventory availability dates. (times are in ms since epoch) The granularity is
2300
+ # generally in the order of seconds. (buyer-readonly)
2301
+ # Corresponds to the JSON property `flightStartTimeMs`
2302
+ # @return [String]
2303
+ attr_accessor :flight_start_time_ms
2304
+
2305
+ # If the creator has already signed off on the product, then the buyer can
2306
+ # finalize the deal by accepting the product as is. When copying to a proposal,
2307
+ # if any of the terms are changed, then auto_finalize is automatically set to
2308
+ # false.
2309
+ # Corresponds to the JSON property `hasCreatorSignedOff`
2310
+ # @return [Boolean]
2311
+ attr_accessor :has_creator_signed_off
2312
+ alias_method :has_creator_signed_off?, :has_creator_signed_off
2313
+
2314
+ # What exchange will provide this inventory (readonly, except on create).
2315
+ # Corresponds to the JSON property `inventorySource`
2316
+ # @return [String]
2317
+ attr_accessor :inventory_source
2318
+
2319
+ # Identifies what kind of resource this is. Value: the fixed string "
2320
+ # adexchangebuyer#product".
2321
+ # Corresponds to the JSON property `kind`
2322
+ # @return [String]
2323
+ attr_accessor :kind
2324
+
2325
+ # Optional List of labels for the product (optional, buyer-readonly).
2326
+ # Corresponds to the JSON property `labels`
2327
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceLabel>]
2328
+ attr_accessor :labels
2329
+
2330
+ # Time of last update in ms. since epoch (readonly)
2331
+ # Corresponds to the JSON property `lastUpdateTimeMs`
2332
+ # @return [String]
2333
+ attr_accessor :last_update_time_ms
2334
+
2335
+ # The name for this product as set by the seller. (buyer-readonly)
2336
+ # Corresponds to the JSON property `name`
2337
+ # @return [String]
2338
+ attr_accessor :name
2339
+
2340
+ # The unique id for the product (readonly)
2341
+ # Corresponds to the JSON property `productId`
2342
+ # @return [String]
2343
+ attr_accessor :product_id
2344
+
2345
+ # The revision number of the product. (readonly)
2346
+ # Corresponds to the JSON property `revisionNumber`
2347
+ # @return [String]
2348
+ attr_accessor :revision_number
2349
+
2350
+ # Information about the seller that created this product (readonly, except on
2351
+ # create)
2352
+ # Corresponds to the JSON property `seller`
2353
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
2354
+ attr_accessor :seller
2355
+
2356
+ # Targeting that is shared between the buyer and the seller. Each targeting
2357
+ # criteria has a specified key and for each key there is a list of inclusion
2358
+ # value or exclusion values. (buyer-readonly)
2359
+ # Corresponds to the JSON property `sharedTargetings`
2360
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::SharedTargeting>]
2361
+ attr_accessor :shared_targetings
2362
+
2363
+ # The state of the product. (buyer-readonly)
2364
+ # Corresponds to the JSON property `state`
2365
+ # @return [String]
2366
+ attr_accessor :state
2367
+
2368
+ # The syndication product associated with the deal. (readonly, except on create)
2369
+ # Corresponds to the JSON property `syndicationProduct`
2370
+ # @return [String]
2371
+ attr_accessor :syndication_product
2372
+
2373
+ # The negotiable terms of the deal (buyer-readonly)
2374
+ # Corresponds to the JSON property `terms`
2375
+ # @return [Google::Apis::AdexchangebuyerV1_4::DealTerms]
2376
+ attr_accessor :terms
2377
+
2378
+ #
2379
+ # Corresponds to the JSON property `webPropertyCode`
2380
+ # @return [String]
2381
+ attr_accessor :web_property_code
2382
+
2383
+ def initialize(**args)
2384
+ update!(**args)
2385
+ end
2386
+
2387
+ # Update properties of this object
2388
+ def update!(**args)
2389
+ @creation_time_ms = args[:creation_time_ms] if args.key?(:creation_time_ms)
2390
+ @creator_contacts = args[:creator_contacts] if args.key?(:creator_contacts)
2391
+ @flight_end_time_ms = args[:flight_end_time_ms] if args.key?(:flight_end_time_ms)
2392
+ @flight_start_time_ms = args[:flight_start_time_ms] if args.key?(:flight_start_time_ms)
2393
+ @has_creator_signed_off = args[:has_creator_signed_off] if args.key?(:has_creator_signed_off)
2394
+ @inventory_source = args[:inventory_source] if args.key?(:inventory_source)
2395
+ @kind = args[:kind] if args.key?(:kind)
2396
+ @labels = args[:labels] if args.key?(:labels)
2397
+ @last_update_time_ms = args[:last_update_time_ms] if args.key?(:last_update_time_ms)
2398
+ @name = args[:name] if args.key?(:name)
2399
+ @product_id = args[:product_id] if args.key?(:product_id)
2400
+ @revision_number = args[:revision_number] if args.key?(:revision_number)
2401
+ @seller = args[:seller] if args.key?(:seller)
2402
+ @shared_targetings = args[:shared_targetings] if args.key?(:shared_targetings)
2403
+ @state = args[:state] if args.key?(:state)
2404
+ @syndication_product = args[:syndication_product] if args.key?(:syndication_product)
2405
+ @terms = args[:terms] if args.key?(:terms)
2406
+ @web_property_code = args[:web_property_code] if args.key?(:web_property_code)
2407
+ end
2408
+ end
2409
+
2410
+ # Represents a proposal in the marketplace. A proposal is the unit of
2411
+ # negotiation between a seller and a buyer and contains deals which are served.
2412
+ # Each field in a proposal can have one of the following setting:
2413
+ # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only
2414
+ # the seller can set this field. (seller-readonly) - Only the buyer can set this
2415
+ # field. (updatable) - The field is updatable at all times by either buyer or
2416
+ # the seller.
2417
+ class Proposal
2418
+ include Google::Apis::Core::Hashable
2419
+
2420
+ # Reference to the buyer that will get billed for this proposal. (readonly)
2421
+ # Corresponds to the JSON property `billedBuyer`
2422
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2423
+ attr_accessor :billed_buyer
2424
+
2425
+ # Reference to the buyer on the proposal. (readonly, except on create)
2426
+ # Corresponds to the JSON property `buyer`
2427
+ # @return [Google::Apis::AdexchangebuyerV1_4::Buyer]
2428
+ attr_accessor :buyer
2429
+
2430
+ # Optional contact information fort the buyer. (seller-readonly)
2431
+ # Corresponds to the JSON property `buyerContacts`
2432
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
2433
+ attr_accessor :buyer_contacts
2434
+
2435
+ # Private data for buyer. (hidden from seller).
2436
+ # Corresponds to the JSON property `buyerPrivateData`
2437
+ # @return [Google::Apis::AdexchangebuyerV1_4::PrivateData]
2438
+ attr_accessor :buyer_private_data
2439
+
2440
+ # When an proposal is in an accepted state, indicates whether the buyer has
2441
+ # signed off Once both sides have signed off on a deal, the proposal can be
2442
+ # finalized by the seller. (seller-readonly)
2443
+ # Corresponds to the JSON property `hasBuyerSignedOff`
2444
+ # @return [Boolean]
2445
+ attr_accessor :has_buyer_signed_off
2446
+ alias_method :has_buyer_signed_off?, :has_buyer_signed_off
2447
+
2448
+ # When an proposal is in an accepted state, indicates whether the buyer has
2449
+ # signed off Once both sides have signed off on a deal, the proposal can be
2450
+ # finalized by the seller. (buyer-readonly)
2451
+ # Corresponds to the JSON property `hasSellerSignedOff`
2452
+ # @return [Boolean]
2453
+ attr_accessor :has_seller_signed_off
2454
+ alias_method :has_seller_signed_off?, :has_seller_signed_off
2455
+
2456
+ # What exchange will provide this inventory (readonly, except on create).
2457
+ # Corresponds to the JSON property `inventorySource`
2458
+ # @return [String]
2459
+ attr_accessor :inventory_source
2460
+
2461
+ # True if the proposal is being renegotiated (readonly).
2462
+ # Corresponds to the JSON property `isRenegotiating`
2463
+ # @return [Boolean]
2464
+ attr_accessor :is_renegotiating
2465
+ alias_method :is_renegotiating?, :is_renegotiating
2466
+
2467
+ # True, if the buyside inventory setup is complete for this proposal. (readonly)
2468
+ # Corresponds to the JSON property `isSetupComplete`
2469
+ # @return [Boolean]
2470
+ attr_accessor :is_setup_complete
2471
+ alias_method :is_setup_complete?, :is_setup_complete
2472
+
2473
+ # Identifies what kind of resource this is. Value: the fixed string "
2474
+ # adexchangebuyer#proposal".
2475
+ # Corresponds to the JSON property `kind`
2476
+ # @return [String]
2477
+ attr_accessor :kind
2478
+
2479
+ # List of labels associated with the proposal. (readonly)
2480
+ # Corresponds to the JSON property `labels`
2481
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::MarketplaceLabel>]
2482
+ attr_accessor :labels
2483
+
2484
+ # The role of the last user that either updated the proposal or left a comment. (
2485
+ # readonly)
2486
+ # Corresponds to the JSON property `lastUpdaterOrCommentorRole`
2487
+ # @return [String]
2488
+ attr_accessor :last_updater_or_commentor_role
2489
+
2490
+ #
2491
+ # Corresponds to the JSON property `lastUpdaterRole`
2492
+ # @return [String]
2493
+ attr_accessor :last_updater_role
2494
+
2495
+ # The name for the proposal (updatable)
2496
+ # Corresponds to the JSON property `name`
2497
+ # @return [String]
2498
+ attr_accessor :name
2499
+
2500
+ # Indicates whether the buyer/seller created the proposal.(readonly)
2501
+ # Corresponds to the JSON property `originatorRole`
2502
+ # @return [String]
2503
+ attr_accessor :originator_role
2504
+
2505
+ # The unique id of the proposal. (readonly).
2506
+ # Corresponds to the JSON property `proposalId`
2507
+ # @return [String]
2508
+ attr_accessor :proposal_id
2509
+
2510
+ # The current state of the proposal. (readonly)
2511
+ # Corresponds to the JSON property `proposalState`
2512
+ # @return [String]
2513
+ attr_accessor :proposal_state
2514
+
2515
+ # The revision number for the proposal (readonly).
2516
+ # Corresponds to the JSON property `revisionNumber`
2517
+ # @return [String]
2518
+ attr_accessor :revision_number
2519
+
2520
+ # The time (ms since epoch) when the proposal was last revised (readonly).
2521
+ # Corresponds to the JSON property `revisionTimeMs`
2522
+ # @return [String]
2523
+ attr_accessor :revision_time_ms
2524
+
2525
+ # Reference to the seller on the proposal. (readonly, except on create)
2526
+ # Corresponds to the JSON property `seller`
2527
+ # @return [Google::Apis::AdexchangebuyerV1_4::Seller]
2528
+ attr_accessor :seller
2529
+
2530
+ # Optional contact information for the seller (buyer-readonly).
2531
+ # Corresponds to the JSON property `sellerContacts`
2532
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::ContactInformation>]
2533
+ attr_accessor :seller_contacts
2534
+
2535
+ def initialize(**args)
2536
+ update!(**args)
2537
+ end
2538
+
2539
+ # Update properties of this object
2540
+ def update!(**args)
2541
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
2542
+ @buyer = args[:buyer] if args.key?(:buyer)
2543
+ @buyer_contacts = args[:buyer_contacts] if args.key?(:buyer_contacts)
2544
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
2545
+ @has_buyer_signed_off = args[:has_buyer_signed_off] if args.key?(:has_buyer_signed_off)
2546
+ @has_seller_signed_off = args[:has_seller_signed_off] if args.key?(:has_seller_signed_off)
2547
+ @inventory_source = args[:inventory_source] if args.key?(:inventory_source)
2548
+ @is_renegotiating = args[:is_renegotiating] if args.key?(:is_renegotiating)
2549
+ @is_setup_complete = args[:is_setup_complete] if args.key?(:is_setup_complete)
2550
+ @kind = args[:kind] if args.key?(:kind)
2551
+ @labels = args[:labels] if args.key?(:labels)
2552
+ @last_updater_or_commentor_role = args[:last_updater_or_commentor_role] if args.key?(:last_updater_or_commentor_role)
2553
+ @last_updater_role = args[:last_updater_role] if args.key?(:last_updater_role)
2554
+ @name = args[:name] if args.key?(:name)
2555
+ @originator_role = args[:originator_role] if args.key?(:originator_role)
2556
+ @proposal_id = args[:proposal_id] if args.key?(:proposal_id)
2557
+ @proposal_state = args[:proposal_state] if args.key?(:proposal_state)
2558
+ @revision_number = args[:revision_number] if args.key?(:revision_number)
2559
+ @revision_time_ms = args[:revision_time_ms] if args.key?(:revision_time_ms)
2560
+ @seller = args[:seller] if args.key?(:seller)
2561
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
2562
+ end
2563
+ end
2564
+
2565
+ #
2566
+ class Seller
2567
+ include Google::Apis::Core::Hashable
2568
+
2569
+ # The unique id for the seller. The seller fills in this field. The seller
2570
+ # account id is then available to buyer in the product.
2571
+ # Corresponds to the JSON property `accountId`
2572
+ # @return [String]
2573
+ attr_accessor :account_id
2574
+
2575
+ # Optional sub-account id for the seller.
2576
+ # Corresponds to the JSON property `subAccountId`
2577
+ # @return [String]
2578
+ attr_accessor :sub_account_id
2579
+
2580
+ def initialize(**args)
2581
+ update!(**args)
2582
+ end
2583
+
2584
+ # Update properties of this object
2585
+ def update!(**args)
2586
+ @account_id = args[:account_id] if args.key?(:account_id)
2587
+ @sub_account_id = args[:sub_account_id] if args.key?(:sub_account_id)
2588
+ end
2589
+ end
2590
+
2591
+ #
2592
+ class SharedTargeting
2593
+ include Google::Apis::Core::Hashable
2594
+
2595
+ # The list of values to exclude from targeting.
2596
+ # Corresponds to the JSON property `exclusions`
2597
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValue>]
2598
+ attr_accessor :exclusions
2599
+
2600
+ # The list of value to include as part of the targeting.
2601
+ # Corresponds to the JSON property `inclusions`
2602
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValue>]
2603
+ attr_accessor :inclusions
2604
+
2605
+ # The key representing the shared targeting criterion.
2606
+ # Corresponds to the JSON property `key`
2607
+ # @return [String]
2608
+ attr_accessor :key
2609
+
2610
+ def initialize(**args)
2611
+ update!(**args)
2612
+ end
2613
+
2614
+ # Update properties of this object
2615
+ def update!(**args)
2616
+ @exclusions = args[:exclusions] if args.key?(:exclusions)
2617
+ @inclusions = args[:inclusions] if args.key?(:inclusions)
2618
+ @key = args[:key] if args.key?(:key)
2619
+ end
2620
+ end
2621
+
2622
+ #
2623
+ class TargetingValue
2624
+ include Google::Apis::Core::Hashable
2625
+
2626
+ # The creative size value to exclude/include.
2627
+ # Corresponds to the JSON property `creativeSizeValue`
2628
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueCreativeSize]
2629
+ attr_accessor :creative_size_value
2630
+
2631
+ # The daypart targeting to include / exclude. Filled in when the key is
2632
+ # GOOG_DAYPART_TARGETING.
2633
+ # Corresponds to the JSON property `dayPartTargetingValue`
2634
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueDayPartTargeting]
2635
+ attr_accessor :day_part_targeting_value
2636
+
2637
+ # The long value to exclude/include.
2638
+ # Corresponds to the JSON property `longValue`
2639
+ # @return [String]
2640
+ attr_accessor :long_value
2641
+
2642
+ # The string value to exclude/include.
2643
+ # Corresponds to the JSON property `stringValue`
2644
+ # @return [String]
2645
+ attr_accessor :string_value
2646
+
2647
+ def initialize(**args)
2648
+ update!(**args)
2649
+ end
2650
+
2651
+ # Update properties of this object
2652
+ def update!(**args)
2653
+ @creative_size_value = args[:creative_size_value] if args.key?(:creative_size_value)
2654
+ @day_part_targeting_value = args[:day_part_targeting_value] if args.key?(:day_part_targeting_value)
2655
+ @long_value = args[:long_value] if args.key?(:long_value)
2656
+ @string_value = args[:string_value] if args.key?(:string_value)
2657
+ end
2658
+ end
2659
+
2660
+ #
2661
+ class TargetingValueCreativeSize
2662
+ include Google::Apis::Core::Hashable
2663
+
2664
+ # For video size type, the list of companion sizes.
2665
+ # Corresponds to the JSON property `companionSizes`
2666
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValueSize>]
2667
+ attr_accessor :companion_sizes
2668
+
2669
+ # The Creative size type.
2670
+ # Corresponds to the JSON property `creativeSizeType`
2671
+ # @return [String]
2672
+ attr_accessor :creative_size_type
2673
+
2674
+ # For regular or video creative size type, specifies the size of the creative.
2675
+ # Corresponds to the JSON property `size`
2676
+ # @return [Google::Apis::AdexchangebuyerV1_4::TargetingValueSize]
2677
+ attr_accessor :size
2678
+
2679
+ def initialize(**args)
2680
+ update!(**args)
2681
+ end
2682
+
2683
+ # Update properties of this object
2684
+ def update!(**args)
2685
+ @companion_sizes = args[:companion_sizes] if args.key?(:companion_sizes)
2686
+ @creative_size_type = args[:creative_size_type] if args.key?(:creative_size_type)
2687
+ @size = args[:size] if args.key?(:size)
2688
+ end
2689
+ end
2690
+
2691
+ #
2692
+ class TargetingValueDayPartTargeting
2693
+ include Google::Apis::Core::Hashable
2694
+
2695
+ #
2696
+ # Corresponds to the JSON property `dayParts`
2697
+ # @return [Array<Google::Apis::AdexchangebuyerV1_4::TargetingValueDayPartTargetingDayPart>]
2698
+ attr_accessor :day_parts
2699
+
2700
+ #
2701
+ # Corresponds to the JSON property `timeZoneType`
2702
+ # @return [String]
2703
+ attr_accessor :time_zone_type
2704
+
2705
+ def initialize(**args)
2706
+ update!(**args)
2707
+ end
2708
+
2709
+ # Update properties of this object
2710
+ def update!(**args)
2711
+ @day_parts = args[:day_parts] if args.key?(:day_parts)
2712
+ @time_zone_type = args[:time_zone_type] if args.key?(:time_zone_type)
2713
+ end
2714
+ end
2715
+
2716
+ #
2717
+ class TargetingValueDayPartTargetingDayPart
2718
+ include Google::Apis::Core::Hashable
2719
+
2720
+ #
2721
+ # Corresponds to the JSON property `dayOfWeek`
2722
+ # @return [String]
2723
+ attr_accessor :day_of_week
2724
+
2725
+ #
2726
+ # Corresponds to the JSON property `endHour`
2727
+ # @return [Fixnum]
2728
+ attr_accessor :end_hour
2729
+
2730
+ #
2731
+ # Corresponds to the JSON property `endMinute`
2732
+ # @return [Fixnum]
2733
+ attr_accessor :end_minute
2734
+
2735
+ #
2736
+ # Corresponds to the JSON property `startHour`
2737
+ # @return [Fixnum]
2738
+ attr_accessor :start_hour
2739
+
2740
+ #
2741
+ # Corresponds to the JSON property `startMinute`
2742
+ # @return [Fixnum]
2743
+ attr_accessor :start_minute
2744
+
2745
+ def initialize(**args)
2746
+ update!(**args)
2747
+ end
2748
+
2749
+ # Update properties of this object
2750
+ def update!(**args)
2751
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
2752
+ @end_hour = args[:end_hour] if args.key?(:end_hour)
2753
+ @end_minute = args[:end_minute] if args.key?(:end_minute)
2754
+ @start_hour = args[:start_hour] if args.key?(:start_hour)
2755
+ @start_minute = args[:start_minute] if args.key?(:start_minute)
2756
+ end
2757
+ end
2758
+
2759
+ #
2760
+ class TargetingValueSize
2761
+ include Google::Apis::Core::Hashable
2762
+
2763
+ # The height of the creative.
2764
+ # Corresponds to the JSON property `height`
2765
+ # @return [Fixnum]
2766
+ attr_accessor :height
2767
+
2768
+ # The width of the creative.
2769
+ # Corresponds to the JSON property `width`
2770
+ # @return [Fixnum]
2771
+ attr_accessor :width
2772
+
2773
+ def initialize(**args)
2774
+ update!(**args)
2775
+ end
2776
+
2777
+ # Update properties of this object
2778
+ def update!(**args)
2779
+ @height = args[:height] if args.key?(:height)
2780
+ @width = args[:width] if args.key?(:width)
2781
+ end
2782
+ end
2783
+ end
2784
+ end
2785
+ end