google-apis-doubleclickbidmanager_v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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