google-api-client 0.9.6 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/api_names.yaml +15 -0
  4. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  5. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +75 -12
  6. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +25 -5
  7. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +6 -2
  8. data/generated/google/apis/adexchangeseller_v2_0.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/classes.rb +1 -1
  10. data/generated/google/apis/admin_directory_v1/representations.rb +1 -2
  11. data/generated/google/apis/adsense_v1_4.rb +1 -1
  12. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  13. data/generated/google/apis/analytics_v3.rb +1 -1
  14. data/generated/google/apis/analyticsreporting_v4.rb +37 -0
  15. data/generated/google/apis/analyticsreporting_v4/classes.rb +1385 -0
  16. data/generated/google/apis/analyticsreporting_v4/representations.rb +597 -0
  17. data/generated/google/apis/analyticsreporting_v4/service.rb +88 -0
  18. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  19. data/generated/google/apis/androidenterprise_v1/classes.rb +98 -2
  20. data/generated/google/apis/androidenterprise_v1/representations.rb +48 -0
  21. data/generated/google/apis/androidenterprise_v1/service.rb +63 -1
  22. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  23. data/generated/google/apis/androidpublisher_v2/classes.rb +268 -0
  24. data/generated/google/apis/androidpublisher_v2/representations.rb +142 -0
  25. data/generated/google/apis/androidpublisher_v2/service.rb +121 -0
  26. data/generated/google/apis/appstate_v1.rb +1 -1
  27. data/generated/google/apis/autoscaler_v1beta2.rb +1 -1
  28. data/generated/google/apis/autoscaler_v1beta2/classes.rb +10 -47
  29. data/generated/google/apis/autoscaler_v1beta2/representations.rb +1 -18
  30. data/generated/google/apis/autoscaler_v1beta2/service.rb +4 -4
  31. data/generated/google/apis/bigquery_v2.rb +1 -1
  32. data/generated/google/apis/bigquery_v2/classes.rb +97 -61
  33. data/generated/google/apis/bigquery_v2/representations.rb +23 -18
  34. data/generated/google/apis/calendar_v3.rb +1 -1
  35. data/generated/google/apis/classroom_v1.rb +23 -2
  36. data/generated/google/apis/classroom_v1/classes.rb +920 -6
  37. data/generated/google/apis/classroom_v1/representations.rb +419 -0
  38. data/generated/google/apis/classroom_v1/service.rb +507 -1
  39. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1/classes.rb +30 -23
  41. data/generated/google/apis/cloudbuild_v1/representations.rb +4 -3
  42. data/generated/google/apis/cloudbuild_v1/service.rb +25 -25
  43. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  44. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  45. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  46. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +55 -0
  47. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +40 -0
  48. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +35 -0
  49. data/generated/google/apis/cloudtrace_v1.rb +11 -3
  50. data/generated/google/apis/cloudtrace_v1/classes.rb +5 -5
  51. data/generated/google/apis/cloudtrace_v1/service.rb +8 -6
  52. data/generated/google/apis/compute_beta.rb +2 -2
  53. data/generated/google/apis/compute_beta/classes.rb +162 -32
  54. data/generated/google/apis/compute_beta/representations.rb +58 -0
  55. data/generated/google/apis/compute_beta/service.rb +392 -267
  56. data/generated/google/apis/compute_v1.rb +2 -2
  57. data/generated/google/apis/compute_v1/classes.rb +21 -9
  58. data/generated/google/apis/compute_v1/representations.rb +1 -0
  59. data/generated/google/apis/compute_v1/service.rb +291 -253
  60. data/generated/google/apis/container_v1.rb +1 -1
  61. data/generated/google/apis/container_v1/classes.rb +148 -0
  62. data/generated/google/apis/container_v1/representations.rb +55 -0
  63. data/generated/google/apis/container_v1/service.rb +161 -0
  64. data/generated/google/apis/content_v2.rb +1 -1
  65. data/generated/google/apis/content_v2/classes.rb +18 -6
  66. data/generated/google/apis/content_v2/representations.rb +1 -0
  67. data/generated/google/apis/customsearch_v1.rb +1 -1
  68. data/generated/google/apis/dataproc_v1.rb +2 -11
  69. data/generated/google/apis/dataproc_v1/classes.rb +0 -19
  70. data/generated/google/apis/dataproc_v1/representations.rb +0 -13
  71. data/generated/google/apis/dataproc_v1/service.rb +8 -87
  72. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  73. data/generated/google/apis/dfareporting_v2_3.rb +1 -1
  74. data/generated/google/apis/dfareporting_v2_3/classes.rb +41 -32
  75. data/generated/google/apis/discovery_v1.rb +2 -2
  76. data/generated/google/apis/discovery_v1/service.rb +2 -2
  77. data/generated/google/apis/dns_v1.rb +2 -3
  78. data/generated/google/apis/dns_v1/service.rb +1 -2
  79. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  80. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  81. data/generated/google/apis/drive_v2.rb +3 -2
  82. data/generated/google/apis/drive_v2/service.rb +2 -1
  83. data/generated/google/apis/drive_v3.rb +3 -2
  84. data/generated/google/apis/drive_v3/service.rb +2 -1
  85. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  86. data/generated/google/apis/games_management_v1management.rb +1 -1
  87. data/generated/google/apis/games_management_v1management/classes.rb +34 -0
  88. data/generated/google/apis/games_management_v1management/representations.rb +16 -0
  89. data/generated/google/apis/games_v1.rb +1 -1
  90. data/generated/google/apis/games_v1/classes.rb +34 -0
  91. data/generated/google/apis/games_v1/representations.rb +16 -0
  92. data/generated/google/apis/games_v1/service.rb +212 -53
  93. data/generated/google/apis/genomics_v1.rb +1 -1
  94. data/generated/google/apis/genomics_v1/classes.rb +18 -0
  95. data/generated/google/apis/genomics_v1/representations.rb +3 -0
  96. data/generated/google/apis/genomics_v1/service.rb +2 -2
  97. data/generated/google/apis/gmail_v1.rb +1 -1
  98. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  99. data/generated/google/apis/identitytoolkit_v3/classes.rb +19 -7
  100. data/generated/google/apis/identitytoolkit_v3/representations.rb +3 -1
  101. data/generated/google/apis/mybusiness_v3.rb +32 -0
  102. data/generated/google/apis/mybusiness_v3/classes.rb +1864 -0
  103. data/generated/google/apis/mybusiness_v3/representations.rb +741 -0
  104. data/generated/google/apis/mybusiness_v3/service.rb +960 -0
  105. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  106. data/generated/google/apis/plus_domains_v1.rb +2 -2
  107. data/generated/google/apis/plus_domains_v1/service.rb +1 -1
  108. data/generated/google/apis/plus_v1.rb +2 -2
  109. data/generated/google/apis/plus_v1/service.rb +1 -1
  110. data/generated/google/apis/prediction_v1_6.rb +4 -1
  111. data/generated/google/apis/proximitybeacon_v1beta1.rb +5 -2
  112. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +169 -22
  113. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +36 -1
  114. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +254 -39
  115. data/generated/google/apis/replicapool_v1beta2.rb +3 -3
  116. data/generated/google/apis/replicapool_v1beta2/service.rb +2 -2
  117. data/generated/google/apis/resourceviews_v1beta2.rb +1 -1
  118. data/generated/google/apis/script_v1.rb +6 -3
  119. data/generated/google/apis/script_v1/service.rb +2 -2
  120. data/generated/google/apis/sheets_v4.rb +43 -0
  121. data/generated/google/apis/sheets_v4/classes.rb +5425 -0
  122. data/generated/google/apis/sheets_v4/representations.rb +2070 -0
  123. data/generated/google/apis/sheets_v4/service.rb +402 -0
  124. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  125. data/generated/google/apis/sqladmin_v1beta4/classes.rb +19 -4
  126. data/generated/google/apis/sqladmin_v1beta4/representations.rb +3 -0
  127. data/generated/google/apis/storage_v1.rb +1 -1
  128. data/generated/google/apis/storage_v1/classes.rb +2 -1
  129. data/generated/google/apis/taskqueue_v1beta2.rb +2 -2
  130. data/generated/google/apis/taskqueue_v1beta2/service.rb +1 -1
  131. data/generated/google/apis/vision_v1.rb +4 -5
  132. data/generated/google/apis/vision_v1/classes.rb +69 -68
  133. data/generated/google/apis/vision_v1/representations.rb +13 -13
  134. data/generated/google/apis/vision_v1/service.rb +3 -4
  135. data/generated/google/apis/youtube_analytics_v1.rb +2 -2
  136. data/generated/google/apis/youtube_analytics_v1/service.rb +1 -1
  137. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  138. data/generated/google/apis/youtube_partner_v1/classes.rb +121 -0
  139. data/generated/google/apis/youtube_partner_v1/representations.rb +50 -0
  140. data/generated/google/apis/youtube_partner_v1/service.rb +40 -0
  141. data/generated/google/apis/youtube_v3.rb +1 -1
  142. data/generated/google/apis/youtube_v3/classes.rb +24 -0
  143. data/generated/google/apis/youtube_v3/representations.rb +4 -0
  144. data/generated/google/apis/youtubereporting_v1.rb +3 -3
  145. data/generated/google/apis/youtubereporting_v1/classes.rb +19 -0
  146. data/generated/google/apis/youtubereporting_v1/representations.rb +3 -0
  147. data/generated/google/apis/youtubereporting_v1/service.rb +3 -4
  148. data/lib/google/apis/version.rb +1 -1
  149. metadata +14 -2
