google-apis-doubleclickbidmanager_v2 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,742 @@
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 DoubleclickbidmanagerV2
24
+
25
+ # A channel grouping defines a set of rules that can be used to categorize
26
+ # events in a path report.
27
+ class ChannelGrouping
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # The name to apply to an event that does not match any of the rules in the
31
+ # channel grouping.
32
+ # Corresponds to the JSON property `fallbackName`
33
+ # @return [String]
34
+ attr_accessor :fallback_name
35
+
36
+ # Channel Grouping name.
37
+ # Corresponds to the JSON property `name`
38
+ # @return [String]
39
+ attr_accessor :name
40
+
41
+ # Rules within Channel Grouping. There is a limit of 100 rules that can be set
42
+ # per channel grouping.
43
+ # Corresponds to the JSON property `rules`
44
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::Rule>]
45
+ attr_accessor :rules
46
+
47
+ def initialize(**args)
48
+ update!(**args)
49
+ end
50
+
51
+ # Update properties of this object
52
+ def update!(**args)
53
+ @fallback_name = args[:fallback_name] if args.key?(:fallback_name)
54
+ @name = args[:name] if args.key?(:name)
55
+ @rules = args[:rules] if args.key?(:rules)
56
+ end
57
+ end
58
+
59
+ # Report data range.
60
+ class DataRange
61
+ include Google::Apis::Core::Hashable
62
+
63
+ # Represents a whole or partial calendar date, such as a birthday. The time of
64
+ # day and time zone are either specified elsewhere or are insignificant. The
65
+ # date is relative to the Gregorian Calendar. This can represent one of the
66
+ # following: * A full date, with non-zero year, month, and day values. * A month
67
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
68
+ # with a zero month and a zero day. * A year and month, with a zero day (for
69
+ # example, a credit card expiration date). Related types: * google.type.
70
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
71
+ # Corresponds to the JSON property `customEndDate`
72
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
73
+ attr_accessor :custom_end_date
74
+
75
+ # Represents a whole or partial calendar date, such as a birthday. The time of
76
+ # day and time zone are either specified elsewhere or are insignificant. The
77
+ # date is relative to the Gregorian Calendar. This can represent one of the
78
+ # following: * A full date, with non-zero year, month, and day values. * A month
79
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
80
+ # with a zero month and a zero day. * A year and month, with a zero day (for
81
+ # example, a credit card expiration date). Related types: * google.type.
82
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
83
+ # Corresponds to the JSON property `customStartDate`
84
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
85
+ attr_accessor :custom_start_date
86
+
87
+ # Report data range used to generate the report.
88
+ # Corresponds to the JSON property `range`
89
+ # @return [String]
90
+ attr_accessor :range
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ @custom_end_date = args[:custom_end_date] if args.key?(:custom_end_date)
99
+ @custom_start_date = args[:custom_start_date] if args.key?(:custom_start_date)
100
+ @range = args[:range] if args.key?(:range)
101
+ end
102
+ end
103
+
104
+ # Represents a whole or partial calendar date, such as a birthday. The time of
105
+ # day and time zone are either specified elsewhere or are insignificant. The
106
+ # date is relative to the Gregorian Calendar. This can represent one of the
107
+ # following: * A full date, with non-zero year, month, and day values. * A month
108
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
109
+ # with a zero month and a zero day. * A year and month, with a zero day (for
110
+ # example, a credit card expiration date). Related types: * google.type.
111
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
112
+ class Date
113
+ include Google::Apis::Core::Hashable
114
+
115
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
116
+ # specify a year by itself or a year and month where the day isn't significant.
117
+ # Corresponds to the JSON property `day`
118
+ # @return [Fixnum]
119
+ attr_accessor :day
120
+
121
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
122
+ # and day.
123
+ # Corresponds to the JSON property `month`
124
+ # @return [Fixnum]
125
+ attr_accessor :month
126
+
127
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
128
+ # year.
129
+ # Corresponds to the JSON property `year`
130
+ # @return [Fixnum]
131
+ attr_accessor :year
132
+
133
+ def initialize(**args)
134
+ update!(**args)
135
+ end
136
+
137
+ # Update properties of this object
138
+ def update!(**args)
139
+ @day = args[:day] if args.key?(:day)
140
+ @month = args[:month] if args.key?(:month)
141
+ @year = args[:year] if args.key?(:year)
142
+ end
143
+ end
144
+
145
+ # DisjunctiveMatchStatement that OR's all contained filters.
146
+ class DisjunctiveMatchStatement
147
+ include Google::Apis::Core::Hashable
148
+
149
+ # Filters. There is a limit of 100 filters that can be set per disjunctive match
150
+ # statement.
151
+ # Corresponds to the JSON property `eventFilters`
152
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::EventFilter>]
153
+ attr_accessor :event_filters
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @event_filters = args[:event_filters] if args.key?(:event_filters)
162
+ end
163
+ end
164
+
165
+ # Defines the type of filter to be applied to the path, a DV360 event dimension
166
+ # filter.
167
+ class EventFilter
168
+ include Google::Apis::Core::Hashable
169
+
170
+ # Dimension Filter on path events.
171
+ # Corresponds to the JSON property `dimensionFilter`
172
+ # @return [Google::Apis::DoubleclickbidmanagerV2::PathQueryOptionsFilter]
173
+ attr_accessor :dimension_filter
174
+
175
+ def initialize(**args)
176
+ update!(**args)
177
+ end
178
+
179
+ # Update properties of this object
180
+ def update!(**args)
181
+ @dimension_filter = args[:dimension_filter] if args.key?(:dimension_filter)
182
+ end
183
+ end
184
+
185
+ # Filter used to match traffic data in your report.
186
+ class FilterPair
187
+ include Google::Apis::Core::Hashable
188
+
189
+ # Filter type.
190
+ # Corresponds to the JSON property `type`
191
+ # @return [String]
192
+ attr_accessor :type
193
+
194
+ # Filter value.
195
+ # Corresponds to the JSON property `value`
196
+ # @return [String]
197
+ attr_accessor :value
198
+
199
+ def initialize(**args)
200
+ update!(**args)
201
+ end
202
+
203
+ # Update properties of this object
204
+ def update!(**args)
205
+ @type = args[:type] if args.key?(:type)
206
+ @value = args[:value] if args.key?(:value)
207
+ end
208
+ end
209
+
210
+ # Represents a list of queries.
211
+ class ListQueriesResponse
212
+ include Google::Apis::Core::Hashable
213
+
214
+ # A token, which can be sent as `page_token` to retrieve the next page of
215
+ # queries. If this field is omitted, there are no subsequent pages.
216
+ # Corresponds to the JSON property `nextPageToken`
217
+ # @return [String]
218
+ attr_accessor :next_page_token
219
+
220
+ # Retrieved queries.
221
+ # Corresponds to the JSON property `queries`
222
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::Query>]
223
+ attr_accessor :queries
224
+
225
+ def initialize(**args)
226
+ update!(**args)
227
+ end
228
+
229
+ # Update properties of this object
230
+ def update!(**args)
231
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
232
+ @queries = args[:queries] if args.key?(:queries)
233
+ end
234
+ end
235
+
236
+ # Represents a list of reports.
237
+ class ListReportsResponse
238
+ include Google::Apis::Core::Hashable
239
+
240
+ # A token, which can be sent as `page_token` to retrieve the next page of
241
+ # reports. If this field is omitted, there are no subsequent pages.
242
+ # Corresponds to the JSON property `nextPageToken`
243
+ # @return [String]
244
+ attr_accessor :next_page_token
245
+
246
+ # Retrieved reports.
247
+ # Corresponds to the JSON property `reports`
248
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::Report>]
249
+ attr_accessor :reports
250
+
251
+ def initialize(**args)
252
+ update!(**args)
253
+ end
254
+
255
+ # Update properties of this object
256
+ def update!(**args)
257
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
258
+ @reports = args[:reports] if args.key?(:reports)
259
+ end
260
+ end
261
+
262
+ # Additional query options.
263
+ class Options
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # Set to true and filter your report by `FILTER_INSERTION_ORDER` or `
267
+ # FILTER_LINE_ITEM` to include data for audience lists specifically targeted by
268
+ # those items.
269
+ # Corresponds to the JSON property `includeOnlyTargetedUserLists`
270
+ # @return [Boolean]
271
+ attr_accessor :include_only_targeted_user_lists
272
+ alias_method :include_only_targeted_user_lists?, :include_only_targeted_user_lists
273
+
274
+ # Path Query Options for Report Options.
275
+ # Corresponds to the JSON property `pathQueryOptions`
276
+ # @return [Google::Apis::DoubleclickbidmanagerV2::PathQueryOptions]
277
+ attr_accessor :path_query_options
278
+
279
+ def initialize(**args)
280
+ update!(**args)
281
+ end
282
+
283
+ # Update properties of this object
284
+ def update!(**args)
285
+ @include_only_targeted_user_lists = args[:include_only_targeted_user_lists] if args.key?(:include_only_targeted_user_lists)
286
+ @path_query_options = args[:path_query_options] if args.key?(:path_query_options)
287
+ end
288
+ end
289
+
290
+ # Parameters of a query or report.
291
+ class Parameters
292
+ include Google::Apis::Core::Hashable
293
+
294
+ # Filters used to match traffic data in your report.
295
+ # Corresponds to the JSON property `filters`
296
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::FilterPair>]
297
+ attr_accessor :filters
298
+
299
+ # Data is grouped by the filters listed in this field.
300
+ # Corresponds to the JSON property `groupBys`
301
+ # @return [Array<String>]
302
+ attr_accessor :group_bys
303
+
304
+ # Metrics to include as columns in your report.
305
+ # Corresponds to the JSON property `metrics`
306
+ # @return [Array<String>]
307
+ attr_accessor :metrics
308
+
309
+ # Additional query options.
310
+ # Corresponds to the JSON property `options`
311
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Options]
312
+ attr_accessor :options
313
+
314
+ # Report type.
315
+ # Corresponds to the JSON property `type`
316
+ # @return [String]
317
+ attr_accessor :type
318
+
319
+ def initialize(**args)
320
+ update!(**args)
321
+ end
322
+
323
+ # Update properties of this object
324
+ def update!(**args)
325
+ @filters = args[:filters] if args.key?(:filters)
326
+ @group_bys = args[:group_bys] if args.key?(:group_bys)
327
+ @metrics = args[:metrics] if args.key?(:metrics)
328
+ @options = args[:options] if args.key?(:options)
329
+ @type = args[:type] if args.key?(:type)
330
+ end
331
+ end
332
+
333
+ # Path filters specify which paths to include in a report. A path is the result
334
+ # of combining DV360 events based on User ID to create a workflow of users'
335
+ # actions. When a path filter is set, the resulting report will only include
336
+ # paths that match the specified event at the specified position. All other
337
+ # paths will be excluded.
338
+ class PathFilter
339
+ include Google::Apis::Core::Hashable
340
+
341
+ # Filter on an event to be applied to some part of the path.
342
+ # Corresponds to the JSON property `eventFilters`
343
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::EventFilter>]
344
+ attr_accessor :event_filters
345
+
346
+ # Indicates the position of the path the filter should match to (first, last, or
347
+ # any event in path).
348
+ # Corresponds to the JSON property `pathMatchPosition`
349
+ # @return [String]
350
+ attr_accessor :path_match_position
351
+
352
+ def initialize(**args)
353
+ update!(**args)
354
+ end
355
+
356
+ # Update properties of this object
357
+ def update!(**args)
358
+ @event_filters = args[:event_filters] if args.key?(:event_filters)
359
+ @path_match_position = args[:path_match_position] if args.key?(:path_match_position)
360
+ end
361
+ end
362
+
363
+ # Path Query Options for Report Options.
364
+ class PathQueryOptions
365
+ include Google::Apis::Core::Hashable
366
+
367
+ # A channel grouping defines a set of rules that can be used to categorize
368
+ # events in a path report.
369
+ # Corresponds to the JSON property `channelGrouping`
370
+ # @return [Google::Apis::DoubleclickbidmanagerV2::ChannelGrouping]
371
+ attr_accessor :channel_grouping
372
+
373
+ # Path Filters. There is a limit of 100 path filters that can be set per report.
374
+ # Corresponds to the JSON property `pathFilters`
375
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::PathFilter>]
376
+ attr_accessor :path_filters
377
+
378
+ def initialize(**args)
379
+ update!(**args)
380
+ end
381
+
382
+ # Update properties of this object
383
+ def update!(**args)
384
+ @channel_grouping = args[:channel_grouping] if args.key?(:channel_grouping)
385
+ @path_filters = args[:path_filters] if args.key?(:path_filters)
386
+ end
387
+ end
388
+
389
+ # Dimension Filter on path events.
390
+ class PathQueryOptionsFilter
391
+ include Google::Apis::Core::Hashable
392
+
393
+ # Dimension the filter is applied to.
394
+ # Corresponds to the JSON property `filter`
395
+ # @return [String]
396
+ attr_accessor :filter
397
+
398
+ # Indicates how the filter should be matched to the value.
399
+ # Corresponds to the JSON property `match`
400
+ # @return [String]
401
+ attr_accessor :match
402
+
403
+ # Value to filter on.
404
+ # Corresponds to the JSON property `values`
405
+ # @return [Array<String>]
406
+ attr_accessor :values
407
+
408
+ def initialize(**args)
409
+ update!(**args)
410
+ end
411
+
412
+ # Update properties of this object
413
+ def update!(**args)
414
+ @filter = args[:filter] if args.key?(:filter)
415
+ @match = args[:match] if args.key?(:match)
416
+ @values = args[:values] if args.key?(:values)
417
+ end
418
+ end
419
+
420
+ # Represents a query.
421
+ class Query
422
+ include Google::Apis::Core::Hashable
423
+
424
+ # Query metadata.
425
+ # Corresponds to the JSON property `metadata`
426
+ # @return [Google::Apis::DoubleclickbidmanagerV2::QueryMetadata]
427
+ attr_accessor :metadata
428
+
429
+ # Parameters of a query or report.
430
+ # Corresponds to the JSON property `params`
431
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Parameters]
432
+ attr_accessor :params
433
+
434
+ # Output only. Query ID.
435
+ # Corresponds to the JSON property `queryId`
436
+ # @return [Fixnum]
437
+ attr_accessor :query_id
438
+
439
+ # Information on how frequently and when to run a query.
440
+ # Corresponds to the JSON property `schedule`
441
+ # @return [Google::Apis::DoubleclickbidmanagerV2::QuerySchedule]
442
+ attr_accessor :schedule
443
+
444
+ def initialize(**args)
445
+ update!(**args)
446
+ end
447
+
448
+ # Update properties of this object
449
+ def update!(**args)
450
+ @metadata = args[:metadata] if args.key?(:metadata)
451
+ @params = args[:params] if args.key?(:params)
452
+ @query_id = args[:query_id] if args.key?(:query_id)
453
+ @schedule = args[:schedule] if args.key?(:schedule)
454
+ end
455
+ end
456
+
457
+ # Query metadata.
458
+ class QueryMetadata
459
+ include Google::Apis::Core::Hashable
460
+
461
+ # Report data range.
462
+ # Corresponds to the JSON property `dataRange`
463
+ # @return [Google::Apis::DoubleclickbidmanagerV2::DataRange]
464
+ attr_accessor :data_range
465
+
466
+ # Format of the generated report.
467
+ # Corresponds to the JSON property `format`
468
+ # @return [String]
469
+ attr_accessor :format
470
+
471
+ # Whether to send an email notification when a report is ready. Defaults to
472
+ # false.
473
+ # Corresponds to the JSON property `sendNotification`
474
+ # @return [Boolean]
475
+ attr_accessor :send_notification
476
+ alias_method :send_notification?, :send_notification
477
+
478
+ # List of email addresses which are sent email notifications when the report is
479
+ # finished. Separate from `sendNotification`.
480
+ # Corresponds to the JSON property `shareEmailAddress`
481
+ # @return [Array<String>]
482
+ attr_accessor :share_email_address
483
+
484
+ # Query title. It is used to name the reports generated from this query.
485
+ # Corresponds to the JSON property `title`
486
+ # @return [String]
487
+ attr_accessor :title
488
+
489
+ def initialize(**args)
490
+ update!(**args)
491
+ end
492
+
493
+ # Update properties of this object
494
+ def update!(**args)
495
+ @data_range = args[:data_range] if args.key?(:data_range)
496
+ @format = args[:format] if args.key?(:format)
497
+ @send_notification = args[:send_notification] if args.key?(:send_notification)
498
+ @share_email_address = args[:share_email_address] if args.key?(:share_email_address)
499
+ @title = args[:title] if args.key?(:title)
500
+ end
501
+ end
502
+
503
+ # Information on how frequently and when to run a query.
504
+ class QuerySchedule
505
+ include Google::Apis::Core::Hashable
506
+
507
+ # Represents a whole or partial calendar date, such as a birthday. The time of
508
+ # day and time zone are either specified elsewhere or are insignificant. The
509
+ # date is relative to the Gregorian Calendar. This can represent one of the
510
+ # following: * A full date, with non-zero year, month, and day values. * A month
511
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
512
+ # with a zero month and a zero day. * A year and month, with a zero day (for
513
+ # example, a credit card expiration date). Related types: * google.type.
514
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
515
+ # Corresponds to the JSON property `endDate`
516
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
517
+ attr_accessor :end_date
518
+
519
+ # How often the query is run.
520
+ # Corresponds to the JSON property `frequency`
521
+ # @return [String]
522
+ attr_accessor :frequency
523
+
524
+ # Canonical timezone code for report generation time. Defaults to `America/
525
+ # New_York`.
526
+ # Corresponds to the JSON property `nextRunTimezoneCode`
527
+ # @return [String]
528
+ attr_accessor :next_run_timezone_code
529
+
530
+ # Represents a whole or partial calendar date, such as a birthday. The time of
531
+ # day and time zone are either specified elsewhere or are insignificant. The
532
+ # date is relative to the Gregorian Calendar. This can represent one of the
533
+ # following: * A full date, with non-zero year, month, and day values. * A month
534
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
535
+ # with a zero month and a zero day. * A year and month, with a zero day (for
536
+ # example, a credit card expiration date). Related types: * google.type.
537
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
538
+ # Corresponds to the JSON property `startDate`
539
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
540
+ attr_accessor :start_date
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ @end_date = args[:end_date] if args.key?(:end_date)
549
+ @frequency = args[:frequency] if args.key?(:frequency)
550
+ @next_run_timezone_code = args[:next_run_timezone_code] if args.key?(:next_run_timezone_code)
551
+ @start_date = args[:start_date] if args.key?(:start_date)
552
+ end
553
+ end
554
+
555
+ # Represents a report.
556
+ class Report
557
+ include Google::Apis::Core::Hashable
558
+
559
+ # Key used to identify a report.
560
+ # Corresponds to the JSON property `key`
561
+ # @return [Google::Apis::DoubleclickbidmanagerV2::ReportKey]
562
+ attr_accessor :key
563
+
564
+ # Report metadata.
565
+ # Corresponds to the JSON property `metadata`
566
+ # @return [Google::Apis::DoubleclickbidmanagerV2::ReportMetadata]
567
+ attr_accessor :metadata
568
+
569
+ # Parameters of a query or report.
570
+ # Corresponds to the JSON property `params`
571
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Parameters]
572
+ attr_accessor :params
573
+
574
+ def initialize(**args)
575
+ update!(**args)
576
+ end
577
+
578
+ # Update properties of this object
579
+ def update!(**args)
580
+ @key = args[:key] if args.key?(:key)
581
+ @metadata = args[:metadata] if args.key?(:metadata)
582
+ @params = args[:params] if args.key?(:params)
583
+ end
584
+ end
585
+
586
+ # Key used to identify a report.
587
+ class ReportKey
588
+ include Google::Apis::Core::Hashable
589
+
590
+ # Output only. Query ID.
591
+ # Corresponds to the JSON property `queryId`
592
+ # @return [Fixnum]
593
+ attr_accessor :query_id
594
+
595
+ # Output only. Report ID.
596
+ # Corresponds to the JSON property `reportId`
597
+ # @return [Fixnum]
598
+ attr_accessor :report_id
599
+
600
+ def initialize(**args)
601
+ update!(**args)
602
+ end
603
+
604
+ # Update properties of this object
605
+ def update!(**args)
606
+ @query_id = args[:query_id] if args.key?(:query_id)
607
+ @report_id = args[:report_id] if args.key?(:report_id)
608
+ end
609
+ end
610
+
611
+ # Report metadata.
612
+ class ReportMetadata
613
+ include Google::Apis::Core::Hashable
614
+
615
+ # Output only. The path to the location in Google Cloud Storage where the report
616
+ # is stored.
617
+ # Corresponds to the JSON property `googleCloudStoragePath`
618
+ # @return [String]
619
+ attr_accessor :google_cloud_storage_path
620
+
621
+ # Represents a whole or partial calendar date, such as a birthday. The time of
622
+ # day and time zone are either specified elsewhere or are insignificant. The
623
+ # date is relative to the Gregorian Calendar. This can represent one of the
624
+ # following: * A full date, with non-zero year, month, and day values. * A month
625
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
626
+ # with a zero month and a zero day. * A year and month, with a zero day (for
627
+ # example, a credit card expiration date). Related types: * google.type.
628
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
629
+ # Corresponds to the JSON property `reportDataEndDate`
630
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
631
+ attr_accessor :report_data_end_date
632
+
633
+ # Represents a whole or partial calendar date, such as a birthday. The time of
634
+ # day and time zone are either specified elsewhere or are insignificant. The
635
+ # date is relative to the Gregorian Calendar. This can represent one of the
636
+ # following: * A full date, with non-zero year, month, and day values. * A month
637
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
638
+ # with a zero month and a zero day. * A year and month, with a zero day (for
639
+ # example, a credit card expiration date). Related types: * google.type.
640
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
641
+ # Corresponds to the JSON property `reportDataStartDate`
642
+ # @return [Google::Apis::DoubleclickbidmanagerV2::Date]
643
+ attr_accessor :report_data_start_date
644
+
645
+ # Report status.
646
+ # Corresponds to the JSON property `status`
647
+ # @return [Google::Apis::DoubleclickbidmanagerV2::ReportStatus]
648
+ attr_accessor :status
649
+
650
+ def initialize(**args)
651
+ update!(**args)
652
+ end
653
+
654
+ # Update properties of this object
655
+ def update!(**args)
656
+ @google_cloud_storage_path = args[:google_cloud_storage_path] if args.key?(:google_cloud_storage_path)
657
+ @report_data_end_date = args[:report_data_end_date] if args.key?(:report_data_end_date)
658
+ @report_data_start_date = args[:report_data_start_date] if args.key?(:report_data_start_date)
659
+ @status = args[:status] if args.key?(:status)
660
+ end
661
+ end
662
+
663
+ # Report status.
664
+ class ReportStatus
665
+ include Google::Apis::Core::Hashable
666
+
667
+ # Output only. The time when this report either completed successfully or failed.
668
+ # Corresponds to the JSON property `finishTime`
669
+ # @return [String]
670
+ attr_accessor :finish_time
671
+
672
+ # The file type of the report.
673
+ # Corresponds to the JSON property `format`
674
+ # @return [String]
675
+ attr_accessor :format
676
+
677
+ # Output only. The state of the report.
678
+ # Corresponds to the JSON property `state`
679
+ # @return [String]
680
+ attr_accessor :state
681
+
682
+ def initialize(**args)
683
+ update!(**args)
684
+ end
685
+
686
+ # Update properties of this object
687
+ def update!(**args)
688
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
689
+ @format = args[:format] if args.key?(:format)
690
+ @state = args[:state] if args.key?(:state)
691
+ end
692
+ end
693
+
694
+ # A Rule defines a name, and a boolean expression in [conjunctive normal form] (
695
+ # http://mathworld.wolfram.com/ConjunctiveNormalForm.html)`.external` that can
696
+ # be applied to a path event to determine if that name should be applied.
697
+ class Rule
698
+ include Google::Apis::Core::Hashable
699
+
700
+ # DisjunctiveMatchStatements within a Rule. DisjunctiveMatchStatement OR's all
701
+ # contained filters.
702
+ # Corresponds to the JSON property `disjunctiveMatchStatements`
703
+ # @return [Array<Google::Apis::DoubleclickbidmanagerV2::DisjunctiveMatchStatement>]
704
+ attr_accessor :disjunctive_match_statements
705
+
706
+ # Rule name.
707
+ # Corresponds to the JSON property `name`
708
+ # @return [String]
709
+ attr_accessor :name
710
+
711
+ def initialize(**args)
712
+ update!(**args)
713
+ end
714
+
715
+ # Update properties of this object
716
+ def update!(**args)
717
+ @disjunctive_match_statements = args[:disjunctive_match_statements] if args.key?(:disjunctive_match_statements)
718
+ @name = args[:name] if args.key?(:name)
719
+ end
720
+ end
721
+
722
+ # Request to run a stored query to generate a report.
723
+ class RunQueryRequest
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # Report data range.
727
+ # Corresponds to the JSON property `dataRange`
728
+ # @return [Google::Apis::DoubleclickbidmanagerV2::DataRange]
729
+ attr_accessor :data_range
730
+
731
+ def initialize(**args)
732
+ update!(**args)
733
+ end
734
+
735
+ # Update properties of this object
736
+ def update!(**args)
737
+ @data_range = args[:data_range] if args.key?(:data_range)
738
+ end
739
+ end
740
+ end
741
+ end
742
+ end