google-apis-authorizedbuyersmarketplace_v1alpha 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2456 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
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 AuthorizedbuyersmarketplaceV1alpha
24
+
25
+ # Request to accept a proposal. Accepting a proposal implies acceptance of the
26
+ # publisher terms_and_conditions, if any.
27
+ class AcceptProposalRequest
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # The last known client revision number of the proposal.
31
+ # Corresponds to the JSON property `proposalRevision`
32
+ # @return [Fixnum]
33
+ attr_accessor :proposal_revision
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
42
+ end
43
+ end
44
+
45
+ # Request message for activating a client.
46
+ class ActivateClientRequest
47
+ include Google::Apis::Core::Hashable
48
+
49
+ def initialize(**args)
50
+ update!(**args)
51
+ end
52
+
53
+ # Update properties of this object
54
+ def update!(**args)
55
+ end
56
+ end
57
+
58
+ # Request message for activating a client user.
59
+ class ActivateClientUserRequest
60
+ include Google::Apis::Core::Hashable
61
+
62
+ def initialize(**args)
63
+ update!(**args)
64
+ end
65
+
66
+ # Update properties of this object
67
+ def update!(**args)
68
+ end
69
+ end
70
+
71
+ # Request message for activating a data segment
72
+ class ActivateDataSegmentRequest
73
+ include Google::Apis::Core::Hashable
74
+
75
+ def initialize(**args)
76
+ update!(**args)
77
+ end
78
+
79
+ # Update properties of this object
80
+ def update!(**args)
81
+ end
82
+ end
83
+
84
+ # Represents size of a single ad slot, or a creative.
85
+ class AdSize
86
+ include Google::Apis::Core::Hashable
87
+
88
+ # The height of the ad slot in pixels. This field will be present only when size
89
+ # type is `PIXEL`.
90
+ # Corresponds to the JSON property `height`
91
+ # @return [Fixnum]
92
+ attr_accessor :height
93
+
94
+ # The type of the ad slot size.
95
+ # Corresponds to the JSON property `type`
96
+ # @return [String]
97
+ attr_accessor :type
98
+
99
+ # The width of the ad slot in pixels. This field will be present only when size
100
+ # type is `PIXEL`.
101
+ # Corresponds to the JSON property `width`
102
+ # @return [Fixnum]
103
+ attr_accessor :width
104
+
105
+ def initialize(**args)
106
+ update!(**args)
107
+ end
108
+
109
+ # Update properties of this object
110
+ def update!(**args)
111
+ @height = args[:height] if args.key?(:height)
112
+ @type = args[:type] if args.key?(:type)
113
+ @width = args[:width] if args.key?(:width)
114
+ end
115
+ end
116
+
117
+ # Request message for adding creative to be used in the bidding process for the
118
+ # finalized deal.
119
+ class AddCreativeRequest
120
+ include Google::Apis::Core::Hashable
121
+
122
+ # Name of the creative to add to the finalized deal, in the format `buyers/`
123
+ # buyerAccountId`/creatives/`creativeId``. See creative.name.
124
+ # Corresponds to the JSON property `creative`
125
+ # @return [String]
126
+ attr_accessor :creative
127
+
128
+ def initialize(**args)
129
+ update!(**args)
130
+ end
131
+
132
+ # Update properties of this object
133
+ def update!(**args)
134
+ @creative = args[:creative] if args.key?(:creative)
135
+ end
136
+ end
137
+
138
+ # Request to add a note.
139
+ class AddNoteRequest
140
+ include Google::Apis::Core::Hashable
141
+
142
+ # A text note attached to the proposal to facilitate the communication between
143
+ # buyers and sellers.
144
+ # Corresponds to the JSON property `note`
145
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Note]
146
+ attr_accessor :note
147
+
148
+ def initialize(**args)
149
+ update!(**args)
150
+ end
151
+
152
+ # Update properties of this object
153
+ def update!(**args)
154
+ @note = args[:note] if args.key?(:note)
155
+ end
156
+ end
157
+
158
+ # Defines a segment of inventory that buyer wants to buy. It's created by buyer
159
+ # and could be shared with multiple buyers.
160
+ class AuctionPackage
161
+ include Google::Apis::Core::Hashable
162
+
163
+ # Output only. Time the auction package was created.
164
+ # Corresponds to the JSON property `createTime`
165
+ # @return [String]
166
+ attr_accessor :create_time
167
+
168
+ # Output only. The buyer that created this auction package. Format: `buyers/`
169
+ # buyerAccountId``
170
+ # Corresponds to the JSON property `creator`
171
+ # @return [String]
172
+ attr_accessor :creator
173
+
174
+ # Output only. A description of the auction package.
175
+ # Corresponds to the JSON property `description`
176
+ # @return [String]
177
+ attr_accessor :description
178
+
179
+ # The display_name assigned to the auction package.
180
+ # Corresponds to the JSON property `displayName`
181
+ # @return [String]
182
+ attr_accessor :display_name
183
+
184
+ # Output only. If set, this field contains the list of DSP specific seat ids set
185
+ # by media planners that are eligible to transact on this deal. The seat ID is
186
+ # in the calling DSP's namespace.
187
+ # Corresponds to the JSON property `eligibleSeatIds`
188
+ # @return [Array<String>]
189
+ attr_accessor :eligible_seat_ids
190
+
191
+ # Immutable. The unique identifier for the auction package. Format: `buyers/`
192
+ # accountId`/auctionPackages/`auctionPackageId`` The auction_package_id part of
193
+ # name is sent in the BidRequest to all RTB bidders and is returned as deal_id
194
+ # by the bidder in the BidResponse.
195
+ # Corresponds to the JSON property `name`
196
+ # @return [String]
197
+ attr_accessor :name
198
+
199
+ # Output only. The list of buyers that are subscribed to the AuctionPackage.
200
+ # This field is only populated when calling as a bidder. Format: `buyers/`
201
+ # buyerAccountId``
202
+ # Corresponds to the JSON property `subscribedBuyers`
203
+ # @return [Array<String>]
204
+ attr_accessor :subscribed_buyers
205
+
206
+ # Output only. When calling as a buyer, the list of clients of the current buyer
207
+ # that are subscribed to the AuctionPackage. When calling as a bidder, the list
208
+ # of clients that are subscribed to the AuctionPackage owned by the bidder or
209
+ # its buyers. Format: `buyers/`buyerAccountId`/clients/`clientAccountId``
210
+ # Corresponds to the JSON property `subscribedClients`
211
+ # @return [Array<String>]
212
+ attr_accessor :subscribed_clients
213
+
214
+ # Output only. The list of media planners that are subscribed to the
215
+ # AuctionPackage. This field is only populated when calling as a bidder.
216
+ # Corresponds to the JSON property `subscribedMediaPlanners`
217
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::MediaPlanner>]
218
+ attr_accessor :subscribed_media_planners
219
+
220
+ # Output only. Time the auction package was last updated. This value is only
221
+ # increased when this auction package is updated but never when a buyer
222
+ # subscribed.
223
+ # Corresponds to the JSON property `updateTime`
224
+ # @return [String]
225
+ attr_accessor :update_time
226
+
227
+ def initialize(**args)
228
+ update!(**args)
229
+ end
230
+
231
+ # Update properties of this object
232
+ def update!(**args)
233
+ @create_time = args[:create_time] if args.key?(:create_time)
234
+ @creator = args[:creator] if args.key?(:creator)
235
+ @description = args[:description] if args.key?(:description)
236
+ @display_name = args[:display_name] if args.key?(:display_name)
237
+ @eligible_seat_ids = args[:eligible_seat_ids] if args.key?(:eligible_seat_ids)
238
+ @name = args[:name] if args.key?(:name)
239
+ @subscribed_buyers = args[:subscribed_buyers] if args.key?(:subscribed_buyers)
240
+ @subscribed_clients = args[:subscribed_clients] if args.key?(:subscribed_clients)
241
+ @subscribed_media_planners = args[:subscribed_media_planners] if args.key?(:subscribed_media_planners)
242
+ @update_time = args[:update_time] if args.key?(:update_time)
243
+ end
244
+ end
245
+
246
+ # Request message for batch updating deals.
247
+ class BatchUpdateDealsRequest
248
+ include Google::Apis::Core::Hashable
249
+
250
+ # Required. List of request messages to update deals.
251
+ # Corresponds to the JSON property `requests`
252
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::UpdateDealRequest>]
253
+ attr_accessor :requests
254
+
255
+ def initialize(**args)
256
+ update!(**args)
257
+ end
258
+
259
+ # Update properties of this object
260
+ def update!(**args)
261
+ @requests = args[:requests] if args.key?(:requests)
262
+ end
263
+ end
264
+
265
+ # Response message for batch updating deals.
266
+ class BatchUpdateDealsResponse
267
+ include Google::Apis::Core::Hashable
268
+
269
+ # Deals updated.
270
+ # Corresponds to the JSON property `deals`
271
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Deal>]
272
+ attr_accessor :deals
273
+
274
+ def initialize(**args)
275
+ update!(**args)
276
+ end
277
+
278
+ # Update properties of this object
279
+ def update!(**args)
280
+ @deals = args[:deals] if args.key?(:deals)
281
+ end
282
+ end
283
+
284
+ # Request to cancel an ongoing negotiation.
285
+ class CancelNegotiationRequest
286
+ include Google::Apis::Core::Hashable
287
+
288
+ def initialize(**args)
289
+ update!(**args)
290
+ end
291
+
292
+ # Update properties of this object
293
+ def update!(**args)
294
+ end
295
+ end
296
+
297
+ # A client represents an agency, a brand, or an advertiser customer of the buyer.
298
+ # Based on the client's role, its client users will have varying levels of
299
+ # restricted access to the Marketplace and certain other sections of the
300
+ # Authorized Buyers UI.
301
+ class Client
302
+ include Google::Apis::Core::Hashable
303
+
304
+ # Required. Display name shown to publishers. Must be unique for clients without
305
+ # partnerClientId specified. Maximum length of 255 characters is allowed.
306
+ # Corresponds to the JSON property `displayName`
307
+ # @return [String]
308
+ attr_accessor :display_name
309
+
310
+ # Output only. The resource name of the client. Format: `buyers/`accountId`/
311
+ # clients/`clientAccountId``
312
+ # Corresponds to the JSON property `name`
313
+ # @return [String]
314
+ attr_accessor :name
315
+
316
+ # Arbitrary unique identifier provided by the buyer. This field can be used to
317
+ # associate a client with an identifier in the namespace of the buyer, lookup
318
+ # clients by that identifier and verify whether an Authorized Buyers account of
319
+ # the client already exists. If present, must be unique across all the clients.
320
+ # Corresponds to the JSON property `partnerClientId`
321
+ # @return [String]
322
+ attr_accessor :partner_client_id
323
+
324
+ # Required. The role assigned to the client. Each role implies a set of
325
+ # permissions granted to the client.
326
+ # Corresponds to the JSON property `role`
327
+ # @return [String]
328
+ attr_accessor :role
329
+
330
+ # Whether the client will be visible to sellers.
331
+ # Corresponds to the JSON property `sellerVisible`
332
+ # @return [Boolean]
333
+ attr_accessor :seller_visible
334
+ alias_method :seller_visible?, :seller_visible
335
+
336
+ # Output only. The state of the client.
337
+ # Corresponds to the JSON property `state`
338
+ # @return [String]
339
+ attr_accessor :state
340
+
341
+ def initialize(**args)
342
+ update!(**args)
343
+ end
344
+
345
+ # Update properties of this object
346
+ def update!(**args)
347
+ @display_name = args[:display_name] if args.key?(:display_name)
348
+ @name = args[:name] if args.key?(:name)
349
+ @partner_client_id = args[:partner_client_id] if args.key?(:partner_client_id)
350
+ @role = args[:role] if args.key?(:role)
351
+ @seller_visible = args[:seller_visible] if args.key?(:seller_visible)
352
+ @state = args[:state] if args.key?(:state)
353
+ end
354
+ end
355
+
356
+ # A user of a client who has restricted access to the Marketplace and certain
357
+ # other sections of the Authorized Buyers UI based on the role granted to the
358
+ # associated client.
359
+ class ClientUser
360
+ include Google::Apis::Core::Hashable
361
+
362
+ # Required. The client user's email address that has to be unique across all
363
+ # users for the same client.
364
+ # Corresponds to the JSON property `email`
365
+ # @return [String]
366
+ attr_accessor :email
367
+
368
+ # Output only. The resource name of the client user. Format: `buyers/`accountId`/
369
+ # clients/`clientAccountId`/users/`userId``
370
+ # Corresponds to the JSON property `name`
371
+ # @return [String]
372
+ attr_accessor :name
373
+
374
+ # Output only. The state of the client user.
375
+ # Corresponds to the JSON property `state`
376
+ # @return [String]
377
+ attr_accessor :state
378
+
379
+ def initialize(**args)
380
+ update!(**args)
381
+ end
382
+
383
+ # Update properties of this object
384
+ def update!(**args)
385
+ @email = args[:email] if args.key?(:email)
386
+ @name = args[:name] if args.key?(:name)
387
+ @state = args[:state] if args.key?(:state)
388
+ end
389
+ end
390
+
391
+ # Contains information on how a buyer or seller can be reached.
392
+ class Contact
393
+ include Google::Apis::Core::Hashable
394
+
395
+ # The display_name of the contact.
396
+ # Corresponds to the JSON property `displayName`
397
+ # @return [String]
398
+ attr_accessor :display_name
399
+
400
+ # Email address for the contact.
401
+ # Corresponds to the JSON property `email`
402
+ # @return [String]
403
+ attr_accessor :email
404
+
405
+ def initialize(**args)
406
+ update!(**args)
407
+ end
408
+
409
+ # Update properties of this object
410
+ def update!(**args)
411
+ @display_name = args[:display_name] if args.key?(:display_name)
412
+ @email = args[:email] if args.key?(:email)
413
+ end
414
+ end
415
+
416
+ # Message captures data about the creatives in the deal.
417
+ class CreativeRequirements
418
+ include Google::Apis::Core::Hashable
419
+
420
+ # Output only. The format of the creative, only applicable for programmatic
421
+ # guaranteed and preferred deals.
422
+ # Corresponds to the JSON property `creativeFormat`
423
+ # @return [String]
424
+ attr_accessor :creative_format
425
+
426
+ # Output only. Specifies the creative pre-approval policy.
427
+ # Corresponds to the JSON property `creativePreApprovalPolicy`
428
+ # @return [String]
429
+ attr_accessor :creative_pre_approval_policy
430
+
431
+ # Output only. Specifies whether the creative is safeFrame compatible.
432
+ # Corresponds to the JSON property `creativeSafeFrameCompatibility`
433
+ # @return [String]
434
+ attr_accessor :creative_safe_frame_compatibility
435
+
436
+ # Output only. The max duration of the video creative in milliseconds. only
437
+ # applicable for deals with video creatives.
438
+ # Corresponds to the JSON property `maxAdDurationMs`
439
+ # @return [Fixnum]
440
+ attr_accessor :max_ad_duration_ms
441
+
442
+ # Output only. Specifies the creative source for programmatic deals. PUBLISHER
443
+ # means creative is provided by seller and ADVERTISER means creative is provided
444
+ # by the buyer.
445
+ # Corresponds to the JSON property `programmaticCreativeSource`
446
+ # @return [String]
447
+ attr_accessor :programmatic_creative_source
448
+
449
+ # Output only. Skippable video ads allow viewers to skip ads after 5 seconds.
450
+ # Only applicable for deals with video creatives.
451
+ # Corresponds to the JSON property `skippableAdType`
452
+ # @return [String]
453
+ attr_accessor :skippable_ad_type
454
+
455
+ def initialize(**args)
456
+ update!(**args)
457
+ end
458
+
459
+ # Update properties of this object
460
+ def update!(**args)
461
+ @creative_format = args[:creative_format] if args.key?(:creative_format)
462
+ @creative_pre_approval_policy = args[:creative_pre_approval_policy] if args.key?(:creative_pre_approval_policy)
463
+ @creative_safe_frame_compatibility = args[:creative_safe_frame_compatibility] if args.key?(:creative_safe_frame_compatibility)
464
+ @max_ad_duration_ms = args[:max_ad_duration_ms] if args.key?(:max_ad_duration_ms)
465
+ @programmatic_creative_source = args[:programmatic_creative_source] if args.key?(:programmatic_creative_source)
466
+ @skippable_ad_type = args[:skippable_ad_type] if args.key?(:skippable_ad_type)
467
+ end
468
+ end
469
+
470
+ # Generic targeting used for targeting dimensions that contains a list of
471
+ # included and excluded numeric IDs. This cannot be filtered using list filter
472
+ # syntax.
473
+ class CriteriaTargeting
474
+ include Google::Apis::Core::Hashable
475
+
476
+ # A list of numeric IDs to be excluded.
477
+ # Corresponds to the JSON property `excludedCriteriaIds`
478
+ # @return [Array<Fixnum>]
479
+ attr_accessor :excluded_criteria_ids
480
+
481
+ # A list of numeric IDs to be included.
482
+ # Corresponds to the JSON property `targetedCriteriaIds`
483
+ # @return [Array<Fixnum>]
484
+ attr_accessor :targeted_criteria_ids
485
+
486
+ def initialize(**args)
487
+ update!(**args)
488
+ end
489
+
490
+ # Update properties of this object
491
+ def update!(**args)
492
+ @excluded_criteria_ids = args[:excluded_criteria_ids] if args.key?(:excluded_criteria_ids)
493
+ @targeted_criteria_ids = args[:targeted_criteria_ids] if args.key?(:targeted_criteria_ids)
494
+ end
495
+ end
496
+
497
+ # Defines an identifier for a segment of inventory that can be targeted by
498
+ # curators or media planners in the deals or auction packages UI. Curation of
499
+ # inventory is done by curators on external platforms.
500
+ class DataSegment
501
+ include Google::Apis::Core::Hashable
502
+
503
+ # Represents an amount of money with its currency type.
504
+ # Corresponds to the JSON property `cpmFee`
505
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Money]
506
+ attr_accessor :cpm_fee
507
+
508
+ # Output only. Time the data segment was created.
509
+ # Corresponds to the JSON property `createTime`
510
+ # @return [String]
511
+ attr_accessor :create_time
512
+
513
+ # Immutable. Identifier. The unique identifier for the data segment. Account ID
514
+ # corresponds to the account ID that created the segment. Format: `buyers/`
515
+ # accountId`/dataSegments/`curatorDataSegmentId``
516
+ # Corresponds to the JSON property `name`
517
+ # @return [String]
518
+ attr_accessor :name
519
+
520
+ # Output only. The state of the data segment.
521
+ # Corresponds to the JSON property `state`
522
+ # @return [String]
523
+ attr_accessor :state
524
+
525
+ # Output only. Time the data segment was last updated.
526
+ # Corresponds to the JSON property `updateTime`
527
+ # @return [String]
528
+ attr_accessor :update_time
529
+
530
+ def initialize(**args)
531
+ update!(**args)
532
+ end
533
+
534
+ # Update properties of this object
535
+ def update!(**args)
536
+ @cpm_fee = args[:cpm_fee] if args.key?(:cpm_fee)
537
+ @create_time = args[:create_time] if args.key?(:create_time)
538
+ @name = args[:name] if args.key?(:name)
539
+ @state = args[:state] if args.key?(:state)
540
+ @update_time = args[:update_time] if args.key?(:update_time)
541
+ end
542
+ end
543
+
544
+ # Defines targeting for a period of time on a specific week day.
545
+ class DayPart
546
+ include Google::Apis::Core::Hashable
547
+
548
+ # Day of week for the period.
549
+ # Corresponds to the JSON property `dayOfWeek`
550
+ # @return [String]
551
+ attr_accessor :day_of_week
552
+
553
+ # Represents a time of day. The date and time zone are either not significant or
554
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
555
+ # types are google.type.Date and `google.protobuf.Timestamp`.
556
+ # Corresponds to the JSON property `endTime`
557
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::TimeOfDay]
558
+ attr_accessor :end_time
559
+
560
+ # Represents a time of day. The date and time zone are either not significant or
561
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
562
+ # types are google.type.Date and `google.protobuf.Timestamp`.
563
+ # Corresponds to the JSON property `startTime`
564
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::TimeOfDay]
565
+ attr_accessor :start_time
566
+
567
+ def initialize(**args)
568
+ update!(**args)
569
+ end
570
+
571
+ # Update properties of this object
572
+ def update!(**args)
573
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
574
+ @end_time = args[:end_time] if args.key?(:end_time)
575
+ @start_time = args[:start_time] if args.key?(:start_time)
576
+ end
577
+ end
578
+
579
+ # Represents Daypart targeting.
580
+ class DayPartTargeting
581
+ include Google::Apis::Core::Hashable
582
+
583
+ # The targeted weekdays and times
584
+ # Corresponds to the JSON property `dayParts`
585
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::DayPart>]
586
+ attr_accessor :day_parts
587
+
588
+ # The time zone type of the day parts
589
+ # Corresponds to the JSON property `timeZoneType`
590
+ # @return [String]
591
+ attr_accessor :time_zone_type
592
+
593
+ def initialize(**args)
594
+ update!(**args)
595
+ end
596
+
597
+ # Update properties of this object
598
+ def update!(**args)
599
+ @day_parts = args[:day_parts] if args.key?(:day_parts)
600
+ @time_zone_type = args[:time_zone_type] if args.key?(:time_zone_type)
601
+ end
602
+ end
603
+
604
+ # Request message for disabling a client.
605
+ class DeactivateClientRequest
606
+ include Google::Apis::Core::Hashable
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ end
615
+ end
616
+
617
+ # Request message for deactivating a client user.
618
+ class DeactivateClientUserRequest
619
+ include Google::Apis::Core::Hashable
620
+
621
+ def initialize(**args)
622
+ update!(**args)
623
+ end
624
+
625
+ # Update properties of this object
626
+ def update!(**args)
627
+ end
628
+ end
629
+
630
+ # Request message for deactivating a data segment
631
+ class DeactivateDataSegmentRequest
632
+ include Google::Apis::Core::Hashable
633
+
634
+ def initialize(**args)
635
+ update!(**args)
636
+ end
637
+
638
+ # Update properties of this object
639
+ def update!(**args)
640
+ end
641
+ end
642
+
643
+ # A deal represents a segment of inventory for displaying ads that contains the
644
+ # terms and targeting information that is used for serving as well as the deal
645
+ # stats and status. Note: A proposal may contain multiple deals.
646
+ class Deal
647
+ include Google::Apis::Core::Hashable
648
+
649
+ # Output only. When the client field is populated, this field refers to the
650
+ # buyer who creates and manages the client buyer and gets billed on behalf of
651
+ # the client buyer; when the buyer field is populated, this field is the same
652
+ # value as buyer; when the deal belongs to a media planner account, this field
653
+ # will be empty. Format : `buyers/`buyerAccountId``
654
+ # Corresponds to the JSON property `billedBuyer`
655
+ # @return [String]
656
+ attr_accessor :billed_buyer
657
+
658
+ # Output only. Refers to a buyer in Real-time Bidding API's Buyer resource.
659
+ # Format: `buyers/`buyerAccountId``
660
+ # Corresponds to the JSON property `buyer`
661
+ # @return [String]
662
+ attr_accessor :buyer
663
+
664
+ # Output only. Refers to a Client. Format: `buyers/`buyerAccountId`/clients/`
665
+ # clientAccountid``
666
+ # Corresponds to the JSON property `client`
667
+ # @return [String]
668
+ attr_accessor :client
669
+
670
+ # Output only. The time of the deal creation.
671
+ # Corresponds to the JSON property `createTime`
672
+ # @return [String]
673
+ attr_accessor :create_time
674
+
675
+ # Message captures data about the creatives in the deal.
676
+ # Corresponds to the JSON property `creativeRequirements`
677
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CreativeRequirements]
678
+ attr_accessor :creative_requirements
679
+
680
+ # Output only. Type of deal.
681
+ # Corresponds to the JSON property `dealType`
682
+ # @return [String]
683
+ attr_accessor :deal_type
684
+
685
+ # Message contains details about how the deal will be paced.
686
+ # Corresponds to the JSON property `deliveryControl`
687
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::DeliveryControl]
688
+ attr_accessor :delivery_control
689
+
690
+ # Output only. Free text description for the deal terms.
691
+ # Corresponds to the JSON property `description`
692
+ # @return [String]
693
+ attr_accessor :description
694
+
695
+ # Output only. The name of the deal. Maximum length of 255 unicode characters is
696
+ # allowed. Control characters are not allowed. Buyers cannot update this field.
697
+ # Note: Not to be confused with name, which is a unique identifier of the deal.
698
+ # Corresponds to the JSON property `displayName`
699
+ # @return [String]
700
+ attr_accessor :display_name
701
+
702
+ # Output only. If set, this field contains the list of DSP specific seat ids set
703
+ # by media planners that are eligible to transact on this deal. The seat ID is
704
+ # in the calling DSP's namespace.
705
+ # Corresponds to the JSON property `eligibleSeatIds`
706
+ # @return [Array<String>]
707
+ attr_accessor :eligible_seat_ids
708
+
709
+ # Represents an amount of money with its currency type.
710
+ # Corresponds to the JSON property `estimatedGrossSpend`
711
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Money]
712
+ attr_accessor :estimated_gross_spend
713
+
714
+ # Proposed flight end time of the deal. This will generally be stored in a
715
+ # granularity of a second. A value is not necessary for Private Auction deals.
716
+ # Corresponds to the JSON property `flightEndTime`
717
+ # @return [String]
718
+ attr_accessor :flight_end_time
719
+
720
+ # Proposed flight start time of the deal. This will generally be stored in the
721
+ # granularity of one second since deal serving starts at seconds boundary. Any
722
+ # time specified with more granularity (for example, in milliseconds) will be
723
+ # truncated towards the start of time in seconds.
724
+ # Corresponds to the JSON property `flightStartTime`
725
+ # @return [String]
726
+ attr_accessor :flight_start_time
727
+
728
+ # Describes a single Media Planner account.
729
+ # Corresponds to the JSON property `mediaPlanner`
730
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::MediaPlanner]
731
+ attr_accessor :media_planner
732
+
733
+ # Immutable. The unique identifier of the deal. Auto-generated by the server
734
+ # when a deal is created. Format: buyers/`accountId`/proposals/`proposalId`/
735
+ # deals/`dealId`
736
+ # Corresponds to the JSON property `name`
737
+ # @return [String]
738
+ attr_accessor :name
739
+
740
+ # Pricing terms for Preferred Deals.
741
+ # Corresponds to the JSON property `preferredDealTerms`
742
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PreferredDealTerms]
743
+ attr_accessor :preferred_deal_terms
744
+
745
+ # Pricing terms for Private Auctions.
746
+ # Corresponds to the JSON property `privateAuctionTerms`
747
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PrivateAuctionTerms]
748
+ attr_accessor :private_auction_terms
749
+
750
+ # Pricing terms for Programmatic Guaranteed Deals.
751
+ # Corresponds to the JSON property `programmaticGuaranteedTerms`
752
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::ProgrammaticGuaranteedTerms]
753
+ attr_accessor :programmatic_guaranteed_terms
754
+
755
+ # Output only. The revision number for the proposal and is the same value as
756
+ # proposal.proposal_revision. Each update to deal causes the proposal revision
757
+ # number to auto-increment. The buyer keeps track of the last revision number
758
+ # they know of and pass it in when making an update. If the head revision number
759
+ # on the server has since incremented, then an ABORTED error is returned during
760
+ # the update operation to let the buyer know that a subsequent update was made.
761
+ # Corresponds to the JSON property `proposalRevision`
762
+ # @return [Fixnum]
763
+ attr_accessor :proposal_revision
764
+
765
+ # Immutable. Reference to the seller on the deal. Format: `buyers/`
766
+ # buyerAccountId`/publisherProfiles/`publisherProfileId``
767
+ # Corresponds to the JSON property `publisherProfile`
768
+ # @return [String]
769
+ attr_accessor :publisher_profile
770
+
771
+ # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/
772
+ # time-zones).
773
+ # Corresponds to the JSON property `sellerTimeZone`
774
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::TimeZone]
775
+ attr_accessor :seller_time_zone
776
+
777
+ # Targeting represents different criteria that can be used to target deals or
778
+ # auction packages. For example, they can choose to target inventory only if the
779
+ # user is in the US. Multiple types of targeting are always applied as a logical
780
+ # AND, unless noted otherwise.
781
+ # Corresponds to the JSON property `targeting`
782
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::MarketplaceTargeting]
783
+ attr_accessor :targeting
784
+
785
+ # Output only. The time when the deal was last updated.
786
+ # Corresponds to the JSON property `updateTime`
787
+ # @return [String]
788
+ attr_accessor :update_time
789
+
790
+ def initialize(**args)
791
+ update!(**args)
792
+ end
793
+
794
+ # Update properties of this object
795
+ def update!(**args)
796
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
797
+ @buyer = args[:buyer] if args.key?(:buyer)
798
+ @client = args[:client] if args.key?(:client)
799
+ @create_time = args[:create_time] if args.key?(:create_time)
800
+ @creative_requirements = args[:creative_requirements] if args.key?(:creative_requirements)
801
+ @deal_type = args[:deal_type] if args.key?(:deal_type)
802
+ @delivery_control = args[:delivery_control] if args.key?(:delivery_control)
803
+ @description = args[:description] if args.key?(:description)
804
+ @display_name = args[:display_name] if args.key?(:display_name)
805
+ @eligible_seat_ids = args[:eligible_seat_ids] if args.key?(:eligible_seat_ids)
806
+ @estimated_gross_spend = args[:estimated_gross_spend] if args.key?(:estimated_gross_spend)
807
+ @flight_end_time = args[:flight_end_time] if args.key?(:flight_end_time)
808
+ @flight_start_time = args[:flight_start_time] if args.key?(:flight_start_time)
809
+ @media_planner = args[:media_planner] if args.key?(:media_planner)
810
+ @name = args[:name] if args.key?(:name)
811
+ @preferred_deal_terms = args[:preferred_deal_terms] if args.key?(:preferred_deal_terms)
812
+ @private_auction_terms = args[:private_auction_terms] if args.key?(:private_auction_terms)
813
+ @programmatic_guaranteed_terms = args[:programmatic_guaranteed_terms] if args.key?(:programmatic_guaranteed_terms)
814
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
815
+ @publisher_profile = args[:publisher_profile] if args.key?(:publisher_profile)
816
+ @seller_time_zone = args[:seller_time_zone] if args.key?(:seller_time_zone)
817
+ @targeting = args[:targeting] if args.key?(:targeting)
818
+ @update_time = args[:update_time] if args.key?(:update_time)
819
+ end
820
+ end
821
+
822
+ # Information related to deal pausing.
823
+ class DealPausingInfo
824
+ include Google::Apis::Core::Hashable
825
+
826
+ # The reason for the pausing of the deal; empty for active deals.
827
+ # Corresponds to the JSON property `pauseReason`
828
+ # @return [String]
829
+ attr_accessor :pause_reason
830
+
831
+ # The party that first paused the deal; unspecified for active deals.
832
+ # Corresponds to the JSON property `pauseRole`
833
+ # @return [String]
834
+ attr_accessor :pause_role
835
+
836
+ # Whether pausing is consented between buyer and seller for the deal.
837
+ # Corresponds to the JSON property `pausingConsented`
838
+ # @return [Boolean]
839
+ attr_accessor :pausing_consented
840
+ alias_method :pausing_consented?, :pausing_consented
841
+
842
+ def initialize(**args)
843
+ update!(**args)
844
+ end
845
+
846
+ # Update properties of this object
847
+ def update!(**args)
848
+ @pause_reason = args[:pause_reason] if args.key?(:pause_reason)
849
+ @pause_role = args[:pause_role] if args.key?(:pause_role)
850
+ @pausing_consented = args[:pausing_consented] if args.key?(:pausing_consented)
851
+ end
852
+ end
853
+
854
+ # Message contains details about how the deal will be paced.
855
+ class DeliveryControl
856
+ include Google::Apis::Core::Hashable
857
+
858
+ # Output only. Specifies roadblocking in a main companion lineitem.
859
+ # Corresponds to the JSON property `companionDeliveryType`
860
+ # @return [String]
861
+ attr_accessor :companion_delivery_type
862
+
863
+ # Output only. Specifies strategy to use for selecting a creative when multiple
864
+ # creatives of the same size are available.
865
+ # Corresponds to the JSON property `creativeRotationType`
866
+ # @return [String]
867
+ attr_accessor :creative_rotation_type
868
+
869
+ # Output only. Specifies how the impression delivery will be paced.
870
+ # Corresponds to the JSON property `deliveryRateType`
871
+ # @return [String]
872
+ attr_accessor :delivery_rate_type
873
+
874
+ # Output only. Specifies any frequency caps. Cannot be filtered within
875
+ # ListDealsRequest.
876
+ # Corresponds to the JSON property `frequencyCap`
877
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::FrequencyCap>]
878
+ attr_accessor :frequency_cap
879
+
880
+ # Output only. Specifies the roadblocking type in display creatives.
881
+ # Corresponds to the JSON property `roadblockingType`
882
+ # @return [String]
883
+ attr_accessor :roadblocking_type
884
+
885
+ def initialize(**args)
886
+ update!(**args)
887
+ end
888
+
889
+ # Update properties of this object
890
+ def update!(**args)
891
+ @companion_delivery_type = args[:companion_delivery_type] if args.key?(:companion_delivery_type)
892
+ @creative_rotation_type = args[:creative_rotation_type] if args.key?(:creative_rotation_type)
893
+ @delivery_rate_type = args[:delivery_rate_type] if args.key?(:delivery_rate_type)
894
+ @frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap)
895
+ @roadblocking_type = args[:roadblocking_type] if args.key?(:roadblocking_type)
896
+ end
897
+ end
898
+
899
+ # A generic empty message that you can re-use to avoid defining duplicated empty
900
+ # messages in your APIs. A typical example is to use it as the request or the
901
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
902
+ # protobuf.Empty) returns (google.protobuf.Empty); `
903
+ class Empty
904
+ include Google::Apis::Core::Hashable
905
+
906
+ def initialize(**args)
907
+ update!(**args)
908
+ end
909
+
910
+ # Update properties of this object
911
+ def update!(**args)
912
+ end
913
+ end
914
+
915
+ # A finalized deal is a snapshot of the deal when both buyer and seller accept
916
+ # the deal. The buyer or seller can update the deal after it's been finalized
917
+ # and renegotiate on the deal targeting, terms and other fields, while at the
918
+ # same time the finalized snapshot of the deal can still be retrieved using this
919
+ # API. The finalized deal contains a copy of the deal as it existed when most
920
+ # recently finalized, as well as fields related to deal serving such as pause/
921
+ # resume status, RTB metrics, and more.
922
+ class FinalizedDeal
923
+ include Google::Apis::Core::Hashable
924
+
925
+ # A deal represents a segment of inventory for displaying ads that contains the
926
+ # terms and targeting information that is used for serving as well as the deal
927
+ # stats and status. Note: A proposal may contain multiple deals.
928
+ # Corresponds to the JSON property `deal`
929
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Deal]
930
+ attr_accessor :deal
931
+
932
+ # Information related to deal pausing.
933
+ # Corresponds to the JSON property `dealPausingInfo`
934
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::DealPausingInfo]
935
+ attr_accessor :deal_pausing_info
936
+
937
+ # Serving status of the deal.
938
+ # Corresponds to the JSON property `dealServingStatus`
939
+ # @return [String]
940
+ attr_accessor :deal_serving_status
941
+
942
+ # The resource name of the finalized deal. Format: `buyers/`accountId`/
943
+ # finalizedDeals/`finalizedDealId``
944
+ # Corresponds to the JSON property `name`
945
+ # @return [String]
946
+ attr_accessor :name
947
+
948
+ # Whether the Programmatic Guaranteed deal is ready for serving.
949
+ # Corresponds to the JSON property `readyToServe`
950
+ # @return [Boolean]
951
+ attr_accessor :ready_to_serve
952
+ alias_method :ready_to_serve?, :ready_to_serve
953
+
954
+ # Real-time bidding metrics. For what each metric means refer to [Report metrics]
955
+ # (https://support.google.com/adxbuyer/answer/6115195#report-metrics)
956
+ # Corresponds to the JSON property `rtbMetrics`
957
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::RtbMetrics]
958
+ attr_accessor :rtb_metrics
959
+
960
+ def initialize(**args)
961
+ update!(**args)
962
+ end
963
+
964
+ # Update properties of this object
965
+ def update!(**args)
966
+ @deal = args[:deal] if args.key?(:deal)
967
+ @deal_pausing_info = args[:deal_pausing_info] if args.key?(:deal_pausing_info)
968
+ @deal_serving_status = args[:deal_serving_status] if args.key?(:deal_serving_status)
969
+ @name = args[:name] if args.key?(:name)
970
+ @ready_to_serve = args[:ready_to_serve] if args.key?(:ready_to_serve)
971
+ @rtb_metrics = args[:rtb_metrics] if args.key?(:rtb_metrics)
972
+ end
973
+ end
974
+
975
+ # Represents a list of targeted and excluded mobile application IDs that
976
+ # publishers own. Android App ID, for example, com.google.android.apps.maps, can
977
+ # be found in Google Play Store URL. iOS App ID (which is a number) can be found
978
+ # at the end of iTunes store URL. First party mobile applications is either
979
+ # included or excluded.
980
+ class FirstPartyMobileApplicationTargeting
981
+ include Google::Apis::Core::Hashable
982
+
983
+ # A list of application IDs to be excluded.
984
+ # Corresponds to the JSON property `excludedAppIds`
985
+ # @return [Array<String>]
986
+ attr_accessor :excluded_app_ids
987
+
988
+ # A list of application IDs to be included.
989
+ # Corresponds to the JSON property `targetedAppIds`
990
+ # @return [Array<String>]
991
+ attr_accessor :targeted_app_ids
992
+
993
+ def initialize(**args)
994
+ update!(**args)
995
+ end
996
+
997
+ # Update properties of this object
998
+ def update!(**args)
999
+ @excluded_app_ids = args[:excluded_app_ids] if args.key?(:excluded_app_ids)
1000
+ @targeted_app_ids = args[:targeted_app_ids] if args.key?(:targeted_app_ids)
1001
+ end
1002
+ end
1003
+
1004
+ # Message contains details about publisher-set frequency caps of the delivery.
1005
+ class FrequencyCap
1006
+ include Google::Apis::Core::Hashable
1007
+
1008
+ # The maximum number of impressions that can be served to a user within the
1009
+ # specified time period.
1010
+ # Corresponds to the JSON property `maxImpressions`
1011
+ # @return [Fixnum]
1012
+ attr_accessor :max_impressions
1013
+
1014
+ # The time unit. Along with num_time_units defines the amount of time over which
1015
+ # impressions per user are counted and capped.
1016
+ # Corresponds to the JSON property `timeUnitType`
1017
+ # @return [String]
1018
+ attr_accessor :time_unit_type
1019
+
1020
+ # The amount of time, in the units specified by time_unit_type. Defines the
1021
+ # amount of time over which impressions per user are counted and capped.
1022
+ # Corresponds to the JSON property `timeUnitsCount`
1023
+ # @return [Fixnum]
1024
+ attr_accessor :time_units_count
1025
+
1026
+ def initialize(**args)
1027
+ update!(**args)
1028
+ end
1029
+
1030
+ # Update properties of this object
1031
+ def update!(**args)
1032
+ @max_impressions = args[:max_impressions] if args.key?(:max_impressions)
1033
+ @time_unit_type = args[:time_unit_type] if args.key?(:time_unit_type)
1034
+ @time_units_count = args[:time_units_count] if args.key?(:time_units_count)
1035
+ end
1036
+ end
1037
+
1038
+ # Represents the size of an ad unit that can be targeted on a bid request.
1039
+ class InventorySizeTargeting
1040
+ include Google::Apis::Core::Hashable
1041
+
1042
+ # A list of inventory sizes to be excluded.
1043
+ # Corresponds to the JSON property `excludedInventorySizes`
1044
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::AdSize>]
1045
+ attr_accessor :excluded_inventory_sizes
1046
+
1047
+ # A list of inventory sizes to be included.
1048
+ # Corresponds to the JSON property `targetedInventorySizes`
1049
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::AdSize>]
1050
+ attr_accessor :targeted_inventory_sizes
1051
+
1052
+ def initialize(**args)
1053
+ update!(**args)
1054
+ end
1055
+
1056
+ # Update properties of this object
1057
+ def update!(**args)
1058
+ @excluded_inventory_sizes = args[:excluded_inventory_sizes] if args.key?(:excluded_inventory_sizes)
1059
+ @targeted_inventory_sizes = args[:targeted_inventory_sizes] if args.key?(:targeted_inventory_sizes)
1060
+ end
1061
+ end
1062
+
1063
+ # Targeting of the inventory types a bid request can originate from.
1064
+ class InventoryTypeTargeting
1065
+ include Google::Apis::Core::Hashable
1066
+
1067
+ # The list of targeted inventory types for the bid request.
1068
+ # Corresponds to the JSON property `inventoryTypes`
1069
+ # @return [Array<String>]
1070
+ attr_accessor :inventory_types
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @inventory_types = args[:inventory_types] if args.key?(:inventory_types)
1079
+ end
1080
+ end
1081
+
1082
+ # Response message for listing auction packages.
1083
+ class ListAuctionPackagesResponse
1084
+ include Google::Apis::Core::Hashable
1085
+
1086
+ # The list of auction packages.
1087
+ # Corresponds to the JSON property `auctionPackages`
1088
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::AuctionPackage>]
1089
+ attr_accessor :auction_packages
1090
+
1091
+ # Continuation token for fetching the next page of results. Pass this value in
1092
+ # the ListAuctionPackagesRequest.pageToken field in the subsequent call to the `
1093
+ # ListAuctionPackages` method to retrieve the next page of results.
1094
+ # Corresponds to the JSON property `nextPageToken`
1095
+ # @return [String]
1096
+ attr_accessor :next_page_token
1097
+
1098
+ def initialize(**args)
1099
+ update!(**args)
1100
+ end
1101
+
1102
+ # Update properties of this object
1103
+ def update!(**args)
1104
+ @auction_packages = args[:auction_packages] if args.key?(:auction_packages)
1105
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1106
+ end
1107
+ end
1108
+
1109
+ # Response message for the list method.
1110
+ class ListClientUsersResponse
1111
+ include Google::Apis::Core::Hashable
1112
+
1113
+ # The returned list of client users.
1114
+ # Corresponds to the JSON property `clientUsers`
1115
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::ClientUser>]
1116
+ attr_accessor :client_users
1117
+
1118
+ # A token to retrieve the next page of results. Pass this value in the
1119
+ # ListClientUsersRequest.pageToken field in the subsequent call to the list
1120
+ # method to retrieve the next page of results.
1121
+ # Corresponds to the JSON property `nextPageToken`
1122
+ # @return [String]
1123
+ attr_accessor :next_page_token
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @client_users = args[:client_users] if args.key?(:client_users)
1132
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1133
+ end
1134
+ end
1135
+
1136
+ # Response message for the list method.
1137
+ class ListClientsResponse
1138
+ include Google::Apis::Core::Hashable
1139
+
1140
+ # The returned list of clients.
1141
+ # Corresponds to the JSON property `clients`
1142
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Client>]
1143
+ attr_accessor :clients
1144
+
1145
+ # A token to retrieve the next page of results. Pass this value in the
1146
+ # ListClientsRequest.pageToken field in the subsequent call to the list method
1147
+ # to retrieve the next page of results.
1148
+ # Corresponds to the JSON property `nextPageToken`
1149
+ # @return [String]
1150
+ attr_accessor :next_page_token
1151
+
1152
+ def initialize(**args)
1153
+ update!(**args)
1154
+ end
1155
+
1156
+ # Update properties of this object
1157
+ def update!(**args)
1158
+ @clients = args[:clients] if args.key?(:clients)
1159
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1160
+ end
1161
+ end
1162
+
1163
+ # Response message for listing data segments.
1164
+ class ListDataSegmentsResponse
1165
+ include Google::Apis::Core::Hashable
1166
+
1167
+ # The list of data segments.
1168
+ # Corresponds to the JSON property `dataSegments`
1169
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::DataSegment>]
1170
+ attr_accessor :data_segments
1171
+
1172
+ # Continuation token for fetching the next page of results. Pass this value in
1173
+ # the ListDataSegmentsRequest.pageToken field in the subsequent call to the `
1174
+ # ListDataSegments` method to retrieve the next page of results.
1175
+ # Corresponds to the JSON property `nextPageToken`
1176
+ # @return [String]
1177
+ attr_accessor :next_page_token
1178
+
1179
+ def initialize(**args)
1180
+ update!(**args)
1181
+ end
1182
+
1183
+ # Update properties of this object
1184
+ def update!(**args)
1185
+ @data_segments = args[:data_segments] if args.key?(:data_segments)
1186
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1187
+ end
1188
+ end
1189
+
1190
+ # Response message for listing deals in a proposal.
1191
+ class ListDealsResponse
1192
+ include Google::Apis::Core::Hashable
1193
+
1194
+ # The list of deals.
1195
+ # Corresponds to the JSON property `deals`
1196
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Deal>]
1197
+ attr_accessor :deals
1198
+
1199
+ # Token to fetch the next page of results.
1200
+ # Corresponds to the JSON property `nextPageToken`
1201
+ # @return [String]
1202
+ attr_accessor :next_page_token
1203
+
1204
+ def initialize(**args)
1205
+ update!(**args)
1206
+ end
1207
+
1208
+ # Update properties of this object
1209
+ def update!(**args)
1210
+ @deals = args[:deals] if args.key?(:deals)
1211
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1212
+ end
1213
+ end
1214
+
1215
+ # Response message for listing finalized deals.
1216
+ class ListFinalizedDealsResponse
1217
+ include Google::Apis::Core::Hashable
1218
+
1219
+ # The list of finalized deals.
1220
+ # Corresponds to the JSON property `finalizedDeals`
1221
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::FinalizedDeal>]
1222
+ attr_accessor :finalized_deals
1223
+
1224
+ # Token to fetch the next page of results.
1225
+ # Corresponds to the JSON property `nextPageToken`
1226
+ # @return [String]
1227
+ attr_accessor :next_page_token
1228
+
1229
+ def initialize(**args)
1230
+ update!(**args)
1231
+ end
1232
+
1233
+ # Update properties of this object
1234
+ def update!(**args)
1235
+ @finalized_deals = args[:finalized_deals] if args.key?(:finalized_deals)
1236
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1237
+ end
1238
+ end
1239
+
1240
+ # Response message for listing proposals.
1241
+ class ListProposalsResponse
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ # Continuation token for fetching the next page of results.
1245
+ # Corresponds to the JSON property `nextPageToken`
1246
+ # @return [String]
1247
+ attr_accessor :next_page_token
1248
+
1249
+ # The list of proposals.
1250
+ # Corresponds to the JSON property `proposals`
1251
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Proposal>]
1252
+ attr_accessor :proposals
1253
+
1254
+ def initialize(**args)
1255
+ update!(**args)
1256
+ end
1257
+
1258
+ # Update properties of this object
1259
+ def update!(**args)
1260
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1261
+ @proposals = args[:proposals] if args.key?(:proposals)
1262
+ end
1263
+ end
1264
+
1265
+ # Response message for profiles visible to the buyer.
1266
+ class ListPublisherProfilesResponse
1267
+ include Google::Apis::Core::Hashable
1268
+
1269
+ # Token to fetch the next page of results.
1270
+ # Corresponds to the JSON property `nextPageToken`
1271
+ # @return [String]
1272
+ attr_accessor :next_page_token
1273
+
1274
+ # The list of matching publisher profiles.
1275
+ # Corresponds to the JSON property `publisherProfiles`
1276
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PublisherProfile>]
1277
+ attr_accessor :publisher_profiles
1278
+
1279
+ def initialize(**args)
1280
+ update!(**args)
1281
+ end
1282
+
1283
+ # Update properties of this object
1284
+ def update!(**args)
1285
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1286
+ @publisher_profiles = args[:publisher_profiles] if args.key?(:publisher_profiles)
1287
+ end
1288
+ end
1289
+
1290
+ # Targeting represents different criteria that can be used to target deals or
1291
+ # auction packages. For example, they can choose to target inventory only if the
1292
+ # user is in the US. Multiple types of targeting are always applied as a logical
1293
+ # AND, unless noted otherwise.
1294
+ class MarketplaceTargeting
1295
+ include Google::Apis::Core::Hashable
1296
+
1297
+ # Represents Daypart targeting.
1298
+ # Corresponds to the JSON property `daypartTargeting`
1299
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::DayPartTargeting]
1300
+ attr_accessor :daypart_targeting
1301
+
1302
+ # Output only. The sensitive content category label IDs excluded. Refer to this
1303
+ # file https://storage.googleapis.com/adx-rtb-dictionaries/content-labels.txt
1304
+ # for category IDs.
1305
+ # Corresponds to the JSON property `excludedSensitiveCategoryIds`
1306
+ # @return [Array<Fixnum>]
1307
+ attr_accessor :excluded_sensitive_category_ids
1308
+
1309
+ # Generic targeting used for targeting dimensions that contains a list of
1310
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1311
+ # syntax.
1312
+ # Corresponds to the JSON property `geoTargeting`
1313
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
1314
+ attr_accessor :geo_targeting
1315
+
1316
+ # Represents the size of an ad unit that can be targeted on a bid request.
1317
+ # Corresponds to the JSON property `inventorySizeTargeting`
1318
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::InventorySizeTargeting]
1319
+ attr_accessor :inventory_size_targeting
1320
+
1321
+ # Targeting of the inventory types a bid request can originate from.
1322
+ # Corresponds to the JSON property `inventoryTypeTargeting`
1323
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::InventoryTypeTargeting]
1324
+ attr_accessor :inventory_type_targeting
1325
+
1326
+ # Represents targeting about where the ads can appear, for example, certain
1327
+ # sites or mobile applications. Different placement targeting types will be
1328
+ # logically OR'ed.
1329
+ # Corresponds to the JSON property `placementTargeting`
1330
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PlacementTargeting]
1331
+ attr_accessor :placement_targeting
1332
+
1333
+ # Represents targeting about various types of technology.
1334
+ # Corresponds to the JSON property `technologyTargeting`
1335
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::TechnologyTargeting]
1336
+ attr_accessor :technology_targeting
1337
+
1338
+ # Generic targeting used for targeting dimensions that contains a list of
1339
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1340
+ # syntax.
1341
+ # Corresponds to the JSON property `userListTargeting`
1342
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
1343
+ attr_accessor :user_list_targeting
1344
+
1345
+ # Generic targeting used for targeting dimensions that contains a list of
1346
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1347
+ # syntax.
1348
+ # Corresponds to the JSON property `verticalTargeting`
1349
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
1350
+ attr_accessor :vertical_targeting
1351
+
1352
+ # Represents targeting information about video.
1353
+ # Corresponds to the JSON property `videoTargeting`
1354
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::VideoTargeting]
1355
+ attr_accessor :video_targeting
1356
+
1357
+ def initialize(**args)
1358
+ update!(**args)
1359
+ end
1360
+
1361
+ # Update properties of this object
1362
+ def update!(**args)
1363
+ @daypart_targeting = args[:daypart_targeting] if args.key?(:daypart_targeting)
1364
+ @excluded_sensitive_category_ids = args[:excluded_sensitive_category_ids] if args.key?(:excluded_sensitive_category_ids)
1365
+ @geo_targeting = args[:geo_targeting] if args.key?(:geo_targeting)
1366
+ @inventory_size_targeting = args[:inventory_size_targeting] if args.key?(:inventory_size_targeting)
1367
+ @inventory_type_targeting = args[:inventory_type_targeting] if args.key?(:inventory_type_targeting)
1368
+ @placement_targeting = args[:placement_targeting] if args.key?(:placement_targeting)
1369
+ @technology_targeting = args[:technology_targeting] if args.key?(:technology_targeting)
1370
+ @user_list_targeting = args[:user_list_targeting] if args.key?(:user_list_targeting)
1371
+ @vertical_targeting = args[:vertical_targeting] if args.key?(:vertical_targeting)
1372
+ @video_targeting = args[:video_targeting] if args.key?(:video_targeting)
1373
+ end
1374
+ end
1375
+
1376
+ # Describes a single Media Planner account.
1377
+ class MediaPlanner
1378
+ include Google::Apis::Core::Hashable
1379
+
1380
+ # Output only. Account ID of the media planner.
1381
+ # Corresponds to the JSON property `accountId`
1382
+ # @return [String]
1383
+ attr_accessor :account_id
1384
+
1385
+ def initialize(**args)
1386
+ update!(**args)
1387
+ end
1388
+
1389
+ # Update properties of this object
1390
+ def update!(**args)
1391
+ @account_id = args[:account_id] if args.key?(:account_id)
1392
+ end
1393
+ end
1394
+
1395
+ # Mobile application targeting settings.
1396
+ class MobileApplicationTargeting
1397
+ include Google::Apis::Core::Hashable
1398
+
1399
+ # Represents a list of targeted and excluded mobile application IDs that
1400
+ # publishers own. Android App ID, for example, com.google.android.apps.maps, can
1401
+ # be found in Google Play Store URL. iOS App ID (which is a number) can be found
1402
+ # at the end of iTunes store URL. First party mobile applications is either
1403
+ # included or excluded.
1404
+ # Corresponds to the JSON property `firstPartyTargeting`
1405
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::FirstPartyMobileApplicationTargeting]
1406
+ attr_accessor :first_party_targeting
1407
+
1408
+ def initialize(**args)
1409
+ update!(**args)
1410
+ end
1411
+
1412
+ # Update properties of this object
1413
+ def update!(**args)
1414
+ @first_party_targeting = args[:first_party_targeting] if args.key?(:first_party_targeting)
1415
+ end
1416
+ end
1417
+
1418
+ # Represents an amount of money with its currency type.
1419
+ class Money
1420
+ include Google::Apis::Core::Hashable
1421
+
1422
+ # The three-letter currency code defined in ISO 4217.
1423
+ # Corresponds to the JSON property `currencyCode`
1424
+ # @return [String]
1425
+ attr_accessor :currency_code
1426
+
1427
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
1428
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
1429
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
1430
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
1431
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
1432
+ # Corresponds to the JSON property `nanos`
1433
+ # @return [Fixnum]
1434
+ attr_accessor :nanos
1435
+
1436
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
1437
+ # 1 unit is one US dollar.
1438
+ # Corresponds to the JSON property `units`
1439
+ # @return [Fixnum]
1440
+ attr_accessor :units
1441
+
1442
+ def initialize(**args)
1443
+ update!(**args)
1444
+ end
1445
+
1446
+ # Update properties of this object
1447
+ def update!(**args)
1448
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1449
+ @nanos = args[:nanos] if args.key?(:nanos)
1450
+ @units = args[:units] if args.key?(:units)
1451
+ end
1452
+ end
1453
+
1454
+ # A text note attached to the proposal to facilitate the communication between
1455
+ # buyers and sellers.
1456
+ class Note
1457
+ include Google::Apis::Core::Hashable
1458
+
1459
+ # Output only. When this note was created.
1460
+ # Corresponds to the JSON property `createTime`
1461
+ # @return [String]
1462
+ attr_accessor :create_time
1463
+
1464
+ # Output only. The role who created the note.
1465
+ # Corresponds to the JSON property `creatorRole`
1466
+ # @return [String]
1467
+ attr_accessor :creator_role
1468
+
1469
+ # The text of the note. Maximum length is 1024 characters.
1470
+ # Corresponds to the JSON property `note`
1471
+ # @return [String]
1472
+ attr_accessor :note
1473
+
1474
+ def initialize(**args)
1475
+ update!(**args)
1476
+ end
1477
+
1478
+ # Update properties of this object
1479
+ def update!(**args)
1480
+ @create_time = args[:create_time] if args.key?(:create_time)
1481
+ @creator_role = args[:creator_role] if args.key?(:creator_role)
1482
+ @note = args[:note] if args.key?(:note)
1483
+ end
1484
+ end
1485
+
1486
+ # Represents targeting information for operating systems.
1487
+ class OperatingSystemTargeting
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # Generic targeting used for targeting dimensions that contains a list of
1491
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1492
+ # syntax.
1493
+ # Corresponds to the JSON property `operatingSystemCriteria`
1494
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
1495
+ attr_accessor :operating_system_criteria
1496
+
1497
+ # Generic targeting used for targeting dimensions that contains a list of
1498
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1499
+ # syntax.
1500
+ # Corresponds to the JSON property `operatingSystemVersionCriteria`
1501
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
1502
+ attr_accessor :operating_system_version_criteria
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @operating_system_criteria = args[:operating_system_criteria] if args.key?(:operating_system_criteria)
1511
+ @operating_system_version_criteria = args[:operating_system_version_criteria] if args.key?(:operating_system_version_criteria)
1512
+ end
1513
+ end
1514
+
1515
+ # Request message for pausing a finalized deal.
1516
+ class PauseFinalizedDealRequest
1517
+ include Google::Apis::Core::Hashable
1518
+
1519
+ # The reason to pause the finalized deal, will be displayed to the seller.
1520
+ # Maximum length is 1000 characters.
1521
+ # Corresponds to the JSON property `reason`
1522
+ # @return [String]
1523
+ attr_accessor :reason
1524
+
1525
+ def initialize(**args)
1526
+ update!(**args)
1527
+ end
1528
+
1529
+ # Update properties of this object
1530
+ def update!(**args)
1531
+ @reason = args[:reason] if args.key?(:reason)
1532
+ end
1533
+ end
1534
+
1535
+ # Represents targeting about where the ads can appear, for example, certain
1536
+ # sites or mobile applications. Different placement targeting types will be
1537
+ # logically OR'ed.
1538
+ class PlacementTargeting
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ # Mobile application targeting settings.
1542
+ # Corresponds to the JSON property `mobileApplicationTargeting`
1543
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::MobileApplicationTargeting]
1544
+ attr_accessor :mobile_application_targeting
1545
+
1546
+ # Represents a list of targeted and excluded URLs (for example, google.com). For
1547
+ # Private Auction Deals, URLs are either included or excluded. For Programmatic
1548
+ # Guaranteed and Preferred Deals, this doesn't apply.
1549
+ # Corresponds to the JSON property `uriTargeting`
1550
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::UriTargeting]
1551
+ attr_accessor :uri_targeting
1552
+
1553
+ def initialize(**args)
1554
+ update!(**args)
1555
+ end
1556
+
1557
+ # Update properties of this object
1558
+ def update!(**args)
1559
+ @mobile_application_targeting = args[:mobile_application_targeting] if args.key?(:mobile_application_targeting)
1560
+ @uri_targeting = args[:uri_targeting] if args.key?(:uri_targeting)
1561
+ end
1562
+ end
1563
+
1564
+ # Pricing terms for Preferred Deals.
1565
+ class PreferredDealTerms
1566
+ include Google::Apis::Core::Hashable
1567
+
1568
+ # Represents a price and a pricing type for a deal.
1569
+ # Corresponds to the JSON property `fixedPrice`
1570
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Price]
1571
+ attr_accessor :fixed_price
1572
+
1573
+ def initialize(**args)
1574
+ update!(**args)
1575
+ end
1576
+
1577
+ # Update properties of this object
1578
+ def update!(**args)
1579
+ @fixed_price = args[:fixed_price] if args.key?(:fixed_price)
1580
+ end
1581
+ end
1582
+
1583
+ # Represents a price and a pricing type for a deal.
1584
+ class Price
1585
+ include Google::Apis::Core::Hashable
1586
+
1587
+ # Represents an amount of money with its currency type.
1588
+ # Corresponds to the JSON property `amount`
1589
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Money]
1590
+ attr_accessor :amount
1591
+
1592
+ # The pricing type for the deal.
1593
+ # Corresponds to the JSON property `type`
1594
+ # @return [String]
1595
+ attr_accessor :type
1596
+
1597
+ def initialize(**args)
1598
+ update!(**args)
1599
+ end
1600
+
1601
+ # Update properties of this object
1602
+ def update!(**args)
1603
+ @amount = args[:amount] if args.key?(:amount)
1604
+ @type = args[:type] if args.key?(:type)
1605
+ end
1606
+ end
1607
+
1608
+ # Pricing terms for Private Auctions.
1609
+ class PrivateAuctionTerms
1610
+ include Google::Apis::Core::Hashable
1611
+
1612
+ # Represents a price and a pricing type for a deal.
1613
+ # Corresponds to the JSON property `floorPrice`
1614
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Price]
1615
+ attr_accessor :floor_price
1616
+
1617
+ # Output only. True if open auction buyers are allowed to compete with invited
1618
+ # buyers in this private auction.
1619
+ # Corresponds to the JSON property `openAuctionAllowed`
1620
+ # @return [Boolean]
1621
+ attr_accessor :open_auction_allowed
1622
+ alias_method :open_auction_allowed?, :open_auction_allowed
1623
+
1624
+ def initialize(**args)
1625
+ update!(**args)
1626
+ end
1627
+
1628
+ # Update properties of this object
1629
+ def update!(**args)
1630
+ @floor_price = args[:floor_price] if args.key?(:floor_price)
1631
+ @open_auction_allowed = args[:open_auction_allowed] if args.key?(:open_auction_allowed)
1632
+ end
1633
+ end
1634
+
1635
+ # Buyers are allowed to store certain types of private data in a proposal or
1636
+ # deal.
1637
+ class PrivateData
1638
+ include Google::Apis::Core::Hashable
1639
+
1640
+ # A buyer specified reference ID. This can be queried in the list operations (
1641
+ # max-length: 1024 unicode code units).
1642
+ # Corresponds to the JSON property `referenceId`
1643
+ # @return [String]
1644
+ attr_accessor :reference_id
1645
+
1646
+ def initialize(**args)
1647
+ update!(**args)
1648
+ end
1649
+
1650
+ # Update properties of this object
1651
+ def update!(**args)
1652
+ @reference_id = args[:reference_id] if args.key?(:reference_id)
1653
+ end
1654
+ end
1655
+
1656
+ # Pricing terms for Programmatic Guaranteed Deals.
1657
+ class ProgrammaticGuaranteedTerms
1658
+ include Google::Apis::Core::Hashable
1659
+
1660
+ # Represents a price and a pricing type for a deal.
1661
+ # Corresponds to the JSON property `fixedPrice`
1662
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Price]
1663
+ attr_accessor :fixed_price
1664
+
1665
+ # Count of guaranteed looks. For CPD deals, buyer changes to guaranteed_looks
1666
+ # will be ignored.
1667
+ # Corresponds to the JSON property `guaranteedLooks`
1668
+ # @return [Fixnum]
1669
+ attr_accessor :guaranteed_looks
1670
+
1671
+ # The lifetime impression cap for CPM Sponsorship deals. Deal will stop serving
1672
+ # when cap is reached.
1673
+ # Corresponds to the JSON property `impressionCap`
1674
+ # @return [Fixnum]
1675
+ attr_accessor :impression_cap
1676
+
1677
+ # Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate
1678
+ # on this field instead of guaranteed_looks.
1679
+ # Corresponds to the JSON property `minimumDailyLooks`
1680
+ # @return [Fixnum]
1681
+ attr_accessor :minimum_daily_looks
1682
+
1683
+ # For sponsorship deals, this is the percentage of the seller's eligible
1684
+ # impressions that the deal will serve until the cap is reached. Valid value is
1685
+ # within range 0~100.
1686
+ # Corresponds to the JSON property `percentShareOfVoice`
1687
+ # @return [Fixnum]
1688
+ attr_accessor :percent_share_of_voice
1689
+
1690
+ # The reservation type for a Programmatic Guaranteed deal. This indicates
1691
+ # whether the number of impressions is fixed, or a percent of available
1692
+ # impressions. If not specified, the default reservation type is STANDARD.
1693
+ # Corresponds to the JSON property `reservationType`
1694
+ # @return [String]
1695
+ attr_accessor :reservation_type
1696
+
1697
+ def initialize(**args)
1698
+ update!(**args)
1699
+ end
1700
+
1701
+ # Update properties of this object
1702
+ def update!(**args)
1703
+ @fixed_price = args[:fixed_price] if args.key?(:fixed_price)
1704
+ @guaranteed_looks = args[:guaranteed_looks] if args.key?(:guaranteed_looks)
1705
+ @impression_cap = args[:impression_cap] if args.key?(:impression_cap)
1706
+ @minimum_daily_looks = args[:minimum_daily_looks] if args.key?(:minimum_daily_looks)
1707
+ @percent_share_of_voice = args[:percent_share_of_voice] if args.key?(:percent_share_of_voice)
1708
+ @reservation_type = args[:reservation_type] if args.key?(:reservation_type)
1709
+ end
1710
+ end
1711
+
1712
+ # Represents a proposal in the Marketplace. A proposal is the unit of
1713
+ # negotiation between a seller and a buyer.
1714
+ class Proposal
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # Output only. When the client field is populated, this field refers to the
1718
+ # buyer who creates and manages the client buyer and gets billed on behalf of
1719
+ # the client buyer; when the buyer field is populated, this field is the same
1720
+ # value as buyer. Format : `buyers/`buyerAccountId``
1721
+ # Corresponds to the JSON property `billedBuyer`
1722
+ # @return [String]
1723
+ attr_accessor :billed_buyer
1724
+
1725
+ # Output only. Refers to a buyer in The Realtime-bidding API. Format: `buyers/`
1726
+ # buyerAccountId``
1727
+ # Corresponds to the JSON property `buyer`
1728
+ # @return [String]
1729
+ attr_accessor :buyer
1730
+
1731
+ # Contact information for the buyer.
1732
+ # Corresponds to the JSON property `buyerContacts`
1733
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Contact>]
1734
+ attr_accessor :buyer_contacts
1735
+
1736
+ # Buyers are allowed to store certain types of private data in a proposal or
1737
+ # deal.
1738
+ # Corresponds to the JSON property `buyerPrivateData`
1739
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PrivateData]
1740
+ attr_accessor :buyer_private_data
1741
+
1742
+ # Output only. Refers to a Client. Format: `buyers/`buyerAccountId`/clients/`
1743
+ # clientAccountid``
1744
+ # Corresponds to the JSON property `client`
1745
+ # @return [String]
1746
+ attr_accessor :client
1747
+
1748
+ # Output only. Type of deal the proposal contains.
1749
+ # Corresponds to the JSON property `dealType`
1750
+ # @return [String]
1751
+ attr_accessor :deal_type
1752
+
1753
+ # Output only. The descriptive name for the proposal. Maximum length of 255
1754
+ # unicode characters is allowed. Control characters are not allowed. Buyers
1755
+ # cannot update this field. Note: Not to be confused with name, which is a
1756
+ # unique identifier of the proposal.
1757
+ # Corresponds to the JSON property `displayName`
1758
+ # @return [String]
1759
+ attr_accessor :display_name
1760
+
1761
+ # Output only. True if the proposal was previously finalized and is now being
1762
+ # renegotiated.
1763
+ # Corresponds to the JSON property `isRenegotiating`
1764
+ # @return [Boolean]
1765
+ attr_accessor :is_renegotiating
1766
+ alias_method :is_renegotiating?, :is_renegotiating
1767
+
1768
+ # Output only. The role of the last user that either updated the proposal or
1769
+ # left a comment.
1770
+ # Corresponds to the JSON property `lastUpdaterOrCommentorRole`
1771
+ # @return [String]
1772
+ attr_accessor :last_updater_or_commentor_role
1773
+
1774
+ # Immutable. The name of the proposal serving as a unique identifier. Format:
1775
+ # buyers/`accountId`/proposals/`proposalId`
1776
+ # Corresponds to the JSON property `name`
1777
+ # @return [String]
1778
+ attr_accessor :name
1779
+
1780
+ # A list of notes from the buyer and the seller attached to this proposal.
1781
+ # Corresponds to the JSON property `notes`
1782
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Note>]
1783
+ attr_accessor :notes
1784
+
1785
+ # Output only. Indicates whether the buyer/seller created the proposal.
1786
+ # Corresponds to the JSON property `originatorRole`
1787
+ # @return [String]
1788
+ attr_accessor :originator_role
1789
+
1790
+ # Whether pausing is allowed for the proposal. This is a negotiable term between
1791
+ # buyers and publishers.
1792
+ # Corresponds to the JSON property `pausingConsented`
1793
+ # @return [Boolean]
1794
+ attr_accessor :pausing_consented
1795
+ alias_method :pausing_consented?, :pausing_consented
1796
+
1797
+ # Output only. The revision number for the proposal. Each update to the proposal
1798
+ # or deal causes the proposal revision number to auto-increment. The buyer keeps
1799
+ # track of the last revision number they know of and pass it in when making an
1800
+ # update. If the head revision number on the server has since incremented, then
1801
+ # an ABORTED error is returned during the update operation to let the buyer know
1802
+ # that a subsequent update was made.
1803
+ # Corresponds to the JSON property `proposalRevision`
1804
+ # @return [Fixnum]
1805
+ attr_accessor :proposal_revision
1806
+
1807
+ # Immutable. Reference to the seller on the proposal. Format: `buyers/`
1808
+ # buyerAccountId`/publisherProfiles/`publisherProfileId`` Note: This field may
1809
+ # be set only when creating the resource. Modifying this field while updating
1810
+ # the resource will result in an error.
1811
+ # Corresponds to the JSON property `publisherProfile`
1812
+ # @return [String]
1813
+ attr_accessor :publisher_profile
1814
+
1815
+ # Output only. Contact information for the seller.
1816
+ # Corresponds to the JSON property `sellerContacts`
1817
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Contact>]
1818
+ attr_accessor :seller_contacts
1819
+
1820
+ # Output only. Indicates the state of the proposal.
1821
+ # Corresponds to the JSON property `state`
1822
+ # @return [String]
1823
+ attr_accessor :state
1824
+
1825
+ # Output only. The terms and conditions associated with this proposal. Accepting
1826
+ # a proposal implies acceptance of this field. This is created by the seller,
1827
+ # the buyer can only view it.
1828
+ # Corresponds to the JSON property `termsAndConditions`
1829
+ # @return [String]
1830
+ attr_accessor :terms_and_conditions
1831
+
1832
+ # Output only. The time when the proposal was last revised.
1833
+ # Corresponds to the JSON property `updateTime`
1834
+ # @return [String]
1835
+ attr_accessor :update_time
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @billed_buyer = args[:billed_buyer] if args.key?(:billed_buyer)
1844
+ @buyer = args[:buyer] if args.key?(:buyer)
1845
+ @buyer_contacts = args[:buyer_contacts] if args.key?(:buyer_contacts)
1846
+ @buyer_private_data = args[:buyer_private_data] if args.key?(:buyer_private_data)
1847
+ @client = args[:client] if args.key?(:client)
1848
+ @deal_type = args[:deal_type] if args.key?(:deal_type)
1849
+ @display_name = args[:display_name] if args.key?(:display_name)
1850
+ @is_renegotiating = args[:is_renegotiating] if args.key?(:is_renegotiating)
1851
+ @last_updater_or_commentor_role = args[:last_updater_or_commentor_role] if args.key?(:last_updater_or_commentor_role)
1852
+ @name = args[:name] if args.key?(:name)
1853
+ @notes = args[:notes] if args.key?(:notes)
1854
+ @originator_role = args[:originator_role] if args.key?(:originator_role)
1855
+ @pausing_consented = args[:pausing_consented] if args.key?(:pausing_consented)
1856
+ @proposal_revision = args[:proposal_revision] if args.key?(:proposal_revision)
1857
+ @publisher_profile = args[:publisher_profile] if args.key?(:publisher_profile)
1858
+ @seller_contacts = args[:seller_contacts] if args.key?(:seller_contacts)
1859
+ @state = args[:state] if args.key?(:state)
1860
+ @terms_and_conditions = args[:terms_and_conditions] if args.key?(:terms_and_conditions)
1861
+ @update_time = args[:update_time] if args.key?(:update_time)
1862
+ end
1863
+ end
1864
+
1865
+ # The values in the publisher profile are supplied by the publisher. All fields
1866
+ # are not filterable unless stated otherwise.
1867
+ class PublisherProfile
1868
+ include Google::Apis::Core::Hashable
1869
+
1870
+ # Description on the publisher's audience.
1871
+ # Corresponds to the JSON property `audienceDescription`
1872
+ # @return [String]
1873
+ attr_accessor :audience_description
1874
+
1875
+ # Contact information for direct reservation deals. This is free text entered by
1876
+ # the publisher and may include information like names, phone numbers and email
1877
+ # addresses.
1878
+ # Corresponds to the JSON property `directDealsContact`
1879
+ # @return [String]
1880
+ attr_accessor :direct_deals_contact
1881
+
1882
+ # Display name of the publisher profile. Can be used to filter the response of
1883
+ # the publisherProfiles.list method.
1884
+ # Corresponds to the JSON property `displayName`
1885
+ # @return [String]
1886
+ attr_accessor :display_name
1887
+
1888
+ # The list of domains represented in this publisher profile. Empty if this is a
1889
+ # parent profile. These are top private domains, meaning that these will not
1890
+ # contain a string like "photos.google.co.uk/123", but will instead contain "
1891
+ # google.co.uk". Can be used to filter the response of the publisherProfiles.
1892
+ # list method.
1893
+ # Corresponds to the JSON property `domains`
1894
+ # @return [Array<String>]
1895
+ attr_accessor :domains
1896
+
1897
+ # Indicates if this profile is the parent profile of the seller. A parent
1898
+ # profile represents all the inventory from the seller, as opposed to child
1899
+ # profile that is created to brand a portion of inventory. One seller has only
1900
+ # one parent publisher profile, and can have multiple child profiles. See https:/
1901
+ # /support.google.com/admanager/answer/6035806 for details. Can be used to
1902
+ # filter the response of the publisherProfiles.list method by setting the filter
1903
+ # to "is_parent: true".
1904
+ # Corresponds to the JSON property `isParent`
1905
+ # @return [Boolean]
1906
+ attr_accessor :is_parent
1907
+ alias_method :is_parent?, :is_parent
1908
+
1909
+ # A Google public URL to the logo for this publisher profile. The logo is stored
1910
+ # as a PNG, JPG, or GIF image.
1911
+ # Corresponds to the JSON property `logoUrl`
1912
+ # @return [String]
1913
+ attr_accessor :logo_url
1914
+
1915
+ # URL to additional marketing and sales materials.
1916
+ # Corresponds to the JSON property `mediaKitUrl`
1917
+ # @return [String]
1918
+ attr_accessor :media_kit_url
1919
+
1920
+ # The list of apps represented in this publisher profile. Empty if this is a
1921
+ # parent profile.
1922
+ # Corresponds to the JSON property `mobileApps`
1923
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PublisherProfileMobileApplication>]
1924
+ attr_accessor :mobile_apps
1925
+
1926
+ # Name of the publisher profile. Format: `buyers/`buyer`/publisherProfiles/`
1927
+ # publisher_profile``
1928
+ # Corresponds to the JSON property `name`
1929
+ # @return [String]
1930
+ attr_accessor :name
1931
+
1932
+ # Overview of the publisher.
1933
+ # Corresponds to the JSON property `overview`
1934
+ # @return [String]
1935
+ attr_accessor :overview
1936
+
1937
+ # Statement explaining what's unique about publisher's business, and why buyers
1938
+ # should partner with the publisher.
1939
+ # Corresponds to the JSON property `pitchStatement`
1940
+ # @return [String]
1941
+ attr_accessor :pitch_statement
1942
+
1943
+ # Contact information for programmatic deals. This is free text entered by the
1944
+ # publisher and may include information like names, phone numbers and email
1945
+ # addresses.
1946
+ # Corresponds to the JSON property `programmaticDealsContact`
1947
+ # @return [String]
1948
+ attr_accessor :programmatic_deals_contact
1949
+
1950
+ # A unique identifying code for the seller. This value is the same for all of
1951
+ # the seller's parent and child publisher profiles. Can be used to filter the
1952
+ # response of the publisherProfiles.list method.
1953
+ # Corresponds to the JSON property `publisherCode`
1954
+ # @return [String]
1955
+ attr_accessor :publisher_code
1956
+
1957
+ # URL to a sample content page.
1958
+ # Corresponds to the JSON property `samplePageUrl`
1959
+ # @return [String]
1960
+ attr_accessor :sample_page_url
1961
+
1962
+ # Up to three key metrics and rankings. For example, "#1 Mobile News Site for 20
1963
+ # Straight Months".
1964
+ # Corresponds to the JSON property `topHeadlines`
1965
+ # @return [Array<String>]
1966
+ attr_accessor :top_headlines
1967
+
1968
+ def initialize(**args)
1969
+ update!(**args)
1970
+ end
1971
+
1972
+ # Update properties of this object
1973
+ def update!(**args)
1974
+ @audience_description = args[:audience_description] if args.key?(:audience_description)
1975
+ @direct_deals_contact = args[:direct_deals_contact] if args.key?(:direct_deals_contact)
1976
+ @display_name = args[:display_name] if args.key?(:display_name)
1977
+ @domains = args[:domains] if args.key?(:domains)
1978
+ @is_parent = args[:is_parent] if args.key?(:is_parent)
1979
+ @logo_url = args[:logo_url] if args.key?(:logo_url)
1980
+ @media_kit_url = args[:media_kit_url] if args.key?(:media_kit_url)
1981
+ @mobile_apps = args[:mobile_apps] if args.key?(:mobile_apps)
1982
+ @name = args[:name] if args.key?(:name)
1983
+ @overview = args[:overview] if args.key?(:overview)
1984
+ @pitch_statement = args[:pitch_statement] if args.key?(:pitch_statement)
1985
+ @programmatic_deals_contact = args[:programmatic_deals_contact] if args.key?(:programmatic_deals_contact)
1986
+ @publisher_code = args[:publisher_code] if args.key?(:publisher_code)
1987
+ @sample_page_url = args[:sample_page_url] if args.key?(:sample_page_url)
1988
+ @top_headlines = args[:top_headlines] if args.key?(:top_headlines)
1989
+ end
1990
+ end
1991
+
1992
+ # A mobile application that contains a external app ID, name, and app store.
1993
+ class PublisherProfileMobileApplication
1994
+ include Google::Apis::Core::Hashable
1995
+
1996
+ # The app store the app belongs to. Can be used to filter the response of the
1997
+ # publisherProfiles.list method.
1998
+ # Corresponds to the JSON property `appStore`
1999
+ # @return [String]
2000
+ attr_accessor :app_store
2001
+
2002
+ # The external ID for the app from its app store. Can be used to filter the
2003
+ # response of the publisherProfiles.list method.
2004
+ # Corresponds to the JSON property `externalAppId`
2005
+ # @return [String]
2006
+ attr_accessor :external_app_id
2007
+
2008
+ # The name of the app.
2009
+ # Corresponds to the JSON property `name`
2010
+ # @return [String]
2011
+ attr_accessor :name
2012
+
2013
+ def initialize(**args)
2014
+ update!(**args)
2015
+ end
2016
+
2017
+ # Update properties of this object
2018
+ def update!(**args)
2019
+ @app_store = args[:app_store] if args.key?(:app_store)
2020
+ @external_app_id = args[:external_app_id] if args.key?(:external_app_id)
2021
+ @name = args[:name] if args.key?(:name)
2022
+ end
2023
+ end
2024
+
2025
+ # Request message for resuming a finalized deal.
2026
+ class ResumeFinalizedDealRequest
2027
+ include Google::Apis::Core::Hashable
2028
+
2029
+ def initialize(**args)
2030
+ update!(**args)
2031
+ end
2032
+
2033
+ # Update properties of this object
2034
+ def update!(**args)
2035
+ end
2036
+ end
2037
+
2038
+ # Real-time bidding metrics. For what each metric means refer to [Report metrics]
2039
+ # (https://support.google.com/adxbuyer/answer/6115195#report-metrics)
2040
+ class RtbMetrics
2041
+ include Google::Apis::Core::Hashable
2042
+
2043
+ # Ad impressions in last 7 days.
2044
+ # Corresponds to the JSON property `adImpressions7Days`
2045
+ # @return [Fixnum]
2046
+ attr_accessor :ad_impressions7_days
2047
+
2048
+ # Bid rate in last 7 days, calculated by (bids / bid requests).
2049
+ # Corresponds to the JSON property `bidRate7Days`
2050
+ # @return [Float]
2051
+ attr_accessor :bid_rate7_days
2052
+
2053
+ # Bid requests in last 7 days.
2054
+ # Corresponds to the JSON property `bidRequests7Days`
2055
+ # @return [Fixnum]
2056
+ attr_accessor :bid_requests7_days
2057
+
2058
+ # Bids in last 7 days.
2059
+ # Corresponds to the JSON property `bids7Days`
2060
+ # @return [Fixnum]
2061
+ attr_accessor :bids7_days
2062
+
2063
+ # Filtered bid rate in last 7 days, calculated by (filtered bids / bids).
2064
+ # Corresponds to the JSON property `filteredBidRate7Days`
2065
+ # @return [Float]
2066
+ attr_accessor :filtered_bid_rate7_days
2067
+
2068
+ # Must bid rate for current month.
2069
+ # Corresponds to the JSON property `mustBidRateCurrentMonth`
2070
+ # @return [Float]
2071
+ attr_accessor :must_bid_rate_current_month
2072
+
2073
+ def initialize(**args)
2074
+ update!(**args)
2075
+ end
2076
+
2077
+ # Update properties of this object
2078
+ def update!(**args)
2079
+ @ad_impressions7_days = args[:ad_impressions7_days] if args.key?(:ad_impressions7_days)
2080
+ @bid_rate7_days = args[:bid_rate7_days] if args.key?(:bid_rate7_days)
2081
+ @bid_requests7_days = args[:bid_requests7_days] if args.key?(:bid_requests7_days)
2082
+ @bids7_days = args[:bids7_days] if args.key?(:bids7_days)
2083
+ @filtered_bid_rate7_days = args[:filtered_bid_rate7_days] if args.key?(:filtered_bid_rate7_days)
2084
+ @must_bid_rate_current_month = args[:must_bid_rate_current_month] if args.key?(:must_bid_rate_current_month)
2085
+ end
2086
+ end
2087
+
2088
+ # Request to send an RFP. All fields in this request are proposed to publisher
2089
+ # and subject to changes by publisher during later negotiation.
2090
+ class SendRfpRequest
2091
+ include Google::Apis::Core::Hashable
2092
+
2093
+ # Contact information for the buyer.
2094
+ # Corresponds to the JSON property `buyerContacts`
2095
+ # @return [Array<Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Contact>]
2096
+ attr_accessor :buyer_contacts
2097
+
2098
+ # If the current buyer is sending the RFP on behalf of its client, use this
2099
+ # field to specify the name of the client in the format: `buyers/`accountId`/
2100
+ # clients/`clientAccountid``.
2101
+ # Corresponds to the JSON property `client`
2102
+ # @return [String]
2103
+ attr_accessor :client
2104
+
2105
+ # Required. The display name of the proposal being created by this RFP.
2106
+ # Corresponds to the JSON property `displayName`
2107
+ # @return [String]
2108
+ attr_accessor :display_name
2109
+
2110
+ # Represents an amount of money with its currency type.
2111
+ # Corresponds to the JSON property `estimatedGrossSpend`
2112
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Money]
2113
+ attr_accessor :estimated_gross_spend
2114
+
2115
+ # Required. Proposed flight end time of the RFP. A timestamp in RFC3339 UTC "
2116
+ # Zulu" format. Note that the specified value will be truncated to a granularity
2117
+ # of one second.
2118
+ # Corresponds to the JSON property `flightEndTime`
2119
+ # @return [String]
2120
+ attr_accessor :flight_end_time
2121
+
2122
+ # Required. Proposed flight start time of the RFP. A timestamp in RFC3339 UTC "
2123
+ # Zulu" format. Note that the specified value will be truncated to a granularity
2124
+ # of one second.
2125
+ # Corresponds to the JSON property `flightStartTime`
2126
+ # @return [String]
2127
+ attr_accessor :flight_start_time
2128
+
2129
+ # Generic targeting used for targeting dimensions that contains a list of
2130
+ # included and excluded numeric IDs. This cannot be filtered using list filter
2131
+ # syntax.
2132
+ # Corresponds to the JSON property `geoTargeting`
2133
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
2134
+ attr_accessor :geo_targeting
2135
+
2136
+ # Represents the size of an ad unit that can be targeted on a bid request.
2137
+ # Corresponds to the JSON property `inventorySizeTargeting`
2138
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::InventorySizeTargeting]
2139
+ attr_accessor :inventory_size_targeting
2140
+
2141
+ # A message that is sent to the publisher. Maximum length is 1024 characters.
2142
+ # Corresponds to the JSON property `note`
2143
+ # @return [String]
2144
+ attr_accessor :note
2145
+
2146
+ # Pricing terms for Preferred Deals.
2147
+ # Corresponds to the JSON property `preferredDealTerms`
2148
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::PreferredDealTerms]
2149
+ attr_accessor :preferred_deal_terms
2150
+
2151
+ # Pricing terms for Programmatic Guaranteed Deals.
2152
+ # Corresponds to the JSON property `programmaticGuaranteedTerms`
2153
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::ProgrammaticGuaranteedTerms]
2154
+ attr_accessor :programmatic_guaranteed_terms
2155
+
2156
+ # Required. The profile of the publisher who will receive this RFP in the format:
2157
+ # `buyers/`accountId`/publisherProfiles/`publisherProfileId``.
2158
+ # Corresponds to the JSON property `publisherProfile`
2159
+ # @return [String]
2160
+ attr_accessor :publisher_profile
2161
+
2162
+ def initialize(**args)
2163
+ update!(**args)
2164
+ end
2165
+
2166
+ # Update properties of this object
2167
+ def update!(**args)
2168
+ @buyer_contacts = args[:buyer_contacts] if args.key?(:buyer_contacts)
2169
+ @client = args[:client] if args.key?(:client)
2170
+ @display_name = args[:display_name] if args.key?(:display_name)
2171
+ @estimated_gross_spend = args[:estimated_gross_spend] if args.key?(:estimated_gross_spend)
2172
+ @flight_end_time = args[:flight_end_time] if args.key?(:flight_end_time)
2173
+ @flight_start_time = args[:flight_start_time] if args.key?(:flight_start_time)
2174
+ @geo_targeting = args[:geo_targeting] if args.key?(:geo_targeting)
2175
+ @inventory_size_targeting = args[:inventory_size_targeting] if args.key?(:inventory_size_targeting)
2176
+ @note = args[:note] if args.key?(:note)
2177
+ @preferred_deal_terms = args[:preferred_deal_terms] if args.key?(:preferred_deal_terms)
2178
+ @programmatic_guaranteed_terms = args[:programmatic_guaranteed_terms] if args.key?(:programmatic_guaranteed_terms)
2179
+ @publisher_profile = args[:publisher_profile] if args.key?(:publisher_profile)
2180
+ end
2181
+ end
2182
+
2183
+ # Request message for setting ready to serve for a finalized deal.
2184
+ class SetReadyToServeRequest
2185
+ include Google::Apis::Core::Hashable
2186
+
2187
+ def initialize(**args)
2188
+ update!(**args)
2189
+ end
2190
+
2191
+ # Update properties of this object
2192
+ def update!(**args)
2193
+ end
2194
+ end
2195
+
2196
+ # Request message for SubscribeAuctionPackage.
2197
+ class SubscribeAuctionPackageRequest
2198
+ include Google::Apis::Core::Hashable
2199
+
2200
+ def initialize(**args)
2201
+ update!(**args)
2202
+ end
2203
+
2204
+ # Update properties of this object
2205
+ def update!(**args)
2206
+ end
2207
+ end
2208
+
2209
+ # Request message for SubscribeAuctionPackageClients.
2210
+ class SubscribeClientsRequest
2211
+ include Google::Apis::Core::Hashable
2212
+
2213
+ # Optional. A list of client buyers to subscribe to the auction package, with
2214
+ # client buyer in the format `buyers/`accountId`/clients/`clientAccountId``. The
2215
+ # current buyer will be subscribed to the auction package regardless of the list
2216
+ # contents if not already.
2217
+ # Corresponds to the JSON property `clients`
2218
+ # @return [Array<String>]
2219
+ attr_accessor :clients
2220
+
2221
+ def initialize(**args)
2222
+ update!(**args)
2223
+ end
2224
+
2225
+ # Update properties of this object
2226
+ def update!(**args)
2227
+ @clients = args[:clients] if args.key?(:clients)
2228
+ end
2229
+ end
2230
+
2231
+ # Represents targeting about various types of technology.
2232
+ class TechnologyTargeting
2233
+ include Google::Apis::Core::Hashable
2234
+
2235
+ # Generic targeting used for targeting dimensions that contains a list of
2236
+ # included and excluded numeric IDs. This cannot be filtered using list filter
2237
+ # syntax.
2238
+ # Corresponds to the JSON property `deviceCapabilityTargeting`
2239
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
2240
+ attr_accessor :device_capability_targeting
2241
+
2242
+ # Generic targeting used for targeting dimensions that contains a list of
2243
+ # included and excluded numeric IDs. This cannot be filtered using list filter
2244
+ # syntax.
2245
+ # Corresponds to the JSON property `deviceCategoryTargeting`
2246
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::CriteriaTargeting]
2247
+ attr_accessor :device_category_targeting
2248
+
2249
+ # Represents targeting information for operating systems.
2250
+ # Corresponds to the JSON property `operatingSystemTargeting`
2251
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::OperatingSystemTargeting]
2252
+ attr_accessor :operating_system_targeting
2253
+
2254
+ def initialize(**args)
2255
+ update!(**args)
2256
+ end
2257
+
2258
+ # Update properties of this object
2259
+ def update!(**args)
2260
+ @device_capability_targeting = args[:device_capability_targeting] if args.key?(:device_capability_targeting)
2261
+ @device_category_targeting = args[:device_category_targeting] if args.key?(:device_category_targeting)
2262
+ @operating_system_targeting = args[:operating_system_targeting] if args.key?(:operating_system_targeting)
2263
+ end
2264
+ end
2265
+
2266
+ # Represents a time of day. The date and time zone are either not significant or
2267
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
2268
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2269
+ class TimeOfDay
2270
+ include Google::Apis::Core::Hashable
2271
+
2272
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
2273
+ # allow the value "24:00:00" for scenarios like business closing time.
2274
+ # Corresponds to the JSON property `hours`
2275
+ # @return [Fixnum]
2276
+ attr_accessor :hours
2277
+
2278
+ # Minutes of hour of day. Must be from 0 to 59.
2279
+ # Corresponds to the JSON property `minutes`
2280
+ # @return [Fixnum]
2281
+ attr_accessor :minutes
2282
+
2283
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2284
+ # Corresponds to the JSON property `nanos`
2285
+ # @return [Fixnum]
2286
+ attr_accessor :nanos
2287
+
2288
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2289
+ # allow the value 60 if it allows leap-seconds.
2290
+ # Corresponds to the JSON property `seconds`
2291
+ # @return [Fixnum]
2292
+ attr_accessor :seconds
2293
+
2294
+ def initialize(**args)
2295
+ update!(**args)
2296
+ end
2297
+
2298
+ # Update properties of this object
2299
+ def update!(**args)
2300
+ @hours = args[:hours] if args.key?(:hours)
2301
+ @minutes = args[:minutes] if args.key?(:minutes)
2302
+ @nanos = args[:nanos] if args.key?(:nanos)
2303
+ @seconds = args[:seconds] if args.key?(:seconds)
2304
+ end
2305
+ end
2306
+
2307
+ # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/
2308
+ # time-zones).
2309
+ class TimeZone
2310
+ include Google::Apis::Core::Hashable
2311
+
2312
+ # IANA Time Zone Database time zone, e.g. "America/New_York".
2313
+ # Corresponds to the JSON property `id`
2314
+ # @return [String]
2315
+ attr_accessor :id
2316
+
2317
+ # Optional. IANA Time Zone Database version number, e.g. "2019a".
2318
+ # Corresponds to the JSON property `version`
2319
+ # @return [String]
2320
+ attr_accessor :version
2321
+
2322
+ def initialize(**args)
2323
+ update!(**args)
2324
+ end
2325
+
2326
+ # Update properties of this object
2327
+ def update!(**args)
2328
+ @id = args[:id] if args.key?(:id)
2329
+ @version = args[:version] if args.key?(:version)
2330
+ end
2331
+ end
2332
+
2333
+ # Request message for UnsubscribeAuctionPackage.
2334
+ class UnsubscribeAuctionPackageRequest
2335
+ include Google::Apis::Core::Hashable
2336
+
2337
+ def initialize(**args)
2338
+ update!(**args)
2339
+ end
2340
+
2341
+ # Update properties of this object
2342
+ def update!(**args)
2343
+ end
2344
+ end
2345
+
2346
+ # Request message for UnsubscribeAuctionPackage.
2347
+ class UnsubscribeClientsRequest
2348
+ include Google::Apis::Core::Hashable
2349
+
2350
+ # Optional. A list of client buyers to unsubscribe from the auction package,
2351
+ # with client buyer in the format `buyers/`accountId`/clients/`clientAccountId``.
2352
+ # Corresponds to the JSON property `clients`
2353
+ # @return [Array<String>]
2354
+ attr_accessor :clients
2355
+
2356
+ def initialize(**args)
2357
+ update!(**args)
2358
+ end
2359
+
2360
+ # Update properties of this object
2361
+ def update!(**args)
2362
+ @clients = args[:clients] if args.key?(:clients)
2363
+ end
2364
+ end
2365
+
2366
+ # Request message for updating the deal at the given revision number.
2367
+ class UpdateDealRequest
2368
+ include Google::Apis::Core::Hashable
2369
+
2370
+ # A deal represents a segment of inventory for displaying ads that contains the
2371
+ # terms and targeting information that is used for serving as well as the deal
2372
+ # stats and status. Note: A proposal may contain multiple deals.
2373
+ # Corresponds to the JSON property `deal`
2374
+ # @return [Google::Apis::AuthorizedbuyersmarketplaceV1alpha::Deal]
2375
+ attr_accessor :deal
2376
+
2377
+ # List of fields to be updated. If empty or unspecified, the service will update
2378
+ # all fields populated in the update request excluding the output only fields
2379
+ # and primitive fields with default value. Note that explicit field mask is
2380
+ # required in order to reset a primitive field back to its default value, for
2381
+ # example, false for boolean fields, 0 for integer fields. A special field mask
2382
+ # consisting of a single path "*" can be used to indicate full replacement(the
2383
+ # equivalent of PUT method), updatable fields unset or unspecified in the input
2384
+ # will be cleared or set to default value. Output only fields will be ignored
2385
+ # regardless of the value of updateMask.
2386
+ # Corresponds to the JSON property `updateMask`
2387
+ # @return [String]
2388
+ attr_accessor :update_mask
2389
+
2390
+ def initialize(**args)
2391
+ update!(**args)
2392
+ end
2393
+
2394
+ # Update properties of this object
2395
+ def update!(**args)
2396
+ @deal = args[:deal] if args.key?(:deal)
2397
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2398
+ end
2399
+ end
2400
+
2401
+ # Represents a list of targeted and excluded URLs (for example, google.com). For
2402
+ # Private Auction Deals, URLs are either included or excluded. For Programmatic
2403
+ # Guaranteed and Preferred Deals, this doesn't apply.
2404
+ class UriTargeting
2405
+ include Google::Apis::Core::Hashable
2406
+
2407
+ # A list of URLs to be excluded.
2408
+ # Corresponds to the JSON property `excludedUris`
2409
+ # @return [Array<String>]
2410
+ attr_accessor :excluded_uris
2411
+
2412
+ # A list of URLs to be included.
2413
+ # Corresponds to the JSON property `targetedUris`
2414
+ # @return [Array<String>]
2415
+ attr_accessor :targeted_uris
2416
+
2417
+ def initialize(**args)
2418
+ update!(**args)
2419
+ end
2420
+
2421
+ # Update properties of this object
2422
+ def update!(**args)
2423
+ @excluded_uris = args[:excluded_uris] if args.key?(:excluded_uris)
2424
+ @targeted_uris = args[:targeted_uris] if args.key?(:targeted_uris)
2425
+ end
2426
+ end
2427
+
2428
+ # Represents targeting information about video.
2429
+ class VideoTargeting
2430
+ include Google::Apis::Core::Hashable
2431
+
2432
+ # A list of video positions to be excluded. When this field is populated, the
2433
+ # targeted_position_types field must be empty.
2434
+ # Corresponds to the JSON property `excludedPositionTypes`
2435
+ # @return [Array<String>]
2436
+ attr_accessor :excluded_position_types
2437
+
2438
+ # A list of video positions to be included. When this field is populated, the
2439
+ # excluded_position_types field must be empty.
2440
+ # Corresponds to the JSON property `targetedPositionTypes`
2441
+ # @return [Array<String>]
2442
+ attr_accessor :targeted_position_types
2443
+
2444
+ def initialize(**args)
2445
+ update!(**args)
2446
+ end
2447
+
2448
+ # Update properties of this object
2449
+ def update!(**args)
2450
+ @excluded_position_types = args[:excluded_position_types] if args.key?(:excluded_position_types)
2451
+ @targeted_position_types = args[:targeted_position_types] if args.key?(:targeted_position_types)
2452
+ end
2453
+ end
2454
+ end
2455
+ end
2456
+ end