google-apis-curationpartners_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1689 @@
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 CurationpartnersV1
24
+
25
+ # Settings for controlling access to a curated package.
26
+ class AccessControlSettings
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. Immutable. The list of media planners that are explicitly granted
30
+ # access to the curated package. Eligible media planners can be found in the
31
+ # mediaPlanners.list method. Only a single media planner may be allowlisted at
32
+ # this time. Format: `mediaPlanners/`mediaPlannerAccountId``
33
+ # Corresponds to the JSON property `allowlistedMediaPlanners`
34
+ # @return [Array<String>]
35
+ attr_accessor :allowlisted_media_planners
36
+
37
+ def initialize(**args)
38
+ update!(**args)
39
+ end
40
+
41
+ # Update properties of this object
42
+ def update!(**args)
43
+ @allowlisted_media_planners = args[:allowlisted_media_planners] if args.key?(:allowlisted_media_planners)
44
+ end
45
+ end
46
+
47
+ # Request message for ActivateCuratedPackage.
48
+ class ActivateCuratedPackageRequest
49
+ include Google::Apis::Core::Hashable
50
+
51
+ def initialize(**args)
52
+ update!(**args)
53
+ end
54
+
55
+ # Update properties of this object
56
+ def update!(**args)
57
+ end
58
+ end
59
+
60
+ # Request message for activating a data segment
61
+ class ActivateDataSegmentRequest
62
+ include Google::Apis::Core::Hashable
63
+
64
+ def initialize(**args)
65
+ update!(**args)
66
+ end
67
+
68
+ # Update properties of this object
69
+ def update!(**args)
70
+ end
71
+ end
72
+
73
+ # Represents size of a single ad slot, or a creative.
74
+ class AdSize
75
+ include Google::Apis::Core::Hashable
76
+
77
+ # The height of the ad slot in pixels. This field will be present only when size
78
+ # type is `PIXEL`.
79
+ # Corresponds to the JSON property `height`
80
+ # @return [Fixnum]
81
+ attr_accessor :height
82
+
83
+ # The type of the ad slot size.
84
+ # Corresponds to the JSON property `type`
85
+ # @return [String]
86
+ attr_accessor :type
87
+
88
+ # The width of the ad slot in pixels. This field will be present only when size
89
+ # type is `PIXEL`.
90
+ # Corresponds to the JSON property `width`
91
+ # @return [Fixnum]
92
+ attr_accessor :width
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @height = args[:height] if args.key?(:height)
101
+ @type = args[:type] if args.key?(:type)
102
+ @width = args[:width] if args.key?(:width)
103
+ end
104
+ end
105
+
106
+ # Generic targeting used for targeting dimensions that contains a list of
107
+ # included and excluded numeric IDs. This cannot be filtered using list filter
108
+ # syntax.
109
+ class CriteriaTargeting
110
+ include Google::Apis::Core::Hashable
111
+
112
+ # A list of numeric IDs to be excluded.
113
+ # Corresponds to the JSON property `excludedCriteriaIds`
114
+ # @return [Array<Fixnum>]
115
+ attr_accessor :excluded_criteria_ids
116
+
117
+ # A list of numeric IDs to be included.
118
+ # Corresponds to the JSON property `targetedCriteriaIds`
119
+ # @return [Array<Fixnum>]
120
+ attr_accessor :targeted_criteria_ids
121
+
122
+ def initialize(**args)
123
+ update!(**args)
124
+ end
125
+
126
+ # Update properties of this object
127
+ def update!(**args)
128
+ @excluded_criteria_ids = args[:excluded_criteria_ids] if args.key?(:excluded_criteria_ids)
129
+ @targeted_criteria_ids = args[:targeted_criteria_ids] if args.key?(:targeted_criteria_ids)
130
+ end
131
+ end
132
+
133
+ # Represents a curated package of inventory created and managed by a Curator.
134
+ class CuratedPackage
135
+ include Google::Apis::Core::Hashable
136
+
137
+ # Settings for controlling access to a curated package.
138
+ # Corresponds to the JSON property `accessSettings`
139
+ # @return [Google::Apis::CurationpartnersV1::AccessControlSettings]
140
+ attr_accessor :access_settings
141
+
142
+ # Output only. The timestamp when the curated package was created. Can be used
143
+ # to filter the response of the curatedPackages.list method.
144
+ # Corresponds to the JSON property `createTime`
145
+ # @return [String]
146
+ attr_accessor :create_time
147
+
148
+ # Optional. Immutable. The visibility of the combined curation package fee and
149
+ # data segment fees (the total curation fee).
150
+ # Corresponds to the JSON property `curationFeeVisibility`
151
+ # @return [String]
152
+ attr_accessor :curation_fee_visibility
153
+
154
+ # Optional. A description of the curated package, provided by the curator.
155
+ # Corresponds to the JSON property `description`
156
+ # @return [String]
157
+ attr_accessor :description
158
+
159
+ # Required. The display name assigned to the curated package by the curator. Can
160
+ # be used to filter the response of the curatedPackages.list method.
161
+ # Corresponds to the JSON property `displayName`
162
+ # @return [String]
163
+ attr_accessor :display_name
164
+
165
+ # Represents an amount of money with its currency type.
166
+ # Corresponds to the JSON property `feeCpm`
167
+ # @return [Google::Apis::CurationpartnersV1::Money]
168
+ attr_accessor :fee_cpm
169
+
170
+ # Represents an amount of money with its currency type.
171
+ # Corresponds to the JSON property `floorPriceCpm`
172
+ # @return [Google::Apis::CurationpartnersV1::Money]
173
+ attr_accessor :floor_price_cpm
174
+
175
+ # Optional. The fee will be charged as a percentage of the impression cost,
176
+ # represented in millipercent. For example, 1% is represented as 1000.
177
+ # Corresponds to the JSON property `millipercentOfMediaFee`
178
+ # @return [Fixnum]
179
+ attr_accessor :millipercent_of_media_fee
180
+
181
+ # Identifier. The unique resource name for the curated package. Format: `
182
+ # curators/`accountId`/curatedPackages/`curatedPackageId``
183
+ # Corresponds to the JSON property `name`
184
+ # @return [String]
185
+ attr_accessor :name
186
+
187
+ # Output only. The state of the curated package. Can be used to filter the
188
+ # response of the curatedPackages.list method.
189
+ # Corresponds to the JSON property `state`
190
+ # @return [String]
191
+ attr_accessor :state
192
+
193
+ # Targeting criteria for curated and auction packages.
194
+ # Corresponds to the JSON property `targeting`
195
+ # @return [Google::Apis::CurationpartnersV1::PackageTargeting]
196
+ attr_accessor :targeting
197
+
198
+ # Output only. The timestamp when the curated package was last updated. Can be
199
+ # used to filter the response of the curatedPackages.list method.
200
+ # Corresponds to the JSON property `updateTime`
201
+ # @return [String]
202
+ attr_accessor :update_time
203
+
204
+ def initialize(**args)
205
+ update!(**args)
206
+ end
207
+
208
+ # Update properties of this object
209
+ def update!(**args)
210
+ @access_settings = args[:access_settings] if args.key?(:access_settings)
211
+ @create_time = args[:create_time] if args.key?(:create_time)
212
+ @curation_fee_visibility = args[:curation_fee_visibility] if args.key?(:curation_fee_visibility)
213
+ @description = args[:description] if args.key?(:description)
214
+ @display_name = args[:display_name] if args.key?(:display_name)
215
+ @fee_cpm = args[:fee_cpm] if args.key?(:fee_cpm)
216
+ @floor_price_cpm = args[:floor_price_cpm] if args.key?(:floor_price_cpm)
217
+ @millipercent_of_media_fee = args[:millipercent_of_media_fee] if args.key?(:millipercent_of_media_fee)
218
+ @name = args[:name] if args.key?(:name)
219
+ @state = args[:state] if args.key?(:state)
220
+ @targeting = args[:targeting] if args.key?(:targeting)
221
+ @update_time = args[:update_time] if args.key?(:update_time)
222
+ end
223
+ end
224
+
225
+ # Defines an identifier for a segment of inventory that can be targeted by
226
+ # curators or media planners in the deals or auction packages UI. Curation of
227
+ # inventory is done by curators on external platforms. -- Next ID: 9 --
228
+ class DataSegment
229
+ include Google::Apis::Core::Hashable
230
+
231
+ # Represents an amount of money with its currency type.
232
+ # Corresponds to the JSON property `cpmFee`
233
+ # @return [Google::Apis::CurationpartnersV1::Money]
234
+ attr_accessor :cpm_fee
235
+
236
+ # Output only. Time the data segment was created.
237
+ # Corresponds to the JSON property `createTime`
238
+ # @return [String]
239
+ attr_accessor :create_time
240
+
241
+ # Optional. The fee will be charged as a percentage of the impression cost,
242
+ # represented in millipercent. For example, 1% is represented as 1000.
243
+ # Corresponds to the JSON property `millipercentOfMediaFee`
244
+ # @return [Fixnum]
245
+ attr_accessor :millipercent_of_media_fee
246
+
247
+ # Immutable. Identifier. The unique identifier for the data segment. Account ID
248
+ # corresponds to the account ID that created the segment. Format: `curators/`
249
+ # curatorAccountId`/dataSegments/`curatorDataSegmentId``
250
+ # Corresponds to the JSON property `name`
251
+ # @return [String]
252
+ attr_accessor :name
253
+
254
+ # Output only. The state of the data segment.
255
+ # Corresponds to the JSON property `state`
256
+ # @return [String]
257
+ attr_accessor :state
258
+
259
+ # Output only. Time the data segment was last updated.
260
+ # Corresponds to the JSON property `updateTime`
261
+ # @return [String]
262
+ attr_accessor :update_time
263
+
264
+ # Optional. Immutable. The ID of the User List wrapped by this Data Segment.
265
+ # Curators with a linked Data Partner account can create a data segment that
266
+ # wraps a user list owned by the linked Data Partner account. User lists can be
267
+ # uploaded and managed using the [Data Manager API](https://developers.google.
268
+ # com/data-manager/api/data-partners/audiences). Linking a user list to a data
269
+ # segment lets you define a segment of inventory that is based on an audience
270
+ # you create.
271
+ # Corresponds to the JSON property `userListId`
272
+ # @return [String]
273
+ attr_accessor :user_list_id
274
+
275
+ def initialize(**args)
276
+ update!(**args)
277
+ end
278
+
279
+ # Update properties of this object
280
+ def update!(**args)
281
+ @cpm_fee = args[:cpm_fee] if args.key?(:cpm_fee)
282
+ @create_time = args[:create_time] if args.key?(:create_time)
283
+ @millipercent_of_media_fee = args[:millipercent_of_media_fee] if args.key?(:millipercent_of_media_fee)
284
+ @name = args[:name] if args.key?(:name)
285
+ @state = args[:state] if args.key?(:state)
286
+ @update_time = args[:update_time] if args.key?(:update_time)
287
+ @user_list_id = args[:user_list_id] if args.key?(:user_list_id)
288
+ end
289
+ end
290
+
291
+ # Represents a whole or partial calendar date, such as a birthday. The time of
292
+ # day and time zone are either specified elsewhere or are insignificant. The
293
+ # date is relative to the Gregorian Calendar. This can represent one of the
294
+ # following: * A full date, with non-zero year, month, and day values. * A month
295
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
296
+ # with a zero month and a zero day. * A year and month, with a zero day (for
297
+ # example, a credit card expiration date). Related types: * google.type.
298
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
299
+ class Date
300
+ include Google::Apis::Core::Hashable
301
+
302
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
303
+ # specify a year by itself or a year and month where the day isn't significant.
304
+ # Corresponds to the JSON property `day`
305
+ # @return [Fixnum]
306
+ attr_accessor :day
307
+
308
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
309
+ # and day.
310
+ # Corresponds to the JSON property `month`
311
+ # @return [Fixnum]
312
+ attr_accessor :month
313
+
314
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
315
+ # year.
316
+ # Corresponds to the JSON property `year`
317
+ # @return [Fixnum]
318
+ attr_accessor :year
319
+
320
+ def initialize(**args)
321
+ update!(**args)
322
+ end
323
+
324
+ # Update properties of this object
325
+ def update!(**args)
326
+ @day = args[:day] if args.key?(:day)
327
+ @month = args[:month] if args.key?(:month)
328
+ @year = args[:year] if args.key?(:year)
329
+ end
330
+ end
331
+
332
+ # A date range for a report.
333
+ class DateRange
334
+ include Google::Apis::Core::Hashable
335
+
336
+ # A date range between two fixed dates (inclusive of end date).
337
+ # Corresponds to the JSON property `fixed`
338
+ # @return [Google::Apis::CurationpartnersV1::FixedDateRange]
339
+ attr_accessor :fixed
340
+
341
+ # A relative date range.
342
+ # Corresponds to the JSON property `relative`
343
+ # @return [String]
344
+ attr_accessor :relative
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ @fixed = args[:fixed] if args.key?(:fixed)
353
+ @relative = args[:relative] if args.key?(:relative)
354
+ end
355
+ end
356
+
357
+ # Request message for DeactivateCuratedPackage.
358
+ class DeactivateCuratedPackageRequest
359
+ include Google::Apis::Core::Hashable
360
+
361
+ def initialize(**args)
362
+ update!(**args)
363
+ end
364
+
365
+ # Update properties of this object
366
+ def update!(**args)
367
+ end
368
+ end
369
+
370
+ # Request message for deactivating a data segment
371
+ class DeactivateDataSegmentRequest
372
+ include Google::Apis::Core::Hashable
373
+
374
+ def initialize(**args)
375
+ update!(**args)
376
+ end
377
+
378
+ # Update properties of this object
379
+ def update!(**args)
380
+ end
381
+ end
382
+
383
+ # A list of double values.
384
+ class DoubleList
385
+ include Google::Apis::Core::Hashable
386
+
387
+ # The values
388
+ # Corresponds to the JSON property `values`
389
+ # @return [Array<Float>]
390
+ attr_accessor :values
391
+
392
+ def initialize(**args)
393
+ update!(**args)
394
+ end
395
+
396
+ # Update properties of this object
397
+ def update!(**args)
398
+ @values = args[:values] if args.key?(:values)
399
+ end
400
+ end
401
+
402
+ # A generic empty message that you can re-use to avoid defining duplicated empty
403
+ # messages in your APIs. A typical example is to use it as the request or the
404
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
405
+ # protobuf.Empty) returns (google.protobuf.Empty); `
406
+ class Empty
407
+ include Google::Apis::Core::Hashable
408
+
409
+ def initialize(**args)
410
+ update!(**args)
411
+ end
412
+
413
+ # Update properties of this object
414
+ def update!(**args)
415
+ end
416
+ end
417
+
418
+ # The response message for the fetch report result rows endpoint.
419
+ class FetchReportResultRowsResponse
420
+ include Google::Apis::Core::Hashable
421
+
422
+ # The computed fixed date ranges this report includes. Only returned with the
423
+ # first page of results (when page_token is not included in the request).
424
+ # Corresponds to the JSON property `dateRanges`
425
+ # @return [Array<Google::Apis::CurationpartnersV1::FixedDateRange>]
426
+ attr_accessor :date_ranges
427
+
428
+ # A token that can be sent as `page_token` to retrieve the next page. If this
429
+ # field is omitted, there are no subsequent pages.
430
+ # Corresponds to the JSON property `nextPageToken`
431
+ # @return [String]
432
+ attr_accessor :next_page_token
433
+
434
+ # Up to `page_size` rows of report data.
435
+ # Corresponds to the JSON property `rows`
436
+ # @return [Array<Google::Apis::CurationpartnersV1::Row>]
437
+ attr_accessor :rows
438
+
439
+ # The time at which the report was scheduled to run. For non-scheduled reports,
440
+ # this is the time at which the report was requested to be run.
441
+ # Corresponds to the JSON property `runTime`
442
+ # @return [String]
443
+ attr_accessor :run_time
444
+
445
+ # The total number of rows available from this report. Useful for pagination.
446
+ # Only returned with the first page of results (when page_token is not included
447
+ # in the request).
448
+ # Corresponds to the JSON property `totalRowCount`
449
+ # @return [Fixnum]
450
+ attr_accessor :total_row_count
451
+
452
+ def initialize(**args)
453
+ update!(**args)
454
+ end
455
+
456
+ # Update properties of this object
457
+ def update!(**args)
458
+ @date_ranges = args[:date_ranges] if args.key?(:date_ranges)
459
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
460
+ @rows = args[:rows] if args.key?(:rows)
461
+ @run_time = args[:run_time] if args.key?(:run_time)
462
+ @total_row_count = args[:total_row_count] if args.key?(:total_row_count)
463
+ end
464
+ end
465
+
466
+ # A dimension or a metric in a report.
467
+ class Field
468
+ include Google::Apis::Core::Hashable
469
+
470
+ # The dimension this field represents.
471
+ # Corresponds to the JSON property `dimension`
472
+ # @return [String]
473
+ attr_accessor :dimension
474
+
475
+ # The metric this field represents.
476
+ # Corresponds to the JSON property `metric`
477
+ # @return [String]
478
+ attr_accessor :metric
479
+
480
+ def initialize(**args)
481
+ update!(**args)
482
+ end
483
+
484
+ # Update properties of this object
485
+ def update!(**args)
486
+ @dimension = args[:dimension] if args.key?(:dimension)
487
+ @metric = args[:metric] if args.key?(:metric)
488
+ end
489
+ end
490
+
491
+ # A filter on a specific field.
492
+ class FieldFilter
493
+ include Google::Apis::Core::Hashable
494
+
495
+ # A dimension or a metric in a report.
496
+ # Corresponds to the JSON property `field`
497
+ # @return [Google::Apis::CurationpartnersV1::Field]
498
+ attr_accessor :field
499
+
500
+ # Required. The operation of this filter.
501
+ # Corresponds to the JSON property `operation`
502
+ # @return [String]
503
+ attr_accessor :operation
504
+
505
+ # Required. Values to filter to.
506
+ # Corresponds to the JSON property `values`
507
+ # @return [Array<Google::Apis::CurationpartnersV1::ReportValue>]
508
+ attr_accessor :values
509
+
510
+ def initialize(**args)
511
+ update!(**args)
512
+ end
513
+
514
+ # Update properties of this object
515
+ def update!(**args)
516
+ @field = args[:field] if args.key?(:field)
517
+ @operation = args[:operation] if args.key?(:operation)
518
+ @values = args[:values] if args.key?(:values)
519
+ end
520
+ end
521
+
522
+ # A filter over one or more fields.
523
+ class Filter
524
+ include Google::Apis::Core::Hashable
525
+
526
+ # A list of filters.
527
+ # Corresponds to the JSON property `andFilter`
528
+ # @return [Google::Apis::CurationpartnersV1::FilterList]
529
+ attr_accessor :and_filter
530
+
531
+ # A filter on a specific field.
532
+ # Corresponds to the JSON property `fieldFilter`
533
+ # @return [Google::Apis::CurationpartnersV1::FieldFilter]
534
+ attr_accessor :field_filter
535
+
536
+ # A filter over one or more fields.
537
+ # Corresponds to the JSON property `notFilter`
538
+ # @return [Google::Apis::CurationpartnersV1::Filter]
539
+ attr_accessor :not_filter
540
+
541
+ # A list of filters.
542
+ # Corresponds to the JSON property `orFilter`
543
+ # @return [Google::Apis::CurationpartnersV1::FilterList]
544
+ attr_accessor :or_filter
545
+
546
+ def initialize(**args)
547
+ update!(**args)
548
+ end
549
+
550
+ # Update properties of this object
551
+ def update!(**args)
552
+ @and_filter = args[:and_filter] if args.key?(:and_filter)
553
+ @field_filter = args[:field_filter] if args.key?(:field_filter)
554
+ @not_filter = args[:not_filter] if args.key?(:not_filter)
555
+ @or_filter = args[:or_filter] if args.key?(:or_filter)
556
+ end
557
+ end
558
+
559
+ # A list of filters.
560
+ class FilterList
561
+ include Google::Apis::Core::Hashable
562
+
563
+ # Required. A list of filters.
564
+ # Corresponds to the JSON property `filters`
565
+ # @return [Array<Google::Apis::CurationpartnersV1::Filter>]
566
+ attr_accessor :filters
567
+
568
+ def initialize(**args)
569
+ update!(**args)
570
+ end
571
+
572
+ # Update properties of this object
573
+ def update!(**args)
574
+ @filters = args[:filters] if args.key?(:filters)
575
+ end
576
+ end
577
+
578
+ # A date range between two fixed dates (inclusive of end date).
579
+ class FixedDateRange
580
+ include Google::Apis::Core::Hashable
581
+
582
+ # Represents a whole or partial calendar date, such as a birthday. The time of
583
+ # day and time zone are either specified elsewhere or are insignificant. The
584
+ # date is relative to the Gregorian Calendar. This can represent one of the
585
+ # following: * A full date, with non-zero year, month, and day values. * A month
586
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
587
+ # with a zero month and a zero day. * A year and month, with a zero day (for
588
+ # example, a credit card expiration date). Related types: * google.type.
589
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
590
+ # Corresponds to the JSON property `endDate`
591
+ # @return [Google::Apis::CurationpartnersV1::Date]
592
+ attr_accessor :end_date
593
+
594
+ # Represents a whole or partial calendar date, such as a birthday. The time of
595
+ # day and time zone are either specified elsewhere or are insignificant. The
596
+ # date is relative to the Gregorian Calendar. This can represent one of the
597
+ # following: * A full date, with non-zero year, month, and day values. * A month
598
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
599
+ # with a zero month and a zero day. * A year and month, with a zero day (for
600
+ # example, a credit card expiration date). Related types: * google.type.
601
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
602
+ # Corresponds to the JSON property `startDate`
603
+ # @return [Google::Apis::CurationpartnersV1::Date]
604
+ attr_accessor :start_date
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @end_date = args[:end_date] if args.key?(:end_date)
613
+ @start_date = args[:start_date] if args.key?(:start_date)
614
+ end
615
+ end
616
+
617
+ # A list of integer values.
618
+ class IntList
619
+ include Google::Apis::Core::Hashable
620
+
621
+ # The values
622
+ # Corresponds to the JSON property `values`
623
+ # @return [Array<Fixnum>]
624
+ attr_accessor :values
625
+
626
+ def initialize(**args)
627
+ update!(**args)
628
+ end
629
+
630
+ # Update properties of this object
631
+ def update!(**args)
632
+ @values = args[:values] if args.key?(:values)
633
+ end
634
+ end
635
+
636
+ # Response message for ListCuratedPackages.
637
+ class ListCuratedPackagesResponse
638
+ include Google::Apis::Core::Hashable
639
+
640
+ # The list of curated packages.
641
+ # Corresponds to the JSON property `curatedPackages`
642
+ # @return [Array<Google::Apis::CurationpartnersV1::CuratedPackage>]
643
+ attr_accessor :curated_packages
644
+
645
+ # A token to retrieve the next page of results. Pass this value in the
646
+ # ListCuratedPackagesRequest.pageToken field in the subsequent call to `
647
+ # ListCuratedPackages` method to retrieve the next page of results. If empty,
648
+ # then there are no more results.
649
+ # Corresponds to the JSON property `nextPageToken`
650
+ # @return [String]
651
+ attr_accessor :next_page_token
652
+
653
+ def initialize(**args)
654
+ update!(**args)
655
+ end
656
+
657
+ # Update properties of this object
658
+ def update!(**args)
659
+ @curated_packages = args[:curated_packages] if args.key?(:curated_packages)
660
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
661
+ end
662
+ end
663
+
664
+ # Response message for listing data segments.
665
+ class ListDataSegmentsResponse
666
+ include Google::Apis::Core::Hashable
667
+
668
+ # The list of data segments.
669
+ # Corresponds to the JSON property `dataSegments`
670
+ # @return [Array<Google::Apis::CurationpartnersV1::DataSegment>]
671
+ attr_accessor :data_segments
672
+
673
+ # Continuation token for fetching the next page of results. Pass this value in
674
+ # the ListDataSegmentsRequest.pageToken field in the subsequent call to the `
675
+ # ListDataSegments` method to retrieve the next page of results.
676
+ # Corresponds to the JSON property `nextPageToken`
677
+ # @return [String]
678
+ attr_accessor :next_page_token
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ @data_segments = args[:data_segments] if args.key?(:data_segments)
687
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
688
+ end
689
+ end
690
+
691
+ # A response containing media planner account information.
692
+ class ListMediaPlannersResponse
693
+ include Google::Apis::Core::Hashable
694
+
695
+ # List of media planners.
696
+ # Corresponds to the JSON property `mediaPlanners`
697
+ # @return [Array<Google::Apis::CurationpartnersV1::MediaPlanner>]
698
+ attr_accessor :media_planners
699
+
700
+ # A token which can be passed to a subsequent call to the ListMediaPlanners
701
+ # method to retrieve the next page of results in ListMediaPlannersRequest.
702
+ # page_token.
703
+ # Corresponds to the JSON property `nextPageToken`
704
+ # @return [String]
705
+ attr_accessor :next_page_token
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @media_planners = args[:media_planners] if args.key?(:media_planners)
714
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
715
+ end
716
+ end
717
+
718
+ # Response object for `ListReportsResponse` containing matching `Report` objects.
719
+ class ListReportsResponse
720
+ include Google::Apis::Core::Hashable
721
+
722
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
723
+ # field is omitted, there are no subsequent pages.
724
+ # Corresponds to the JSON property `nextPageToken`
725
+ # @return [String]
726
+ attr_accessor :next_page_token
727
+
728
+ # The `Report` objects from the specified network.
729
+ # Corresponds to the JSON property `reports`
730
+ # @return [Array<Google::Apis::CurationpartnersV1::Report>]
731
+ attr_accessor :reports
732
+
733
+ # Total number of `Report` objects. If a filter was included in the request,
734
+ # this reflects the total number after the filtering is applied. `total_size`
735
+ # won't be calculated in the response unless it has been included in a response
736
+ # field mask. The response field mask can be provided to the method by using the
737
+ # URL parameter `$fields` or `fields`, or by using the HTTP/gRPC header `X-Goog-
738
+ # FieldMask`. For more information, see https://developers.google.com/ad-manager/
739
+ # api/beta/field-masks
740
+ # Corresponds to the JSON property `totalSize`
741
+ # @return [Fixnum]
742
+ attr_accessor :total_size
743
+
744
+ def initialize(**args)
745
+ update!(**args)
746
+ end
747
+
748
+ # Update properties of this object
749
+ def update!(**args)
750
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
751
+ @reports = args[:reports] if args.key?(:reports)
752
+ @total_size = args[:total_size] if args.key?(:total_size)
753
+ end
754
+ end
755
+
756
+ # Represents a media planner account.
757
+ class MediaPlanner
758
+ include Google::Apis::Core::Hashable
759
+
760
+ # Output only. Account ID of the media planner.
761
+ # Corresponds to the JSON property `accountId`
762
+ # @return [String]
763
+ attr_accessor :account_id
764
+
765
+ # Output only. The ancestor names of the media planner. Format: `mediaPlanners/`
766
+ # mediaPlannerAccountId``. Can be used to filter the response of the
767
+ # mediaPlanners.list method.
768
+ # Corresponds to the JSON property `ancestorNames`
769
+ # @return [Array<String>]
770
+ attr_accessor :ancestor_names
771
+
772
+ # Output only. The display name of the media planner. Can be used to filter the
773
+ # response of the mediaPlanners.list method.
774
+ # Corresponds to the JSON property `displayName`
775
+ # @return [String]
776
+ attr_accessor :display_name
777
+
778
+ # Identifier. The unique resource name of the media planner. Format: `
779
+ # mediaPlanners/`mediaPlannerAccountId``. Can be used to filter the response of
780
+ # the mediaPlanners.list method.
781
+ # Corresponds to the JSON property `name`
782
+ # @return [String]
783
+ attr_accessor :name
784
+
785
+ def initialize(**args)
786
+ update!(**args)
787
+ end
788
+
789
+ # Update properties of this object
790
+ def update!(**args)
791
+ @account_id = args[:account_id] if args.key?(:account_id)
792
+ @ancestor_names = args[:ancestor_names] if args.key?(:ancestor_names)
793
+ @display_name = args[:display_name] if args.key?(:display_name)
794
+ @name = args[:name] if args.key?(:name)
795
+ end
796
+ end
797
+
798
+ # Contains all metric values requested for a single date range and set of column
799
+ # dimension values (returned in the columns field of the response). The order of
800
+ # the metrics in each field corresponds to the order of the metrics specified in
801
+ # the request.
802
+ class MetricValueGroup
803
+ include Google::Apis::Core::Hashable
804
+
805
+ # Data for the PRIMARY MetricValueType.
806
+ # Corresponds to the JSON property `primaryValues`
807
+ # @return [Array<Google::Apis::CurationpartnersV1::ReportValue>]
808
+ attr_accessor :primary_values
809
+
810
+ def initialize(**args)
811
+ update!(**args)
812
+ end
813
+
814
+ # Update properties of this object
815
+ def update!(**args)
816
+ @primary_values = args[:primary_values] if args.key?(:primary_values)
817
+ end
818
+ end
819
+
820
+ # Represents an amount of money with its currency type.
821
+ class Money
822
+ include Google::Apis::Core::Hashable
823
+
824
+ # The three-letter currency code defined in ISO 4217.
825
+ # Corresponds to the JSON property `currencyCode`
826
+ # @return [String]
827
+ attr_accessor :currency_code
828
+
829
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
830
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
831
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
832
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
833
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
834
+ # Corresponds to the JSON property `nanos`
835
+ # @return [Fixnum]
836
+ attr_accessor :nanos
837
+
838
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
839
+ # 1 unit is one US dollar.
840
+ # Corresponds to the JSON property `units`
841
+ # @return [Fixnum]
842
+ attr_accessor :units
843
+
844
+ def initialize(**args)
845
+ update!(**args)
846
+ end
847
+
848
+ # Update properties of this object
849
+ def update!(**args)
850
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
851
+ @nanos = args[:nanos] if args.key?(:nanos)
852
+ @units = args[:units] if args.key?(:units)
853
+ end
854
+ end
855
+
856
+ # This resource represents a long-running operation that is the result of a
857
+ # network API call.
858
+ class Operation
859
+ include Google::Apis::Core::Hashable
860
+
861
+ # If the value is `false`, it means the operation is still in progress. If `true`
862
+ # , the operation is completed, and either `error` or `response` is available.
863
+ # Corresponds to the JSON property `done`
864
+ # @return [Boolean]
865
+ attr_accessor :done
866
+ alias_method :done?, :done
867
+
868
+ # The `Status` type defines a logical error model that is suitable for different
869
+ # programming environments, including REST APIs and RPC APIs. It is used by [
870
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
871
+ # data: error code, error message, and error details. You can find out more
872
+ # about this error model and how to work with it in the [API Design Guide](https:
873
+ # //cloud.google.com/apis/design/errors).
874
+ # Corresponds to the JSON property `error`
875
+ # @return [Google::Apis::CurationpartnersV1::Status]
876
+ attr_accessor :error
877
+
878
+ # Service-specific metadata associated with the operation. It typically contains
879
+ # progress information and common metadata such as create time. Some services
880
+ # might not provide such metadata. Any method that returns a long-running
881
+ # operation should document the metadata type, if any.
882
+ # Corresponds to the JSON property `metadata`
883
+ # @return [Hash<String,Object>]
884
+ attr_accessor :metadata
885
+
886
+ # The server-assigned name, which is only unique within the same service that
887
+ # originally returns it. If you use the default HTTP mapping, the `name` should
888
+ # be a resource name ending with `operations/`unique_id``.
889
+ # Corresponds to the JSON property `name`
890
+ # @return [String]
891
+ attr_accessor :name
892
+
893
+ # The normal, successful response of the operation. If the original method
894
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
895
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
896
+ # response should be the resource. For other methods, the response should have
897
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
898
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
899
+ # `TakeSnapshotResponse`.
900
+ # Corresponds to the JSON property `response`
901
+ # @return [Hash<String,Object>]
902
+ attr_accessor :response
903
+
904
+ def initialize(**args)
905
+ update!(**args)
906
+ end
907
+
908
+ # Update properties of this object
909
+ def update!(**args)
910
+ @done = args[:done] if args.key?(:done)
911
+ @error = args[:error] if args.key?(:error)
912
+ @metadata = args[:metadata] if args.key?(:metadata)
913
+ @name = args[:name] if args.key?(:name)
914
+ @response = args[:response] if args.key?(:response)
915
+ end
916
+ end
917
+
918
+ # Represents targeting about where the ads can appear, for example, certain
919
+ # sites or mobile applications. Different placement targeting types will be
920
+ # logically OR'ed.
921
+ class PackagePlacementTargeting
922
+ include Google::Apis::Core::Hashable
923
+
924
+ # Optional. The list of targeted mobile app categories.
925
+ # Corresponds to the JSON property `includedMobileAppCategoryTargeting`
926
+ # @return [Array<Fixnum>]
927
+ attr_accessor :included_mobile_app_category_targeting
928
+
929
+ # Generic targeting with string values.
930
+ # Corresponds to the JSON property `mobileAppTargeting`
931
+ # @return [Google::Apis::CurationpartnersV1::StringTargetingDimension]
932
+ attr_accessor :mobile_app_targeting
933
+
934
+ # Generic targeting with string values.
935
+ # Corresponds to the JSON property `uriTargeting`
936
+ # @return [Google::Apis::CurationpartnersV1::StringTargetingDimension]
937
+ attr_accessor :uri_targeting
938
+
939
+ def initialize(**args)
940
+ update!(**args)
941
+ end
942
+
943
+ # Update properties of this object
944
+ def update!(**args)
945
+ @included_mobile_app_category_targeting = args[:included_mobile_app_category_targeting] if args.key?(:included_mobile_app_category_targeting)
946
+ @mobile_app_targeting = args[:mobile_app_targeting] if args.key?(:mobile_app_targeting)
947
+ @uri_targeting = args[:uri_targeting] if args.key?(:uri_targeting)
948
+ end
949
+ end
950
+
951
+ # Represents targeting about publisher provided signals. Different publisher
952
+ # provided signals types will be logically OR'ed.
953
+ class PackagePublisherProvidedSignalsTargeting
954
+ include Google::Apis::Core::Hashable
955
+
956
+ # Defines targeting criteria for handling the IAB audience and content Taxonomy
957
+ # ID space.
958
+ # Corresponds to the JSON property `audienceTargeting`
959
+ # @return [Google::Apis::CurationpartnersV1::TaxonomyTargeting]
960
+ attr_accessor :audience_targeting
961
+
962
+ # Defines targeting criteria for handling the IAB audience and content Taxonomy
963
+ # ID space.
964
+ # Corresponds to the JSON property `contentTargeting`
965
+ # @return [Google::Apis::CurationpartnersV1::TaxonomyTargeting]
966
+ attr_accessor :content_targeting
967
+
968
+ # Generic targeting with string values.
969
+ # Corresponds to the JSON property `videoAndAudioSignalsTargeting`
970
+ # @return [Google::Apis::CurationpartnersV1::StringTargetingDimension]
971
+ attr_accessor :video_and_audio_signals_targeting
972
+
973
+ def initialize(**args)
974
+ update!(**args)
975
+ end
976
+
977
+ # Update properties of this object
978
+ def update!(**args)
979
+ @audience_targeting = args[:audience_targeting] if args.key?(:audience_targeting)
980
+ @content_targeting = args[:content_targeting] if args.key?(:content_targeting)
981
+ @video_and_audio_signals_targeting = args[:video_and_audio_signals_targeting] if args.key?(:video_and_audio_signals_targeting)
982
+ end
983
+ end
984
+
985
+ # Targeting criteria for curated and auction packages.
986
+ class PackageTargeting
987
+ include Google::Apis::Core::Hashable
988
+
989
+ # Generic targeting used for targeting dimensions that contains a list of
990
+ # included and excluded numeric IDs. This cannot be filtered using list filter
991
+ # syntax.
992
+ # Corresponds to the JSON property `geoTargeting`
993
+ # @return [Google::Apis::CurationpartnersV1::CriteriaTargeting]
994
+ attr_accessor :geo_targeting
995
+
996
+ # Optional. The targeted accelerated mobile page type. If unset, inventory will
997
+ # be targeted regardless of AMP status.
998
+ # Corresponds to the JSON property `includedAcceleratedMobilePageType`
999
+ # @return [String]
1000
+ attr_accessor :included_accelerated_mobile_page_type
1001
+
1002
+ # Optional. The list of ad sizes to target. If unset, inventory will be targeted
1003
+ # regardless of ad size. Curated packages supports `PIXEL` and `INTERSTITIAL` ad
1004
+ # sizes.
1005
+ # Corresponds to the JSON property `includedAdSizes`
1006
+ # @return [Array<Google::Apis::CurationpartnersV1::AdSize>]
1007
+ attr_accessor :included_ad_sizes
1008
+
1009
+ # Optional. The included list of targeted authorized seller statuses. If empty,
1010
+ # inventory will be targeted regardless of seller status.
1011
+ # Corresponds to the JSON property `includedAuthorizedSellerStatuses`
1012
+ # @return [Array<String>]
1013
+ attr_accessor :included_authorized_seller_statuses
1014
+
1015
+ # Optional. The creative format to target. If unset, all creative markup types
1016
+ # are targeted.
1017
+ # Corresponds to the JSON property `includedCreativeFormat`
1018
+ # @return [String]
1019
+ attr_accessor :included_creative_format
1020
+
1021
+ # Optional. The active data segments to be targeted. If unset, inventory will be
1022
+ # targeted regardless of data segments. Format: `curators/`account_id`/
1023
+ # dataSegments/`data_segment_id``
1024
+ # Corresponds to the JSON property `includedDataSegments`
1025
+ # @return [Array<String>]
1026
+ attr_accessor :included_data_segments
1027
+
1028
+ # Optional. The list of included device types to target. If empty, all device
1029
+ # types are targeted.
1030
+ # Corresponds to the JSON property `includedDeviceTypes`
1031
+ # @return [Array<String>]
1032
+ attr_accessor :included_device_types
1033
+
1034
+ # Optional. The environment to target. If unspecified, all environments are
1035
+ # targeted.
1036
+ # Corresponds to the JSON property `includedEnvironment`
1037
+ # @return [String]
1038
+ attr_accessor :included_environment
1039
+
1040
+ # Optional. The targeted native inventory types. If empty, inventory will be
1041
+ # targeted regardless of native inventory type.
1042
+ # Corresponds to the JSON property `includedNativeInventoryTypes`
1043
+ # @return [Array<String>]
1044
+ attr_accessor :included_native_inventory_types
1045
+
1046
+ # Optional. The list of targeted open measurement types. If empty, inventory
1047
+ # will be targeted regardless of Open Measurement support.
1048
+ # Corresponds to the JSON property `includedOpenMeasurementTypes`
1049
+ # @return [Array<String>]
1050
+ attr_accessor :included_open_measurement_types
1051
+
1052
+ # Optional. The list of targeted restricted categories. If empty, inventory will
1053
+ # be targeted regardless of restricted categories.
1054
+ # Corresponds to the JSON property `includedRestrictedCategories`
1055
+ # @return [Array<String>]
1056
+ attr_accessor :included_restricted_categories
1057
+
1058
+ # Optional. The targeted rewarded type. If unset, inventory will be targeted
1059
+ # regardless of rewarded type.
1060
+ # Corresponds to the JSON property `includedRewardedType`
1061
+ # @return [String]
1062
+ attr_accessor :included_rewarded_type
1063
+
1064
+ # Generic targeting with string values.
1065
+ # Corresponds to the JSON property `languageTargeting`
1066
+ # @return [Google::Apis::CurationpartnersV1::StringTargetingDimension]
1067
+ attr_accessor :language_targeting
1068
+
1069
+ # Optional. The targeted minimum predicted click through rate, ranging in values
1070
+ # [10, 10000] (0.01% - 10%). A value of 50 means that the configuration will
1071
+ # only match adslots for which we predict at least 0.05% click through rate. An
1072
+ # unset value indicates inventory will be targeted regardless of predicted click
1073
+ # through rate.
1074
+ # Corresponds to the JSON property `minimumPredictedClickThroughRatePercentageMillis`
1075
+ # @return [Fixnum]
1076
+ attr_accessor :minimum_predicted_click_through_rate_percentage_millis
1077
+
1078
+ # Optional. The targeted minimum predicted viewability percentage. This value
1079
+ # must be a multiple of 10 between 10 and 90 (inclusive). For example, 10 is
1080
+ # valid, but 0, 15, and 100 are not. A value of 10 means that the configuration
1081
+ # will only match adslots for which we predict at least 10% viewability. An
1082
+ # unset value indicates inventory will be targeted regardless of predicted
1083
+ # viewability.
1084
+ # Corresponds to the JSON property `minimumPredictedViewabilityPercentage`
1085
+ # @return [Fixnum]
1086
+ attr_accessor :minimum_predicted_viewability_percentage
1087
+
1088
+ # Represents targeting about where the ads can appear, for example, certain
1089
+ # sites or mobile applications. Different placement targeting types will be
1090
+ # logically OR'ed.
1091
+ # Corresponds to the JSON property `placementTargeting`
1092
+ # @return [Google::Apis::CurationpartnersV1::PackagePlacementTargeting]
1093
+ attr_accessor :placement_targeting
1094
+
1095
+ # Represents targeting about publisher provided signals. Different publisher
1096
+ # provided signals types will be logically OR'ed.
1097
+ # Corresponds to the JSON property `publisherProvidedSignalsTargeting`
1098
+ # @return [Google::Apis::CurationpartnersV1::PackagePublisherProvidedSignalsTargeting]
1099
+ attr_accessor :publisher_provided_signals_targeting
1100
+
1101
+ # Generic targeting with string values.
1102
+ # Corresponds to the JSON property `publisherTargeting`
1103
+ # @return [Google::Apis::CurationpartnersV1::StringTargetingDimension]
1104
+ attr_accessor :publisher_targeting
1105
+
1106
+ # Generic targeting used for targeting dimensions that contains a list of
1107
+ # included and excluded numeric IDs. This cannot be filtered using list filter
1108
+ # syntax.
1109
+ # Corresponds to the JSON property `verticalTargeting`
1110
+ # @return [Google::Apis::CurationpartnersV1::CriteriaTargeting]
1111
+ attr_accessor :vertical_targeting
1112
+
1113
+ # Video specific targeting criteria.
1114
+ # Corresponds to the JSON property `videoTargeting`
1115
+ # @return [Google::Apis::CurationpartnersV1::PackageVideoTargeting]
1116
+ attr_accessor :video_targeting
1117
+
1118
+ def initialize(**args)
1119
+ update!(**args)
1120
+ end
1121
+
1122
+ # Update properties of this object
1123
+ def update!(**args)
1124
+ @geo_targeting = args[:geo_targeting] if args.key?(:geo_targeting)
1125
+ @included_accelerated_mobile_page_type = args[:included_accelerated_mobile_page_type] if args.key?(:included_accelerated_mobile_page_type)
1126
+ @included_ad_sizes = args[:included_ad_sizes] if args.key?(:included_ad_sizes)
1127
+ @included_authorized_seller_statuses = args[:included_authorized_seller_statuses] if args.key?(:included_authorized_seller_statuses)
1128
+ @included_creative_format = args[:included_creative_format] if args.key?(:included_creative_format)
1129
+ @included_data_segments = args[:included_data_segments] if args.key?(:included_data_segments)
1130
+ @included_device_types = args[:included_device_types] if args.key?(:included_device_types)
1131
+ @included_environment = args[:included_environment] if args.key?(:included_environment)
1132
+ @included_native_inventory_types = args[:included_native_inventory_types] if args.key?(:included_native_inventory_types)
1133
+ @included_open_measurement_types = args[:included_open_measurement_types] if args.key?(:included_open_measurement_types)
1134
+ @included_restricted_categories = args[:included_restricted_categories] if args.key?(:included_restricted_categories)
1135
+ @included_rewarded_type = args[:included_rewarded_type] if args.key?(:included_rewarded_type)
1136
+ @language_targeting = args[:language_targeting] if args.key?(:language_targeting)
1137
+ @minimum_predicted_click_through_rate_percentage_millis = args[:minimum_predicted_click_through_rate_percentage_millis] if args.key?(:minimum_predicted_click_through_rate_percentage_millis)
1138
+ @minimum_predicted_viewability_percentage = args[:minimum_predicted_viewability_percentage] if args.key?(:minimum_predicted_viewability_percentage)
1139
+ @placement_targeting = args[:placement_targeting] if args.key?(:placement_targeting)
1140
+ @publisher_provided_signals_targeting = args[:publisher_provided_signals_targeting] if args.key?(:publisher_provided_signals_targeting)
1141
+ @publisher_targeting = args[:publisher_targeting] if args.key?(:publisher_targeting)
1142
+ @vertical_targeting = args[:vertical_targeting] if args.key?(:vertical_targeting)
1143
+ @video_targeting = args[:video_targeting] if args.key?(:video_targeting)
1144
+ end
1145
+ end
1146
+
1147
+ # Video specific targeting criteria.
1148
+ class PackageVideoTargeting
1149
+ include Google::Apis::Core::Hashable
1150
+
1151
+ # Optional. The targeted video delivery method. If unset, inventory will be
1152
+ # targeted regardless of video delivery method.
1153
+ # Corresponds to the JSON property `includedContentDeliveryMethod`
1154
+ # @return [String]
1155
+ attr_accessor :included_content_delivery_method
1156
+
1157
+ # Optional. The targeted maximum video ad duration. If unset, inventory will be
1158
+ # targeted regardless of maximum video ad duration.
1159
+ # Corresponds to the JSON property `includedMaximumAdDurationTargeting`
1160
+ # @return [String]
1161
+ attr_accessor :included_maximum_ad_duration_targeting
1162
+
1163
+ # Optional. The list of targeted video mime types using the IANA published MIME
1164
+ # type strings (https://www.iana.org/assignments/media-types/media-types.xhtml).
1165
+ # If empty, inventory will be targeted regardless of video mime type.
1166
+ # Corresponds to the JSON property `includedMimeTypes`
1167
+ # @return [Array<String>]
1168
+ attr_accessor :included_mime_types
1169
+
1170
+ # Optional. The list of targeted video playback methods. If empty, inventory
1171
+ # will be targeted regardless of video playback method.
1172
+ # Corresponds to the JSON property `includedPlaybackMethods`
1173
+ # @return [Array<String>]
1174
+ attr_accessor :included_playback_methods
1175
+
1176
+ # Represents the size of the video player that can be targeted. Both width and
1177
+ # height are required to be set to non-zero values.
1178
+ # Corresponds to the JSON property `includedPlayerSizeTargeting`
1179
+ # @return [Google::Apis::CurationpartnersV1::VideoPlayerSizeTargeting]
1180
+ attr_accessor :included_player_size_targeting
1181
+
1182
+ # Optional. The targeted video ad position types. If empty, inventory will be
1183
+ # targeted regardless of video ad position type.
1184
+ # Corresponds to the JSON property `includedPositionTypes`
1185
+ # @return [Array<String>]
1186
+ attr_accessor :included_position_types
1187
+
1188
+ # Optional. The targeted minimum predicted completion rate percentage. This
1189
+ # value must be a multiple of 10 between 10 and 90 (inclusive). For example, 10
1190
+ # is valid, but 0, 15, and 100 are not. A value of 10 means that the
1191
+ # configuration will only match adslots for which we predict at least 10%
1192
+ # completion rate. An unset value indicates inventory will be targeted
1193
+ # regardless of predicted completion rate.
1194
+ # Corresponds to the JSON property `minimumPredictedCompletionRatePercentage`
1195
+ # @return [Fixnum]
1196
+ attr_accessor :minimum_predicted_completion_rate_percentage
1197
+
1198
+ # Defines targeting criteria based on the video placement type, often
1199
+ # corresponding to the IAB OpenRTB 'plcmt' field.
1200
+ # Corresponds to the JSON property `plcmtTargeting`
1201
+ # @return [Google::Apis::CurationpartnersV1::VideoPlcmtTargeting]
1202
+ attr_accessor :plcmt_targeting
1203
+
1204
+ def initialize(**args)
1205
+ update!(**args)
1206
+ end
1207
+
1208
+ # Update properties of this object
1209
+ def update!(**args)
1210
+ @included_content_delivery_method = args[:included_content_delivery_method] if args.key?(:included_content_delivery_method)
1211
+ @included_maximum_ad_duration_targeting = args[:included_maximum_ad_duration_targeting] if args.key?(:included_maximum_ad_duration_targeting)
1212
+ @included_mime_types = args[:included_mime_types] if args.key?(:included_mime_types)
1213
+ @included_playback_methods = args[:included_playback_methods] if args.key?(:included_playback_methods)
1214
+ @included_player_size_targeting = args[:included_player_size_targeting] if args.key?(:included_player_size_targeting)
1215
+ @included_position_types = args[:included_position_types] if args.key?(:included_position_types)
1216
+ @minimum_predicted_completion_rate_percentage = args[:minimum_predicted_completion_rate_percentage] if args.key?(:minimum_predicted_completion_rate_percentage)
1217
+ @plcmt_targeting = args[:plcmt_targeting] if args.key?(:plcmt_targeting)
1218
+ end
1219
+ end
1220
+
1221
+ # The `Report` resource.
1222
+ class Report
1223
+ include Google::Apis::Core::Hashable
1224
+
1225
+ # Output only. The instant this report was created.
1226
+ # Corresponds to the JSON property `createTime`
1227
+ # @return [String]
1228
+ attr_accessor :create_time
1229
+
1230
+ # Optional. Display name for the report.
1231
+ # Corresponds to the JSON property `displayName`
1232
+ # @return [String]
1233
+ attr_accessor :display_name
1234
+
1235
+ # Output only. The locale of this report. Locale is set from the user's locale
1236
+ # at the time of the request. Locale can't be modified.
1237
+ # Corresponds to the JSON property `locale`
1238
+ # @return [String]
1239
+ attr_accessor :locale
1240
+
1241
+ # Identifier. The resource name of the report. Report resource name have the
1242
+ # form: `curators/`account_id`/reports/`report_id``
1243
+ # Corresponds to the JSON property `name`
1244
+ # @return [String]
1245
+ attr_accessor :name
1246
+
1247
+ # The definition of how a report should be run.
1248
+ # Corresponds to the JSON property `reportDefinition`
1249
+ # @return [Google::Apis::CurationpartnersV1::ReportDefinition]
1250
+ attr_accessor :report_definition
1251
+
1252
+ # Output only. Report ID.
1253
+ # Corresponds to the JSON property `reportId`
1254
+ # @return [Fixnum]
1255
+ attr_accessor :report_id
1256
+
1257
+ # Output only. The instant this report was last modified.
1258
+ # Corresponds to the JSON property `updateTime`
1259
+ # @return [String]
1260
+ attr_accessor :update_time
1261
+
1262
+ def initialize(**args)
1263
+ update!(**args)
1264
+ end
1265
+
1266
+ # Update properties of this object
1267
+ def update!(**args)
1268
+ @create_time = args[:create_time] if args.key?(:create_time)
1269
+ @display_name = args[:display_name] if args.key?(:display_name)
1270
+ @locale = args[:locale] if args.key?(:locale)
1271
+ @name = args[:name] if args.key?(:name)
1272
+ @report_definition = args[:report_definition] if args.key?(:report_definition)
1273
+ @report_id = args[:report_id] if args.key?(:report_id)
1274
+ @update_time = args[:update_time] if args.key?(:update_time)
1275
+ end
1276
+ end
1277
+
1278
+ # The definition of how a report should be run.
1279
+ class ReportDefinition
1280
+ include Google::Apis::Core::Hashable
1281
+
1282
+ # Optional. The ISO 4217 currency code for this report. Defaults to account
1283
+ # currency code if not specified.
1284
+ # Corresponds to the JSON property `currencyCode`
1285
+ # @return [String]
1286
+ attr_accessor :currency_code
1287
+
1288
+ # A date range for a report.
1289
+ # Corresponds to the JSON property `dateRange`
1290
+ # @return [Google::Apis::CurationpartnersV1::DateRange]
1291
+ attr_accessor :date_range
1292
+
1293
+ # Required. The list of dimensions to report on. If empty, the report will have
1294
+ # no dimensions, and any metrics will be totals.
1295
+ # Corresponds to the JSON property `dimensions`
1296
+ # @return [Array<String>]
1297
+ attr_accessor :dimensions
1298
+
1299
+ # Optional. The filters for this report.
1300
+ # Corresponds to the JSON property `filters`
1301
+ # @return [Array<Google::Apis::CurationpartnersV1::Filter>]
1302
+ attr_accessor :filters
1303
+
1304
+ # Required. The list of metrics to report on. If empty, the report will have no
1305
+ # metrics.
1306
+ # Corresponds to the JSON property `metrics`
1307
+ # @return [Array<String>]
1308
+ attr_accessor :metrics
1309
+
1310
+ # Optional. Default sorts to apply to this report.
1311
+ # Corresponds to the JSON property `sorts`
1312
+ # @return [Array<Google::Apis::CurationpartnersV1::Sort>]
1313
+ attr_accessor :sorts
1314
+
1315
+ # Optional. If time_zone_source is PROVIDED, this is the time zone to use for
1316
+ # this report. Leave empty for any other time zone source. Time zone in IANA
1317
+ # format. For example, "America/New_York".
1318
+ # Corresponds to the JSON property `timeZone`
1319
+ # @return [String]
1320
+ attr_accessor :time_zone
1321
+
1322
+ # Optional. Where to get the time zone for this report. Defaults to using the
1323
+ # Pacific time zone (PT). If source is PROVIDED, the time_zone field in the
1324
+ # report definition must also set a time zone.
1325
+ # Corresponds to the JSON property `timeZoneSource`
1326
+ # @return [String]
1327
+ attr_accessor :time_zone_source
1328
+
1329
+ def initialize(**args)
1330
+ update!(**args)
1331
+ end
1332
+
1333
+ # Update properties of this object
1334
+ def update!(**args)
1335
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1336
+ @date_range = args[:date_range] if args.key?(:date_range)
1337
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1338
+ @filters = args[:filters] if args.key?(:filters)
1339
+ @metrics = args[:metrics] if args.key?(:metrics)
1340
+ @sorts = args[:sorts] if args.key?(:sorts)
1341
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1342
+ @time_zone_source = args[:time_zone_source] if args.key?(:time_zone_source)
1343
+ end
1344
+ end
1345
+
1346
+ # Represents a single value in a report.
1347
+ class ReportValue
1348
+ include Google::Apis::Core::Hashable
1349
+
1350
+ # For boolean values.
1351
+ # Corresponds to the JSON property `boolValue`
1352
+ # @return [Boolean]
1353
+ attr_accessor :bool_value
1354
+ alias_method :bool_value?, :bool_value
1355
+
1356
+ # For bytes values.
1357
+ # Corresponds to the JSON property `bytesValue`
1358
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1359
+ # @return [String]
1360
+ attr_accessor :bytes_value
1361
+
1362
+ # A list of double values.
1363
+ # Corresponds to the JSON property `doubleListValue`
1364
+ # @return [Google::Apis::CurationpartnersV1::DoubleList]
1365
+ attr_accessor :double_list_value
1366
+
1367
+ # For double values.
1368
+ # Corresponds to the JSON property `doubleValue`
1369
+ # @return [Float]
1370
+ attr_accessor :double_value
1371
+
1372
+ # A list of integer values.
1373
+ # Corresponds to the JSON property `intListValue`
1374
+ # @return [Google::Apis::CurationpartnersV1::IntList]
1375
+ attr_accessor :int_list_value
1376
+
1377
+ # For integer values.
1378
+ # Corresponds to the JSON property `intValue`
1379
+ # @return [Fixnum]
1380
+ attr_accessor :int_value
1381
+
1382
+ # A list of string values.
1383
+ # Corresponds to the JSON property `stringListValue`
1384
+ # @return [Google::Apis::CurationpartnersV1::StringList]
1385
+ attr_accessor :string_list_value
1386
+
1387
+ # For string values.
1388
+ # Corresponds to the JSON property `stringValue`
1389
+ # @return [String]
1390
+ attr_accessor :string_value
1391
+
1392
+ def initialize(**args)
1393
+ update!(**args)
1394
+ end
1395
+
1396
+ # Update properties of this object
1397
+ def update!(**args)
1398
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
1399
+ @bytes_value = args[:bytes_value] if args.key?(:bytes_value)
1400
+ @double_list_value = args[:double_list_value] if args.key?(:double_list_value)
1401
+ @double_value = args[:double_value] if args.key?(:double_value)
1402
+ @int_list_value = args[:int_list_value] if args.key?(:int_list_value)
1403
+ @int_value = args[:int_value] if args.key?(:int_value)
1404
+ @string_list_value = args[:string_list_value] if args.key?(:string_list_value)
1405
+ @string_value = args[:string_value] if args.key?(:string_value)
1406
+ end
1407
+ end
1408
+
1409
+ # A row of report data.
1410
+ class Row
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # The order of the dimension values is the same as the order of the dimensions
1414
+ # specified in the request.
1415
+ # Corresponds to the JSON property `dimensionValues`
1416
+ # @return [Array<Google::Apis::CurationpartnersV1::ReportValue>]
1417
+ attr_accessor :dimension_values
1418
+
1419
+ # The length of the metric_value_groups field will be equal to the length of
1420
+ # the date_ranges field in the fetch response. The metric_value_groups field is
1421
+ # ordered such that each index corresponds to the date_range at the same index.
1422
+ # For example, given date_ranges [x, y], metric_value_groups will have a length
1423
+ # of two. The first entry in metric_value_groups represents the metrics for date
1424
+ # x and the second entry in metric_value_groups represents the metrics for date
1425
+ # y.
1426
+ # Corresponds to the JSON property `metricValueGroups`
1427
+ # @return [Array<Google::Apis::CurationpartnersV1::MetricValueGroup>]
1428
+ attr_accessor :metric_value_groups
1429
+
1430
+ def initialize(**args)
1431
+ update!(**args)
1432
+ end
1433
+
1434
+ # Update properties of this object
1435
+ def update!(**args)
1436
+ @dimension_values = args[:dimension_values] if args.key?(:dimension_values)
1437
+ @metric_value_groups = args[:metric_value_groups] if args.key?(:metric_value_groups)
1438
+ end
1439
+ end
1440
+
1441
+ # `RunReport` operation metadata.
1442
+ class RunReportMetadata
1443
+ include Google::Apis::Core::Hashable
1444
+
1445
+ # An estimate of how close this report is to being completed. Will always be 100
1446
+ # for failed and completed reports.
1447
+ # Corresponds to the JSON property `percentComplete`
1448
+ # @return [Fixnum]
1449
+ attr_accessor :percent_complete
1450
+
1451
+ # The result's parent report.
1452
+ # Corresponds to the JSON property `report`
1453
+ # @return [String]
1454
+ attr_accessor :report
1455
+
1456
+ def initialize(**args)
1457
+ update!(**args)
1458
+ end
1459
+
1460
+ # Update properties of this object
1461
+ def update!(**args)
1462
+ @percent_complete = args[:percent_complete] if args.key?(:percent_complete)
1463
+ @report = args[:report] if args.key?(:report)
1464
+ end
1465
+ end
1466
+
1467
+ # Request message for a running a report.
1468
+ class RunReportRequest
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ def initialize(**args)
1472
+ update!(**args)
1473
+ end
1474
+
1475
+ # Update properties of this object
1476
+ def update!(**args)
1477
+ end
1478
+ end
1479
+
1480
+ # Response message for a completed `RunReport` operation.
1481
+ class RunReportResponse
1482
+ include Google::Apis::Core::Hashable
1483
+
1484
+ # The unique name of the generated result. Use with `FetchReportResultRows` to
1485
+ # retrieve data.
1486
+ # Corresponds to the JSON property `reportResult`
1487
+ # @return [String]
1488
+ attr_accessor :report_result
1489
+
1490
+ def initialize(**args)
1491
+ update!(**args)
1492
+ end
1493
+
1494
+ # Update properties of this object
1495
+ def update!(**args)
1496
+ @report_result = args[:report_result] if args.key?(:report_result)
1497
+ end
1498
+ end
1499
+
1500
+ # Represents a sorting in a report.
1501
+ class Sort
1502
+ include Google::Apis::Core::Hashable
1503
+
1504
+ # Optional. The sort order. If true the sort will be descending.
1505
+ # Corresponds to the JSON property `descending`
1506
+ # @return [Boolean]
1507
+ attr_accessor :descending
1508
+ alias_method :descending?, :descending
1509
+
1510
+ # A dimension or a metric in a report.
1511
+ # Corresponds to the JSON property `field`
1512
+ # @return [Google::Apis::CurationpartnersV1::Field]
1513
+ attr_accessor :field
1514
+
1515
+ def initialize(**args)
1516
+ update!(**args)
1517
+ end
1518
+
1519
+ # Update properties of this object
1520
+ def update!(**args)
1521
+ @descending = args[:descending] if args.key?(:descending)
1522
+ @field = args[:field] if args.key?(:field)
1523
+ end
1524
+ end
1525
+
1526
+ # The `Status` type defines a logical error model that is suitable for different
1527
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1528
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1529
+ # data: error code, error message, and error details. You can find out more
1530
+ # about this error model and how to work with it in the [API Design Guide](https:
1531
+ # //cloud.google.com/apis/design/errors).
1532
+ class Status
1533
+ include Google::Apis::Core::Hashable
1534
+
1535
+ # The status code, which should be an enum value of google.rpc.Code.
1536
+ # Corresponds to the JSON property `code`
1537
+ # @return [Fixnum]
1538
+ attr_accessor :code
1539
+
1540
+ # A list of messages that carry the error details. There is a common set of
1541
+ # message types for APIs to use.
1542
+ # Corresponds to the JSON property `details`
1543
+ # @return [Array<Hash<String,Object>>]
1544
+ attr_accessor :details
1545
+
1546
+ # A developer-facing error message, which should be in English. Any user-facing
1547
+ # error message should be localized and sent in the google.rpc.Status.details
1548
+ # field, or localized by the client.
1549
+ # Corresponds to the JSON property `message`
1550
+ # @return [String]
1551
+ attr_accessor :message
1552
+
1553
+ def initialize(**args)
1554
+ update!(**args)
1555
+ end
1556
+
1557
+ # Update properties of this object
1558
+ def update!(**args)
1559
+ @code = args[:code] if args.key?(:code)
1560
+ @details = args[:details] if args.key?(:details)
1561
+ @message = args[:message] if args.key?(:message)
1562
+ end
1563
+ end
1564
+
1565
+ # A list of string values.
1566
+ class StringList
1567
+ include Google::Apis::Core::Hashable
1568
+
1569
+ # The values
1570
+ # Corresponds to the JSON property `values`
1571
+ # @return [Array<String>]
1572
+ attr_accessor :values
1573
+
1574
+ def initialize(**args)
1575
+ update!(**args)
1576
+ end
1577
+
1578
+ # Update properties of this object
1579
+ def update!(**args)
1580
+ @values = args[:values] if args.key?(:values)
1581
+ end
1582
+ end
1583
+
1584
+ # Generic targeting with string values.
1585
+ class StringTargetingDimension
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # Required. How the items in this list should be targeted.
1589
+ # Corresponds to the JSON property `selectionType`
1590
+ # @return [String]
1591
+ attr_accessor :selection_type
1592
+
1593
+ # Required. The values specified.
1594
+ # Corresponds to the JSON property `values`
1595
+ # @return [Array<String>]
1596
+ attr_accessor :values
1597
+
1598
+ def initialize(**args)
1599
+ update!(**args)
1600
+ end
1601
+
1602
+ # Update properties of this object
1603
+ def update!(**args)
1604
+ @selection_type = args[:selection_type] if args.key?(:selection_type)
1605
+ @values = args[:values] if args.key?(:values)
1606
+ end
1607
+ end
1608
+
1609
+ # Defines targeting criteria for handling the IAB audience and content Taxonomy
1610
+ # ID space.
1611
+ class TaxonomyTargeting
1612
+ include Google::Apis::Core::Hashable
1613
+
1614
+ # Optional. The list of excluded content taxonomy IDs.
1615
+ # Corresponds to the JSON property `excludedTaxonomyIds`
1616
+ # @return [Array<String>]
1617
+ attr_accessor :excluded_taxonomy_ids
1618
+
1619
+ # Optional. The list of targeted content taxonomy IDs.
1620
+ # Corresponds to the JSON property `targetedTaxonomyIds`
1621
+ # @return [Array<String>]
1622
+ attr_accessor :targeted_taxonomy_ids
1623
+
1624
+ def initialize(**args)
1625
+ update!(**args)
1626
+ end
1627
+
1628
+ # Update properties of this object
1629
+ def update!(**args)
1630
+ @excluded_taxonomy_ids = args[:excluded_taxonomy_ids] if args.key?(:excluded_taxonomy_ids)
1631
+ @targeted_taxonomy_ids = args[:targeted_taxonomy_ids] if args.key?(:targeted_taxonomy_ids)
1632
+ end
1633
+ end
1634
+
1635
+ # Represents the size of the video player that can be targeted. Both width and
1636
+ # height are required to be set to non-zero values.
1637
+ class VideoPlayerSizeTargeting
1638
+ include Google::Apis::Core::Hashable
1639
+
1640
+ # Required. The minimum height of the video player in pixels.
1641
+ # Corresponds to the JSON property `minimumHeight`
1642
+ # @return [Fixnum]
1643
+ attr_accessor :minimum_height
1644
+
1645
+ # Required. The minimum width of the video player in pixels.
1646
+ # Corresponds to the JSON property `minimumWidth`
1647
+ # @return [Fixnum]
1648
+ attr_accessor :minimum_width
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ @minimum_height = args[:minimum_height] if args.key?(:minimum_height)
1657
+ @minimum_width = args[:minimum_width] if args.key?(:minimum_width)
1658
+ end
1659
+ end
1660
+
1661
+ # Defines targeting criteria based on the video placement type, often
1662
+ # corresponding to the IAB OpenRTB 'plcmt' field.
1663
+ class VideoPlcmtTargeting
1664
+ include Google::Apis::Core::Hashable
1665
+
1666
+ # Required. The selection type for the list of video plcmts.
1667
+ # Corresponds to the JSON property `selectionType`
1668
+ # @return [String]
1669
+ attr_accessor :selection_type
1670
+
1671
+ # Required. The list of targeted video plcmts types. If empty, inventory will be
1672
+ # targeted regardless of video plcmt type.
1673
+ # Corresponds to the JSON property `videoPlcmtTypes`
1674
+ # @return [Array<String>]
1675
+ attr_accessor :video_plcmt_types
1676
+
1677
+ def initialize(**args)
1678
+ update!(**args)
1679
+ end
1680
+
1681
+ # Update properties of this object
1682
+ def update!(**args)
1683
+ @selection_type = args[:selection_type] if args.key?(:selection_type)
1684
+ @video_plcmt_types = args[:video_plcmt_types] if args.key?(:video_plcmt_types)
1685
+ end
1686
+ end
1687
+ end
1688
+ end
1689
+ end