@@ -0,0 +1,37 @@
1
+ # Copyright 2015 Google Inc.
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 'google/apis/analyticsreporting_v4/service.rb'
16
+ require 'google/apis/analyticsreporting_v4/classes.rb'
17
+ require 'google/apis/analyticsreporting_v4/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Analytics Reporting API
22
+ #
23
+ # Accesses Analytics report data.
24
+ #
25
+ # @see https://developers.google.com/analytics/devguides/reporting/core/v4/
26
+ module AnalyticsreportingV4
27
+ VERSION = 'V4'
28
+ REVISION = '20160512'
29
+
30
+ # View your Google Analytics data
31
+ AUTH_ANALYTICS_READONLY = 'https://www.googleapis.com/auth/analytics.readonly'
32
+
33
+ # View and manage your Google Analytics data
34
+ AUTH_ANALYTICS = 'https://www.googleapis.com/auth/analytics'
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,1385 @@
1
+ # Copyright 2015 Google Inc.
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 AnalyticsreportingV4
24
+
25
+ # The headers for each of the pivot sections defined in the request.
26
+ class PivotHeader
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The total number of groups for this pivot.
30
+ # Corresponds to the JSON property `totalPivotGroupsCount`
31
+ # @return [Fixnum]
32
+ attr_accessor :total_pivot_groups_count
33
+
34
+ # A single pivot section header.
35
+ # Corresponds to the JSON property `pivotHeaderEntries`
36
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeaderEntry>]
37
+ attr_accessor :pivot_header_entries
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @total_pivot_groups_count = args[:total_pivot_groups_count] if args.key?(:total_pivot_groups_count)
46
+ @pivot_header_entries = args[:pivot_header_entries] if args.key?(:pivot_header_entries)
47
+ end
48
+ end
49
+
50
+ # A metric in the request.
51
+ class Metric
52
+ include Google::Apis::Core::Hashable
53
+
54
+ # An alias for the metric expression is an alternate name for the
55
+ # expression. The alias can be used for filtering and sorting. This field
56
+ # is optional and is useful if the expression is not a single metric but
57
+ # a complex expression which cannot be used in filtering and sorting.
58
+ # The alias is also used in the response column header.
59
+ # Corresponds to the JSON property `alias`
60
+ # @return [String]
61
+ attr_accessor :alias
62
+
63
+ # Specifies how the metric expression should be formatted, for example
64
+ # `INTEGER`.
65
+ # Corresponds to the JSON property `formattingType`
66
+ # @return [String]
67
+ attr_accessor :formatting_type
68
+
69
+ # A metric expression in the request. An expression is constructed from one
70
+ # or more metrics and numbers. Accepted operators include: Plus (+), Minus
71
+ # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
72
+ # Positive cardinal numbers (0-9), can include decimals and is limited to
73
+ # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
74
+ # metric expression is just a single metric name like `ga:users`.
75
+ # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
76
+ # will result in unexpected results.
77
+ # Corresponds to the JSON property `expression`
78
+ # @return [String]
79
+ attr_accessor :expression
80
+
81
+ def initialize(**args)
82
+ update!(**args)
83
+ end
84
+
85
+ # Update properties of this object
86
+ def update!(**args)
87
+ @alias = args[:alias] if args.key?(:alias)
88
+ @formatting_type = args[:formatting_type] if args.key?(:formatting_type)
89
+ @expression = args[:expression] if args.key?(:expression)
90
+ end
91
+ end
92
+
93
+ # Column headers.
94
+ class ColumnHeader
95
+ include Google::Apis::Core::Hashable
96
+
97
+ # The dimension names in the response.
98
+ # Corresponds to the JSON property `dimensions`
99
+ # @return [Array<String>]
100
+ attr_accessor :dimensions
101
+
102
+ # The headers for the metrics.
103
+ # Corresponds to the JSON property `metricHeader`
104
+ # @return [Google::Apis::AnalyticsreportingV4::MetricHeader]
105
+ attr_accessor :metric_header
106
+
107
+ def initialize(**args)
108
+ update!(**args)
109
+ end
110
+
111
+ # Update properties of this object
112
+ def update!(**args)
113
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
114
+ @metric_header = args[:metric_header] if args.key?(:metric_header)
115
+ end
116
+ end
117
+
118
+ # Dynamic segment definition for defining the segment within the request.
119
+ # A segment can select users, sessions or both.
120
+ class DynamicSegment
121
+ include Google::Apis::Core::Hashable
122
+
123
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
124
+ # are combined together with a logical `AND` operation.
125
+ # Corresponds to the JSON property `sessionSegment`
126
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
127
+ attr_accessor :session_segment
128
+
129
+ # The name of the dynamic segment.
130
+ # Corresponds to the JSON property `name`
131
+ # @return [String]
132
+ attr_accessor :name
133
+
134
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
135
+ # are combined together with a logical `AND` operation.
136
+ # Corresponds to the JSON property `userSegment`
137
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
138
+ attr_accessor :user_segment
139
+
140
+ def initialize(**args)
141
+ update!(**args)
142
+ end
143
+
144
+ # Update properties of this object
145
+ def update!(**args)
146
+ @session_segment = args[:session_segment] if args.key?(:session_segment)
147
+ @name = args[:name] if args.key?(:name)
148
+ @user_segment = args[:user_segment] if args.key?(:user_segment)
149
+ end
150
+ end
151
+
152
+ # The headers for the metrics.
153
+ class MetricHeader
154
+ include Google::Apis::Core::Hashable
155
+
156
+ # Headers for the metrics in the response.
157
+ # Corresponds to the JSON property `metricHeaderEntries`
158
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricHeaderEntry>]
159
+ attr_accessor :metric_header_entries
160
+
161
+ # Headers for the pivots in the response.
162
+ # Corresponds to the JSON property `pivotHeaders`
163
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeader>]
164
+ attr_accessor :pivot_headers
165
+
166
+ def initialize(**args)
167
+ update!(**args)
168
+ end
169
+
170
+ # Update properties of this object
171
+ def update!(**args)
172
+ @metric_header_entries = args[:metric_header_entries] if args.key?(:metric_header_entries)
173
+ @pivot_headers = args[:pivot_headers] if args.key?(:pivot_headers)
174
+ end
175
+ end
176
+
177
+ # The data response corresponding to the request.
178
+ class Report
179
+ include Google::Apis::Core::Hashable
180
+
181
+ # Column headers.
182
+ # Corresponds to the JSON property `columnHeader`
183
+ # @return [Google::Apis::AnalyticsreportingV4::ColumnHeader]
184
+ attr_accessor :column_header
185
+
186
+ # The data part of the report.
187
+ # Corresponds to the JSON property `data`
188
+ # @return [Google::Apis::AnalyticsreportingV4::ReportData]
189
+ attr_accessor :data
190
+
191
+ # Page token to retrieve the next page of results in the list.
192
+ # Corresponds to the JSON property `nextPageToken`
193
+ # @return [String]
194
+ attr_accessor :next_page_token
195
+
196
+ def initialize(**args)
197
+ update!(**args)
198
+ end
199
+
200
+ # Update properties of this object
201
+ def update!(**args)
202
+ @column_header = args[:column_header] if args.key?(:column_header)
203
+ @data = args[:data] if args.key?(:data)
204
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
205
+ end
206
+ end
207
+
208
+ # Filter Clause to be used in a segment definition, can be wither a metric or
209
+ # a dimension filter.
210
+ class SegmentFilterClause
211
+ include Google::Apis::Core::Hashable
212
+
213
+ # Dimension filter specifies the filtering options on a dimension.
214
+ # Corresponds to the JSON property `dimensionFilter`
215
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDimensionFilter]
216
+ attr_accessor :dimension_filter
217
+
218
+ # Metric filter to be used in a segment filter clause.
219
+ # Corresponds to the JSON property `metricFilter`
220
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentMetricFilter]
221
+ attr_accessor :metric_filter
222
+
223
+ # Matches the complement (`!`) of the filter.
224
+ # Corresponds to the JSON property `not`
225
+ # @return [Boolean]
226
+ attr_accessor :not
227
+ alias_method :not?, :not
228
+
229
+ def initialize(**args)
230
+ update!(**args)
231
+ end
232
+
233
+ # Update properties of this object
234
+ def update!(**args)
235
+ @dimension_filter = args[:dimension_filter] if args.key?(:dimension_filter)
236
+ @metric_filter = args[:metric_filter] if args.key?(:metric_filter)
237
+ @not = args[:not] if args.key?(:not)
238
+ end
239
+ end
240
+
241
+ # Dimension filter specifies the filtering options on a dimension.
242
+ class DimensionFilter
243
+ include Google::Apis::Core::Hashable
244
+
245
+ # The dimension to filter on. A DimensionFilter must contain a dimension.
246
+ # Corresponds to the JSON property `dimensionName`
247
+ # @return [String]
248
+ attr_accessor :dimension_name
249
+
250
+ # How to match the dimension to the expression. The default is REGEXP.
251
+ # Corresponds to the JSON property `operator`
252
+ # @return [String]
253
+ attr_accessor :operator
254
+
255
+ # Should the match be case sensitive? Default is false.
256
+ # Corresponds to the JSON property `caseSensitive`
257
+ # @return [Boolean]
258
+ attr_accessor :case_sensitive
259
+ alias_method :case_sensitive?, :case_sensitive
260
+
261
+ # Strings or regular expression to match against. Only the first value of
262
+ # the list is used for comparison unless the operator is `IN_LIST`.
263
+ # If `IN_LIST` operator, then the entire list is used to filter the
264
+ # dimensions as explained in the description of the `IN_LIST` operator.
265
+ # Corresponds to the JSON property `expressions`
266
+ # @return [Array<String>]
267
+ attr_accessor :expressions
268
+
269
+ # Logical `NOT` operator. If this boolean is set to true, then the matching
270
+ # dimension values will be excluded in the report. The default is false.
271
+ # Corresponds to the JSON property `not`
272
+ # @return [Boolean]
273
+ attr_accessor :not
274
+ alias_method :not?, :not
275
+
276
+ def initialize(**args)
277
+ update!(**args)
278
+ end
279
+
280
+ # Update properties of this object
281
+ def update!(**args)
282
+ @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
283
+ @operator = args[:operator] if args.key?(:operator)
284
+ @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
285
+ @expressions = args[:expressions] if args.key?(:expressions)
286
+ @not = args[:not] if args.key?(:not)
287
+ end
288
+ end
289
+
290
+ # Dimension filter specifies the filtering options on a dimension.
291
+ class SegmentDimensionFilter
292
+ include Google::Apis::Core::Hashable
293
+
294
+ # Maximum comparison values for `BETWEEN` match type.
295
+ # Corresponds to the JSON property `maxComparisonValue`
296
+ # @return [String]
297
+ attr_accessor :max_comparison_value
298
+
299
+ # Name of the dimension for which the filter is being applied.
300
+ # Corresponds to the JSON property `dimensionName`
301
+ # @return [String]
302
+ attr_accessor :dimension_name
303
+
304
+ # Should the match be case sensitive, ignored for `IN_LIST` operator.
305
+ # Corresponds to the JSON property `caseSensitive`
306
+ # @return [Boolean]
307
+ attr_accessor :case_sensitive
308
+ alias_method :case_sensitive?, :case_sensitive
309
+
310
+ # The operator to use to match the dimension with the expressions.
311
+ # Corresponds to the JSON property `operator`
312
+ # @return [String]
313
+ attr_accessor :operator
314
+
315
+ # The list of expressions, only the first element is used for all operators
316
+ # Corresponds to the JSON property `expressions`
317
+ # @return [Array<String>]
318
+ attr_accessor :expressions
319
+
320
+ # Minimum comparison values for `BETWEEN` match type.
321
+ # Corresponds to the JSON property `minComparisonValue`
322
+ # @return [String]
323
+ attr_accessor :min_comparison_value
324
+
325
+ def initialize(**args)
326
+ update!(**args)
327
+ end
328
+
329
+ # Update properties of this object
330
+ def update!(**args)
331
+ @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
332
+ @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
333
+ @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
334
+ @operator = args[:operator] if args.key?(:operator)
335
+ @expressions = args[:expressions] if args.key?(:expressions)
336
+ @min_comparison_value = args[:min_comparison_value] if args.key?(:min_comparison_value)
337
+ end
338
+ end
339
+
340
+ # The main request class which specifies the Reporting API request.
341
+ class ReportRequest
342
+ include Google::Apis::Core::Hashable
343
+
344
+ # Defines a cohort group.
345
+ # For example:
346
+ # "cohortGroup": `
347
+ # "cohorts": [`
348
+ # "name": "cohort 1",
349
+ # "type": "FIRST_VISIT_DATE",
350
+ # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
351
+ # `,`
352
+ # "name": "cohort 2"
353
+ # "type": "FIRST_VISIT_DATE"
354
+ # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
355
+ # `]
356
+ # `
357
+ # Corresponds to the JSON property `cohortGroup`
358
+ # @return [Google::Apis::AnalyticsreportingV4::CohortGroup]
359
+ attr_accessor :cohort_group
360
+
361
+ # Dimensions requested in the request.
362
+ # Corresponds to the JSON property `dimensions`
363
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
364
+ attr_accessor :dimensions
365
+
366
+ # The metric filter clauses. They are logically combined with the `AND`
367
+ # operator. Metric filters look at only the first date range and not the
368
+ # comparing date range. Note that filtering on metrics occurs after the
369
+ # metrics are aggregated.
370
+ # Corresponds to the JSON property `metricFilterClauses`
371
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilterClause>]
372
+ attr_accessor :metric_filter_clauses
373
+
374
+ # If set to true, hides the total of all metrics for all the matching rows,
375
+ # for every date range. The default false and will return the totals.
376
+ # Corresponds to the JSON property `hideTotals`
377
+ # @return [Boolean]
378
+ attr_accessor :hide_totals
379
+ alias_method :hide_totals?, :hide_totals
380
+
381
+ # If set to false, the response does not include rows if all the retrieved
382
+ # metrics are equal to zero. The default is false which will exclude these
383
+ # rows.
384
+ # Corresponds to the JSON property `includeEmptyRows`
385
+ # @return [Boolean]
386
+ attr_accessor :include_empty_rows
387
+ alias_method :include_empty_rows?, :include_empty_rows
388
+
389
+ # The dimension filter clauses for filtering Dimension Values. They are
390
+ # logically combined with the `AND` operator. Note that filtering occurs
391
+ # before any dimensions are aggregated, so that the returned metrics
392
+ # represent the total for only the relevant dimensions.
393
+ # Corresponds to the JSON property `dimensionFilterClauses`
394
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
395
+ attr_accessor :dimension_filter_clauses
396
+
397
+ # The pivot definitions.
398
+ # Corresponds to the JSON property `pivots`
399
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Pivot>]
400
+ attr_accessor :pivots
401
+
402
+ # Date ranges in the request. The request can have a maximum of 2 date
403
+ # ranges. The response will contain a set of metric values for each
404
+ # combination of the dimensions for each date range in the request. So, if
405
+ # there are two date ranges, there will be two set of metric values, one for
406
+ # the original date range and one for the second date range.
407
+ # The `reportRequest.dateRanges` field should not be specified for cohorts
408
+ # or Lifetime value requests.
409
+ # If a date range is not provided, the default date range is (startDate:
410
+ # current date - 7 days, endDate: current date - 1 day)
411
+ # Corresponds to the JSON property `dateRanges`
412
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRange>]
413
+ attr_accessor :date_ranges
414
+
415
+ # Segment the data returned for the request. A segment definition helps look
416
+ # at a subset of the segment request. A request can contain up to four
417
+ # segments. All requests should have the same segment definitions. Requests
418
+ # with segments must have the `ga:segment` dimension.
419
+ # Corresponds to the JSON property `segments`
420
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Segment>]
421
+ attr_accessor :segments
422
+
423
+ # The desired sampling level. If the sampling level is not specified the
424
+ # DEFAULT sampling level will be used. All requests should have same
425
+ # `samplingLevel`.
426
+ # Corresponds to the JSON property `samplingLevel`
427
+ # @return [String]
428
+ attr_accessor :sampling_level
429
+
430
+ # Metrics, the quantitative measurements, requested in the request.
431
+ # Requests must specify at least one metric.
432
+ # Corresponds to the JSON property `metrics`
433
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
434
+ attr_accessor :metrics
435
+
436
+ # Page size is for paging and specifies the maximum number of returned rows.
437
+ # Page size should be >= 0. A query returns the default of 1,000 rows.
438
+ # The Analytics Core Reporting API returns a maximum of 10,000 rows per
439
+ # request, no matter how many you ask for. It can also return fewer rows
440
+ # than requested, if there aren't as many dimension segments as you expect.
441
+ # For instance, there are fewer than 300 possible values for `ga:country`,
442
+ # so when segmenting only by country, you can't get more than 300 rows,
443
+ # even if you set `pageSize` to a higher value.
444
+ # Corresponds to the JSON property `pageSize`
445
+ # @return [Fixnum]
446
+ attr_accessor :page_size
447
+
448
+ # Sort order on output rows. To compare two rows, the elements of the
449
+ # following are applied in order until a difference is found. All date
450
+ # ranges in the output get the same row order.
451
+ # Corresponds to the JSON property `orderBys`
452
+ # @return [Array<Google::Apis::AnalyticsreportingV4::OrderBy>]
453
+ attr_accessor :order_bys
454
+
455
+ # Dimension or metric filters that restrict the data returned for your
456
+ # request. To use the `filtersExpression`, supply a dimension or metric on
457
+ # which to filter, followed by the filter expression. For example, the
458
+ # following expression selects `ga:browser` dimension which starts with
459
+ # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
460
+ # and metric filters, see
461
+ # [Filters reference](https://developers.google.com/analytics/devguides/
462
+ # reporting/core/v3/reference#filters).
463
+ # Corresponds to the JSON property `filtersExpression`
464
+ # @return [String]
465
+ attr_accessor :filters_expression
466
+
467
+ # If set to true, hides the minimum and maximum across all matching rows.
468
+ # The default is false and the value ranges are returned.
469
+ # Corresponds to the JSON property `hideValueRanges`
470
+ # @return [Boolean]
471
+ attr_accessor :hide_value_ranges
472
+ alias_method :hide_value_ranges?, :hide_value_ranges
473
+
474
+ # Unique View Id for retrieving Analytics data.
475
+ # Corresponds to the JSON property `viewId`
476
+ # @return [String]
477
+ attr_accessor :view_id
478
+
479
+ # A continuation token to get the next page of the results. Adding this to
480
+ # the request will return the rows after the pageToken. The pageToken should
481
+ # be the value returned in the nextPageToken parameter in the response to
482
+ # the GetReports request.
483
+ # Corresponds to the JSON property `pageToken`
484
+ # @return [String]
485
+ attr_accessor :page_token
486
+
487
+ def initialize(**args)
488
+ update!(**args)
489
+ end
490
+
491
+ # Update properties of this object
492
+ def update!(**args)
493
+ @cohort_group = args[:cohort_group] if args.key?(:cohort_group)
494
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
495
+ @metric_filter_clauses = args[:metric_filter_clauses] if args.key?(:metric_filter_clauses)
496
+ @hide_totals = args[:hide_totals] if args.key?(:hide_totals)
497
+ @include_empty_rows = args[:include_empty_rows] if args.key?(:include_empty_rows)
498
+ @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
499
+ @pivots = args[:pivots] if args.key?(:pivots)
500
+ @date_ranges = args[:date_ranges] if args.key?(:date_ranges)
501
+ @segments = args[:segments] if args.key?(:segments)
502
+ @sampling_level = args[:sampling_level] if args.key?(:sampling_level)
503
+ @metrics = args[:metrics] if args.key?(:metrics)
504
+ @page_size = args[:page_size] if args.key?(:page_size)
505
+ @order_bys = args[:order_bys] if args.key?(:order_bys)
506
+ @filters_expression = args[:filters_expression] if args.key?(:filters_expression)
507
+ @hide_value_ranges = args[:hide_value_ranges] if args.key?(:hide_value_ranges)
508
+ @view_id = args[:view_id] if args.key?(:view_id)
509
+ @page_token = args[:page_token] if args.key?(:page_token)
510
+ end
511
+ end
512
+
513
+ # A Simple segment conditions consist of one or more dimension/metric
514
+ # conditions that can be combined.
515
+ class SimpleSegment
516
+ include Google::Apis::Core::Hashable
517
+
518
+ # A list of segment filters groups which are combined with logical `AND`
519
+ # operator.
520
+ # Corresponds to the JSON property `orFiltersForSegment`
521
+ # @return [Array<Google::Apis::AnalyticsreportingV4::OrFiltersForSegment>]
522
+ attr_accessor :or_filters_for_segment
523
+
524
+ def initialize(**args)
525
+ update!(**args)
526
+ end
527
+
528
+ # Update properties of this object
529
+ def update!(**args)
530
+ @or_filters_for_segment = args[:or_filters_for_segment] if args.key?(:or_filters_for_segment)
531
+ end
532
+ end
533
+
534
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
535
+ # are combined together with a logical `AND` operation.
536
+ class SegmentDefinition
537
+ include Google::Apis::Core::Hashable
538
+
539
+ # A segment is defined by a set of segment filters which are combined
540
+ # together with a logical `AND` operation.
541
+ # Corresponds to the JSON property `segmentFilters`
542
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilter>]
543
+ attr_accessor :segment_filters
544
+
545
+ def initialize(**args)
546
+ update!(**args)
547
+ end
548
+
549
+ # Update properties of this object
550
+ def update!(**args)
551
+ @segment_filters = args[:segment_filters] if args.key?(:segment_filters)
552
+ end
553
+ end
554
+
555
+ # Metric filter to be used in a segment filter clause.
556
+ class SegmentMetricFilter
557
+ include Google::Apis::Core::Hashable
558
+
559
+ # The metric that will be filtered on. A `metricFilter` must contain a
560
+ # metric name.
561
+ # Corresponds to the JSON property `metricName`
562
+ # @return [String]
563
+ attr_accessor :metric_name
564
+
565
+ # Specifies is the operation to perform to compare the metric. The default
566
+ # is `EQUAL`.
567
+ # Corresponds to the JSON property `operator`
568
+ # @return [String]
569
+ attr_accessor :operator
570
+
571
+ # The value to compare against. If the operator is `BETWEEN`, this value is
572
+ # treated as minimum comparison value.
573
+ # Corresponds to the JSON property `comparisonValue`
574
+ # @return [String]
575
+ attr_accessor :comparison_value
576
+
577
+ # Scope for a metric defines the level at which that metric is defined. The
578
+ # specified metric scope must be equal to or greater than its primary scope
579
+ # as defined in the data model. The primary scope is defined by if the
580
+ # segment is selecting users or sessions.
581
+ # Corresponds to the JSON property `scope`
582
+ # @return [String]
583
+ attr_accessor :scope
584
+
585
+ # Max comparison value is only used for `BETWEEN` operator.
586
+ # Corresponds to the JSON property `maxComparisonValue`
587
+ # @return [String]
588
+ attr_accessor :max_comparison_value
589
+
590
+ def initialize(**args)
591
+ update!(**args)
592
+ end
593
+
594
+ # Update properties of this object
595
+ def update!(**args)
596
+ @metric_name = args[:metric_name] if args.key?(:metric_name)
597
+ @operator = args[:operator] if args.key?(:operator)
598
+ @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
599
+ @scope = args[:scope] if args.key?(:scope)
600
+ @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
601
+ end
602
+ end
603
+
604
+ # The data part of the report.
605
+ class ReportData
606
+ include Google::Apis::Core::Hashable
607
+
608
+ # Total number of matching rows for this query.
609
+ # Corresponds to the JSON property `rowCount`
610
+ # @return [Fixnum]
611
+ attr_accessor :row_count
612
+
613
+ # If sampling was enabled, this returns the total number of samples
614
+ # present, one entry per date range.
615
+ # Corresponds to the JSON property `samplingSpaceSizes`
616
+ # @return [Array<String>]
617
+ attr_accessor :sampling_space_sizes
618
+
619
+ # Minimum and maximum values seen over all matching rows. These are both
620
+ # empty when `hideValueRanges` in the request is false, or when
621
+ # rowCount is zero.
622
+ # Corresponds to the JSON property `maximums`
623
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
624
+ attr_accessor :maximums
625
+
626
+ # If sampling was enabled, this returns the total number of samples
627
+ # read, one entry per date range
628
+ # Corresponds to the JSON property `samplesReadCounts`
629
+ # @return [Array<String>]
630
+ attr_accessor :samples_read_counts
631
+
632
+ # Minimum and maximum values seen over all matching rows. These are both
633
+ # empty when `hideValueRanges` in the request is false, or when
634
+ # rowCount is zero.
635
+ # Corresponds to the JSON property `minimums`
636
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
637
+ attr_accessor :minimums
638
+
639
+ # There's one ReportRow for every unique combination of dimensions.
640
+ # Corresponds to the JSON property `rows`
641
+ # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRow>]
642
+ attr_accessor :rows
643
+
644
+ # For each requested date range, for the set of all rows that match
645
+ # the query, every requested value format gets a total. The total
646
+ # for a value format is computed by first totaling the metrics
647
+ # mentioned in the value format and then evaluating the value
648
+ # format as a scalar expression. E.g., The "totals" for
649
+ # `3 / (ga:sessions + 2)` we compute
650
+ # `3 / ((sum of all relevant ga:sessions) + 2)`.
651
+ # Totals are computed before pagination.
652
+ # Corresponds to the JSON property `totals`
653
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
654
+ attr_accessor :totals
655
+
656
+ # Indicates if response to this request is golden or not. Data is
657
+ # golden when the exact same request will not produce any new results if
658
+ # asked at a later point in time.
659
+ # Corresponds to the JSON property `isDataGolden`
660
+ # @return [Boolean]
661
+ attr_accessor :is_data_golden
662
+ alias_method :is_data_golden?, :is_data_golden
663
+
664
+ def initialize(**args)
665
+ update!(**args)
666
+ end
667
+
668
+ # Update properties of this object
669
+ def update!(**args)
670
+ @row_count = args[:row_count] if args.key?(:row_count)
671
+ @sampling_space_sizes = args[:sampling_space_sizes] if args.key?(:sampling_space_sizes)
672
+ @maximums = args[:maximums] if args.key?(:maximums)
673
+ @samples_read_counts = args[:samples_read_counts] if args.key?(:samples_read_counts)
674
+ @minimums = args[:minimums] if args.key?(:minimums)
675
+ @rows = args[:rows] if args.key?(:rows)
676
+ @totals = args[:totals] if args.key?(:totals)
677
+ @is_data_golden = args[:is_data_golden] if args.key?(:is_data_golden)
678
+ end
679
+ end
680
+
681
+ # The batch request containing multiple report request.
682
+ class GetReportsRequest
683
+ include Google::Apis::Core::Hashable
684
+
685
+ # Requests, each request will have a separate response.
686
+ # There can be a maximum of 5 requests. All requests should have the same
687
+ # `dateRange`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.
688
+ # Corresponds to the JSON property `reportRequests`
689
+ # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRequest>]
690
+ attr_accessor :report_requests
691
+
692
+ def initialize(**args)
693
+ update!(**args)
694
+ end
695
+
696
+ # Update properties of this object
697
+ def update!(**args)
698
+ @report_requests = args[:report_requests] if args.key?(:report_requests)
699
+ end
700
+ end
701
+
702
+ # Specifies the sorting options.
703
+ class OrderBy
704
+ include Google::Apis::Core::Hashable
705
+
706
+ # The sorting order for the field.
707
+ # Corresponds to the JSON property `sortOrder`
708
+ # @return [String]
709
+ attr_accessor :sort_order
710
+
711
+ # The order type. The default orderType is `VALUE`.
712
+ # Corresponds to the JSON property `orderType`
713
+ # @return [String]
714
+ attr_accessor :order_type
715
+
716
+ # The field which to sort by. The default sort order is ascending. Example:
717
+ # `ga:browser`.
718
+ # Note, that you can only specify one field for sort here. For example,
719
+ # `ga:browser, ga:city` is not valid.
720
+ # Corresponds to the JSON property `fieldName`
721
+ # @return [String]
722
+ attr_accessor :field_name
723
+
724
+ def initialize(**args)
725
+ update!(**args)
726
+ end
727
+
728
+ # Update properties of this object
729
+ def update!(**args)
730
+ @sort_order = args[:sort_order] if args.key?(:sort_order)
731
+ @order_type = args[:order_type] if args.key?(:order_type)
732
+ @field_name = args[:field_name] if args.key?(:field_name)
733
+ end
734
+ end
735
+
736
+ # Defines a cohort. A cohort is a group of users who share a common
737
+ # characteristic. For example, all users with the same acquisition date
738
+ # belong to the same cohort.
739
+ class Cohort
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # Type of the cohort. The only supported type as of now is
743
+ # `FIRST_VISIT_DATE`. If this field is unspecified the cohort is treated
744
+ # as `FIRST_VISIT_DATE` type cohort.
745
+ # Corresponds to the JSON property `type`
746
+ # @return [String]
747
+ attr_accessor :type
748
+
749
+ # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
750
+ # The start and end dates are specified in
751
+ # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
752
+ # Corresponds to the JSON property `dateRange`
753
+ # @return [Google::Apis::AnalyticsreportingV4::DateRange]
754
+ attr_accessor :date_range
755
+
756
+ # A unique name for the cohort. If not defined name will be auto-generated
757
+ # with values cohort_[1234...].
758
+ # Corresponds to the JSON property `name`
759
+ # @return [String]
760
+ attr_accessor :name
761
+
762
+ def initialize(**args)
763
+ update!(**args)
764
+ end
765
+
766
+ # Update properties of this object
767
+ def update!(**args)
768
+ @type = args[:type] if args.key?(:type)
769
+ @date_range = args[:date_range] if args.key?(:date_range)
770
+ @name = args[:name] if args.key?(:name)
771
+ end
772
+ end
773
+
774
+ # A list of segment filters in the `OR` group are combined with the logical OR
775
+ # operator.
776
+ class OrFiltersForSegment
777
+ include Google::Apis::Core::Hashable
778
+
779
+ # List of segment filters to be combined with a `OR` operator.
780
+ # Corresponds to the JSON property `segmentFilterClauses`
781
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilterClause>]
782
+ attr_accessor :segment_filter_clauses
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @segment_filter_clauses = args[:segment_filter_clauses] if args.key?(:segment_filter_clauses)
791
+ end
792
+ end
793
+
794
+ # Sequence conditions consist of one or more steps, where each step is defined
795
+ # by one or more dimension/metric conditions. Multiple steps can be combined
796
+ # with special sequence operators.
797
+ class SequenceSegment
798
+ include Google::Apis::Core::Hashable
799
+
800
+ # If set, first step condition must match the first hit of the visitor (in
801
+ # the date range).
802
+ # Corresponds to the JSON property `firstStepShouldMatchFirstHit`
803
+ # @return [Boolean]
804
+ attr_accessor :first_step_should_match_first_hit
805
+ alias_method :first_step_should_match_first_hit?, :first_step_should_match_first_hit
806
+
807
+ # The list of steps in the sequence.
808
+ # Corresponds to the JSON property `segmentSequenceSteps`
809
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentSequenceStep>]
810
+ attr_accessor :segment_sequence_steps
811
+
812
+ def initialize(**args)
813
+ update!(**args)
814
+ end
815
+
816
+ # Update properties of this object
817
+ def update!(**args)
818
+ @first_step_should_match_first_hit = args[:first_step_should_match_first_hit] if args.key?(:first_step_should_match_first_hit)
819
+ @segment_sequence_steps = args[:segment_sequence_steps] if args.key?(:segment_sequence_steps)
820
+ end
821
+ end
822
+
823
+ # SegmentFilter defines the segment to be either a simple or a sequence
824
+ # segment. A simple segment condition contains dimension and metric conditions
825
+ # to select the sessions or users. A sequence segment condition can be used to
826
+ # select users or sessions based on sequential conditions.
827
+ class SegmentFilter
828
+ include Google::Apis::Core::Hashable
829
+
830
+ # Sequence conditions consist of one or more steps, where each step is defined
831
+ # by one or more dimension/metric conditions. Multiple steps can be combined
832
+ # with special sequence operators.
833
+ # Corresponds to the JSON property `sequenceSegment`
834
+ # @return [Google::Apis::AnalyticsreportingV4::SequenceSegment]
835
+ attr_accessor :sequence_segment
836
+
837
+ # If true, match the complement of simple or sequence segment.
838
+ # For example, to match all visits not from "New York", we can define the
839
+ # segment as follows:
840
+ # "sessionSegment": `
841
+ # "segmentFilters": [`
842
+ # "simpleSegment" :`
843
+ # "orFiltersForSegment": [`
844
+ # "segmentFilterClauses":[`
845
+ # "dimensionFilter": `
846
+ # "dimensionName": "ga:city",
847
+ # "expressions": ["New York"]
848
+ # `
849
+ # `]
850
+ # `]
851
+ # `,
852
+ # "not": "True"
853
+ # `]
854
+ # `,
855
+ # Corresponds to the JSON property `not`
856
+ # @return [Boolean]
857
+ attr_accessor :not
858
+ alias_method :not?, :not
859
+
860
+ # A Simple segment conditions consist of one or more dimension/metric
861
+ # conditions that can be combined.
862
+ # Corresponds to the JSON property `simpleSegment`
863
+ # @return [Google::Apis::AnalyticsreportingV4::SimpleSegment]
864
+ attr_accessor :simple_segment
865
+
866
+ def initialize(**args)
867
+ update!(**args)
868
+ end
869
+
870
+ # Update properties of this object
871
+ def update!(**args)
872
+ @sequence_segment = args[:sequence_segment] if args.key?(:sequence_segment)
873
+ @not = args[:not] if args.key?(:not)
874
+ @simple_segment = args[:simple_segment] if args.key?(:simple_segment)
875
+ end
876
+ end
877
+
878
+ # The headers for the each of the metric column corresponding to the metrics
879
+ # requested in the pivots section of the response.
880
+ class PivotHeaderEntry
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # The name of the dimensions in the pivotDimensionValues field in the
884
+ # response.
885
+ # Corresponds to the JSON property `dimensionNames`
886
+ # @return [Array<String>]
887
+ attr_accessor :dimension_names
888
+
889
+ # The values for the dimensions in the pivot.
890
+ # Corresponds to the JSON property `dimensionValues`
891
+ # @return [Array<String>]
892
+ attr_accessor :dimension_values
893
+
894
+ # Header for the metrics.
895
+ # Corresponds to the JSON property `metric`
896
+ # @return [Google::Apis::AnalyticsreportingV4::MetricHeaderEntry]
897
+ attr_accessor :metric
898
+
899
+ def initialize(**args)
900
+ update!(**args)
901
+ end
902
+
903
+ # Update properties of this object
904
+ def update!(**args)
905
+ @dimension_names = args[:dimension_names] if args.key?(:dimension_names)
906
+ @dimension_values = args[:dimension_values] if args.key?(:dimension_values)
907
+ @metric = args[:metric] if args.key?(:metric)
908
+ end
909
+ end
910
+
911
+ # A group of dimension filters. Set the operator value to specify how
912
+ # the filters are logically combined.
913
+ class DimensionFilterClause
914
+ include Google::Apis::Core::Hashable
915
+
916
+ # The operator for combining multiple dimension filters. If unspecified, it
917
+ # is treated as an `OR`.
918
+ # Corresponds to the JSON property `operator`
919
+ # @return [String]
920
+ attr_accessor :operator
921
+
922
+ # The repeated set of filters. They are logically combined based on the
923
+ # operator specified.
924
+ # Corresponds to the JSON property `filters`
925
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilter>]
926
+ attr_accessor :filters
927
+
928
+ def initialize(**args)
929
+ update!(**args)
930
+ end
931
+
932
+ # Update properties of this object
933
+ def update!(**args)
934
+ @operator = args[:operator] if args.key?(:operator)
935
+ @filters = args[:filters] if args.key?(:filters)
936
+ end
937
+ end
938
+
939
+ # A segment sequence definition.
940
+ class SegmentSequenceStep
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # Specifies if the step immediately precedes or can be any time before the
944
+ # next step.
945
+ # Corresponds to the JSON property `matchType`
946
+ # @return [String]
947
+ attr_accessor :match_type
948
+
949
+ # A sequence is specified with a list of Or grouped filters which are
950
+ # combined with `AND` operator.
951
+ # Corresponds to the JSON property `orFiltersForSegment`
952
+ # @return [Array<Google::Apis::AnalyticsreportingV4::OrFiltersForSegment>]
953
+ attr_accessor :or_filters_for_segment
954
+
955
+ def initialize(**args)
956
+ update!(**args)
957
+ end
958
+
959
+ # Update properties of this object
960
+ def update!(**args)
961
+ @match_type = args[:match_type] if args.key?(:match_type)
962
+ @or_filters_for_segment = args[:or_filters_for_segment] if args.key?(:or_filters_for_segment)
963
+ end
964
+ end
965
+
966
+ # The Pivot describes the pivot section in the request.
967
+ # The Pivot helps rearrange the information in the table for certain reports
968
+ # by pivoting your data on a second dimension.
969
+ class Pivot
970
+ include Google::Apis::Core::Hashable
971
+
972
+ # A list of dimensions to show as pivot columns.
973
+ # Corresponds to the JSON property `dimensions`
974
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
975
+ attr_accessor :dimensions
976
+
977
+ # Metrics to aggregate and return.
978
+ # Corresponds to the JSON property `metrics`
979
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
980
+ attr_accessor :metrics
981
+
982
+ # Specifies the maximum number of groups to return.
983
+ # The default value is 10, also the maximum value is 1,000.
984
+ # Corresponds to the JSON property `maxGroupCount`
985
+ # @return [Fixnum]
986
+ attr_accessor :max_group_count
987
+
988
+ # DimensionFilterClauses are logically combined with an `AND` operator: only
989
+ # data that is included by all these DimensionFilterClauses contributes to
990
+ # the values in this pivot region. Dimension filters can be used to restrict
991
+ # the columns shown in the pivot region. For example if you have
992
+ # `ga:browser` as the requested dimension in the pivot region, and you
993
+ # specify key filters to restrict `ga:browser` to only "IE" or "Firefox",
994
+ # then only those two browsers would show up as columns.
995
+ # Corresponds to the JSON property `dimensionFilterClauses`
996
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
997
+ attr_accessor :dimension_filter_clauses
998
+
999
+ # If k metrics were requested, then the response will contain some
1000
+ # data-dependent multiple of k columns in the report. E.g., if you pivoted
1001
+ # on the dimension `ga:browser` then you'd get k columns for "Firefox", k
1002
+ # columns for "IE", k columns for "Chrome", etc. The ordering of the groups
1003
+ # of columns is determined by descending order of "total" for the first of
1004
+ # the k values. Ties are broken by lexicographic ordering of the first
1005
+ # pivot dimension, then lexicographic ordering of the second pivot
1006
+ # dimension, and so on. E.g., if the totals for the first value for
1007
+ # Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns
1008
+ # would be Chrome, Firefox, IE.
1009
+ # The following let you choose which of the groups of k columns are
1010
+ # included in the response.
1011
+ # Corresponds to the JSON property `startGroup`
1012
+ # @return [Fixnum]
1013
+ attr_accessor :start_group
1014
+
1015
+ def initialize(**args)
1016
+ update!(**args)
1017
+ end
1018
+
1019
+ # Update properties of this object
1020
+ def update!(**args)
1021
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1022
+ @metrics = args[:metrics] if args.key?(:metrics)
1023
+ @max_group_count = args[:max_group_count] if args.key?(:max_group_count)
1024
+ @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
1025
+ @start_group = args[:start_group] if args.key?(:start_group)
1026
+ end
1027
+ end
1028
+
1029
+ # Used to return a list of metrics for a single DateRange / dimension
1030
+ # combination
1031
+ class DateRangeValues
1032
+ include Google::Apis::Core::Hashable
1033
+
1034
+ # Each value corresponds to each Metric in the request.
1035
+ # Corresponds to the JSON property `values`
1036
+ # @return [Array<String>]
1037
+ attr_accessor :values
1038
+
1039
+ # The values of each pivot region.
1040
+ # Corresponds to the JSON property `pivotValueRegions`
1041
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotValueRegion>]
1042
+ attr_accessor :pivot_value_regions
1043
+
1044
+ def initialize(**args)
1045
+ update!(**args)
1046
+ end
1047
+
1048
+ # Update properties of this object
1049
+ def update!(**args)
1050
+ @values = args[:values] if args.key?(:values)
1051
+ @pivot_value_regions = args[:pivot_value_regions] if args.key?(:pivot_value_regions)
1052
+ end
1053
+ end
1054
+
1055
+ # Represents a group of metric filters.
1056
+ # Set the operator value to specify how the filters are logically combined.
1057
+ class MetricFilterClause
1058
+ include Google::Apis::Core::Hashable
1059
+
1060
+ # The operator for combining multiple metric filters. If unspecified, it is
1061
+ # treated as an `OR`.
1062
+ # Corresponds to the JSON property `operator`
1063
+ # @return [String]
1064
+ attr_accessor :operator
1065
+
1066
+ # The repeated set of filters. They are logically combined based on the
1067
+ # operator specified.
1068
+ # Corresponds to the JSON property `filters`
1069
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilter>]
1070
+ attr_accessor :filters
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @operator = args[:operator] if args.key?(:operator)
1079
+ @filters = args[:filters] if args.key?(:filters)
1080
+ end
1081
+ end
1082
+
1083
+ # The segment definition, if the report needs to be segmented.
1084
+ # A Segment is a subset of the Analytics data. For example, of the entire
1085
+ # set of users, one Segment might be users from a particular country or city.
1086
+ class Segment
1087
+ include Google::Apis::Core::Hashable
1088
+
1089
+ # Dynamic segment definition for defining the segment within the request.
1090
+ # A segment can select users, sessions or both.
1091
+ # Corresponds to the JSON property `dynamicSegment`
1092
+ # @return [Google::Apis::AnalyticsreportingV4::DynamicSegment]
1093
+ attr_accessor :dynamic_segment
1094
+
1095
+ # The segment ID of a built-in or custom segment, for example `gaid::-3`.
1096
+ # Corresponds to the JSON property `segmentId`
1097
+ # @return [String]
1098
+ attr_accessor :segment_id
1099
+
1100
+ def initialize(**args)
1101
+ update!(**args)
1102
+ end
1103
+
1104
+ # Update properties of this object
1105
+ def update!(**args)
1106
+ @dynamic_segment = args[:dynamic_segment] if args.key?(:dynamic_segment)
1107
+ @segment_id = args[:segment_id] if args.key?(:segment_id)
1108
+ end
1109
+ end
1110
+
1111
+ # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
1112
+ # The start and end dates are specified in
1113
+ # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
1114
+ class DateRange
1115
+ include Google::Apis::Core::Hashable
1116
+
1117
+ # The start date for the query in the format `YYYY-MM-DD`.
1118
+ # Corresponds to the JSON property `startDate`
1119
+ # @return [String]
1120
+ attr_accessor :start_date
1121
+
1122
+ # The end date for the query in the format `YYYY-MM-DD`.
1123
+ # Corresponds to the JSON property `endDate`
1124
+ # @return [String]
1125
+ attr_accessor :end_date
1126
+
1127
+ def initialize(**args)
1128
+ update!(**args)
1129
+ end
1130
+
1131
+ # Update properties of this object
1132
+ def update!(**args)
1133
+ @start_date = args[:start_date] if args.key?(:start_date)
1134
+ @end_date = args[:end_date] if args.key?(:end_date)
1135
+ end
1136
+ end
1137
+
1138
+ # A row in the report.
1139
+ class ReportRow
1140
+ include Google::Apis::Core::Hashable
1141
+
1142
+ # List of requested dimensions.
1143
+ # Corresponds to the JSON property `dimensions`
1144
+ # @return [Array<String>]
1145
+ attr_accessor :dimensions
1146
+
1147
+ # List of metrics for each requested DateRange
1148
+ # Corresponds to the JSON property `metrics`
1149
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
1150
+ attr_accessor :metrics
1151
+
1152
+ def initialize(**args)
1153
+ update!(**args)
1154
+ end
1155
+
1156
+ # Update properties of this object
1157
+ def update!(**args)
1158
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1159
+ @metrics = args[:metrics] if args.key?(:metrics)
1160
+ end
1161
+ end
1162
+
1163
+ # Defines a cohort group.
1164
+ # For example:
1165
+ # "cohortGroup": `
1166
+ # "cohorts": [`
1167
+ # "name": "cohort 1",
1168
+ # "type": "FIRST_VISIT_DATE",
1169
+ # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
1170
+ # `,`
1171
+ # "name": "cohort 2"
1172
+ # "type": "FIRST_VISIT_DATE"
1173
+ # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
1174
+ # `]
1175
+ # `
1176
+ class CohortGroup
1177
+ include Google::Apis::Core::Hashable
1178
+
1179
+ # Enable Life Time Value (LTV). LTV measures lifetime value for users
1180
+ # acquired through different channels.
1181
+ # Please see:
1182
+ # [Cohort Analysis](https://support.google.com/analytics/answer/6074676) and
1183
+ # [Lifetime Value](https://support.google.com/analytics/answer/6182550)
1184
+ # If the value of lifetimeValue is false:
1185
+ # - The metric values are similar to the values in the web interface cohort
1186
+ # report.
1187
+ # - The cohort definition date ranges must be aligned to the calendar week
1188
+ # and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in
1189
+ # the cohort definition should be a Sunday and the `endDate` should be the
1190
+ # following Saturday, and for `ga:cohortNthMonth`, the `startDate`
1191
+ # should be the 1st of the month and `endDate` should be the last day
1192
+ # of the month.
1193
+ # When the lifetimeValue is true:
1194
+ # - The metric values will correspond to the values in the web interface
1195
+ # LifeTime value report.
1196
+ # - The Lifetime Value report shows you how user value (Revenue) and
1197
+ # engagement (Appviews, Goal Completions, Sessions, and Session Duration)
1198
+ # grow during the 90 days after a user is acquired.
1199
+ # - The metrics are calculated as a cumulative average per user per the time
1200
+ # increment.
1201
+ # - The cohort definition date ranges need not be aligned to the calendar
1202
+ # week and month boundaries.
1203
+ # - The `viewId` must be an
1204
+ # [app view ID](https://support.google.com/analytics/answer/2649553#
1205
+ # WebVersusAppViews)
1206
+ # Corresponds to the JSON property `lifetimeValue`
1207
+ # @return [Boolean]
1208
+ attr_accessor :lifetime_value
1209
+ alias_method :lifetime_value?, :lifetime_value
1210
+
1211
+ # The definition for the cohort.
1212
+ # Corresponds to the JSON property `cohorts`
1213
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Cohort>]
1214
+ attr_accessor :cohorts
1215
+
1216
+ def initialize(**args)
1217
+ update!(**args)
1218
+ end
1219
+
1220
+ # Update properties of this object
1221
+ def update!(**args)
1222
+ @lifetime_value = args[:lifetime_value] if args.key?(:lifetime_value)
1223
+ @cohorts = args[:cohorts] if args.key?(:cohorts)
1224
+ end
1225
+ end
1226
+
1227
+ # The main response class which holds the reports from the Reporting API
1228
+ # `batchGet` call.
1229
+ class GetReportsResponse
1230
+ include Google::Apis::Core::Hashable
1231
+
1232
+ # Responses corresponding to each of the request.
1233
+ # Corresponds to the JSON property `reports`
1234
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Report>]
1235
+ attr_accessor :reports
1236
+
1237
+ def initialize(**args)
1238
+ update!(**args)
1239
+ end
1240
+
1241
+ # Update properties of this object
1242
+ def update!(**args)
1243
+ @reports = args[:reports] if args.key?(:reports)
1244
+ end
1245
+ end
1246
+
1247
+ # Header for the metrics.
1248
+ class MetricHeaderEntry
1249
+ include Google::Apis::Core::Hashable
1250
+
1251
+ # The type of the metric, for example `INTEGER`.
1252
+ # Corresponds to the JSON property `type`
1253
+ # @return [String]
1254
+ attr_accessor :type
1255
+
1256
+ # The name of the header.
1257
+ # Corresponds to the JSON property `name`
1258
+ # @return [String]
1259
+ attr_accessor :name
1260
+
1261
+ def initialize(**args)
1262
+ update!(**args)
1263
+ end
1264
+
1265
+ # Update properties of this object
1266
+ def update!(**args)
1267
+ @type = args[:type] if args.key?(:type)
1268
+ @name = args[:name] if args.key?(:name)
1269
+ end
1270
+ end
1271
+
1272
+ # MetricFilter specifies the filter on a metric.
1273
+ class MetricFilter
1274
+ include Google::Apis::Core::Hashable
1275
+
1276
+ # The metric that will be filtered on. A metricFilter must contain a metric
1277
+ # name. A metric name can be an alias earlier defined as a metric or it can
1278
+ # also be a metric expression.
1279
+ # Corresponds to the JSON property `metricName`
1280
+ # @return [String]
1281
+ attr_accessor :metric_name
1282
+
1283
+ # Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the
1284
+ # comparisonValue, the default is `EQUAL`. If the operator is
1285
+ # `IS_MISSING`, checks if the metric is missing and would ignore the
1286
+ # comparisonValue.
1287
+ # Corresponds to the JSON property `operator`
1288
+ # @return [String]
1289
+ attr_accessor :operator
1290
+
1291
+ # The value to compare against.
1292
+ # Corresponds to the JSON property `comparisonValue`
1293
+ # @return [String]
1294
+ attr_accessor :comparison_value
1295
+
1296
+ # Logical `NOT` operator. If this boolean is set to true, then the matching
1297
+ # metric values will be excluded in the report. The default is false.
1298
+ # Corresponds to the JSON property `not`
1299
+ # @return [Boolean]
1300
+ attr_accessor :not
1301
+ alias_method :not?, :not
1302
+
1303
+ def initialize(**args)
1304
+ update!(**args)
1305
+ end
1306
+
1307
+ # Update properties of this object
1308
+ def update!(**args)
1309
+ @metric_name = args[:metric_name] if args.key?(:metric_name)
1310
+ @operator = args[:operator] if args.key?(:operator)
1311
+ @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
1312
+ @not = args[:not] if args.key?(:not)
1313
+ end
1314
+ end
1315
+
1316
+ # A dimension in the request.
1317
+ class Dimension
1318
+ include Google::Apis::Core::Hashable
1319
+
1320
+ # If non-empty, we place dimension values into buckets after string to
1321
+ # int64. Dimension values that are not the string representation of an
1322
+ # integral value will be converted to zero. The bucket values have to be in
1323
+ # increasing order. Each bucket is closed on the lower end, and open on the
1324
+ # upper end. The "first" bucket includes all values less than the first
1325
+ # boundary, the "last" bucket includes all values up to infinity. Dimension
1326
+ # values that fall in a bucket get transformed to a new dimension value. For
1327
+ # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
1328
+ # following buckets:
1329
+ # - bucket #1: values < 0, dimension value "<0"
1330
+ # - bucket #2: values in [0,1), dimension value "0"
1331
+ # - bucket #3: values in [1,3), dimension value "1-2"
1332
+ # - bucket #4: values in [3,4), dimension value "3"
1333
+ # - bucket #5: values in [4,7), dimension value "4-6"
1334
+ # - bucket #6: values >= 7, dimension value "7+"
1335
+ # NOTE: If you are applying histogram mutation on any dimension, and using
1336
+ # that dimension in sort, you will want to use the sort type
1337
+ # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
1338
+ # will be sorted according to dictionary
1339
+ # (lexicographic) order. For example the ascending dictionary order is:
1340
+ # "<50", "1001+", "121-1000", "50-120"
1341
+ # And the ascending `HISTOGRAM_BUCKET` order is:
1342
+ # "<50", "50-120", "121-1000", "1001+"
1343
+ # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
1344
+ # for a histogram-mutated dimension.
1345
+ # Corresponds to the JSON property `histogramBuckets`
1346
+ # @return [Array<String>]
1347
+ attr_accessor :histogram_buckets
1348
+
1349
+ # Name of the dimension to fetch, for example `ga:browser`.
1350
+ # Corresponds to the JSON property `name`
1351
+ # @return [String]
1352
+ attr_accessor :name
1353
+
1354
+ def initialize(**args)
1355
+ update!(**args)
1356
+ end
1357
+
1358
+ # Update properties of this object
1359
+ def update!(**args)
1360
+ @histogram_buckets = args[:histogram_buckets] if args.key?(:histogram_buckets)
1361
+ @name = args[:name] if args.key?(:name)
1362
+ end
1363
+ end
1364
+
1365
+ # The metric values in the pivot region.
1366
+ class PivotValueRegion
1367
+ include Google::Apis::Core::Hashable
1368
+
1369
+ # The values of the metrics in each of the pivot regions.
1370
+ # Corresponds to the JSON property `values`
1371
+ # @return [Array<String>]
1372
+ attr_accessor :values
1373
+
1374
+ def initialize(**args)
1375
+ update!(**args)
1376
+ end
1377
+
1378
+ # Update properties of this object
1379
+ def update!(**args)
1380
+ @values = args[:values] if args.key?(:values)
1381
+ end
1382
+ end
1383
+ end
1384
+ end
1385
+ end