google-apis-authorizedbuyersmarketplace_v1 0.1.0

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