google-apis-airquality_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1004 @@
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 AirqualityV1
24
+
25
+ # The emission sources and health effects of a given pollutant.
26
+ class AdditionalInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Text representing the pollutant's main health effects.
30
+ # Corresponds to the JSON property `effects`
31
+ # @return [String]
32
+ attr_accessor :effects
33
+
34
+ # Text representing the pollutant's main emission sources.
35
+ # Corresponds to the JSON property `sources`
36
+ # @return [String]
37
+ attr_accessor :sources
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @effects = args[:effects] if args.key?(:effects)
46
+ @sources = args[:sources] if args.key?(:sources)
47
+ end
48
+ end
49
+
50
+ # The basic object for representing different air quality metrics. When brought
51
+ # together, these metrics provide a snapshot about the current air quality
52
+ # conditions. There are multiple indexes in the world serving different purposes
53
+ # and groups interested in measuring different aspects of air quality.
54
+ class AirQualityIndex
55
+ include Google::Apis::Core::Hashable
56
+
57
+ # The index's numeric score. Examples: 10, 100. The value is not normalized and
58
+ # should only be interpreted in the context of its related air-quality index.
59
+ # For non-numeric indexes, this field will not be returned. Note: This field
60
+ # should be used for calculations, graph display, etc. For displaying the index
61
+ # score, you should use the AQI display field.
62
+ # Corresponds to the JSON property `aqi`
63
+ # @return [Fixnum]
64
+ attr_accessor :aqi
65
+
66
+ # Textual representation of the index numeric score, that may include prefix or
67
+ # suffix symbols, which usually represents the worst index score. Example: >100
68
+ # or 10+. Note: This field should be used when you want to display the index
69
+ # score. For non-numeric indexes, this field is empty.
70
+ # Corresponds to the JSON property `aqiDisplay`
71
+ # @return [String]
72
+ attr_accessor :aqi_display
73
+
74
+ # Textual classification of the index numeric score interpretation. For example:
75
+ # "Excellent air quality".
76
+ # Corresponds to the JSON property `category`
77
+ # @return [String]
78
+ attr_accessor :category
79
+
80
+ # The index's code. This field represents the index for programming purposes by
81
+ # using snake case instead of spaces. Examples: "uaqi", "fra_atmo".
82
+ # Corresponds to the JSON property `code`
83
+ # @return [String]
84
+ attr_accessor :code
85
+
86
+ # Represents a color in the RGBA color space. This representation is designed
87
+ # for simplicity of conversion to and from color representations in various
88
+ # languages over compactness. For example, the fields of this representation can
89
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
90
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
91
+ # method in iOS; and, with just a little work, it can be easily formatted into a
92
+ # CSS `rgba()` string in JavaScript. This reference page doesn't have
93
+ # information about the absolute color space that should be used to interpret
94
+ # the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default,
95
+ # applications should assume the sRGB color space. When color equality needs to
96
+ # be decided, implementations, unless documented otherwise, treat two colors as
97
+ # equal if all their red, green, blue, and alpha values each differ by at most `
98
+ # 1e-5`. Example (Java): import com.google.type.Color; // ... public static java.
99
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
100
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
101
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
102
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
103
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
104
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
105
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
106
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
107
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
108
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
109
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
110
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
111
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
112
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
113
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
114
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
115
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
116
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
117
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
118
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
119
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
120
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
121
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
122
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
123
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
124
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
125
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
126
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
127
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
128
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
129
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
130
+ # / ...
131
+ # Corresponds to the JSON property `color`
132
+ # @return [Google::Apis::AirqualityV1::Color]
133
+ attr_accessor :color
134
+
135
+ # A human readable representation of the index name. Example: "AQI (US)"
136
+ # Corresponds to the JSON property `displayName`
137
+ # @return [String]
138
+ attr_accessor :display_name
139
+
140
+ # The chemical symbol of the dominant pollutant. For example: "CO".
141
+ # Corresponds to the JSON property `dominantPollutant`
142
+ # @return [String]
143
+ attr_accessor :dominant_pollutant
144
+
145
+ def initialize(**args)
146
+ update!(**args)
147
+ end
148
+
149
+ # Update properties of this object
150
+ def update!(**args)
151
+ @aqi = args[:aqi] if args.key?(:aqi)
152
+ @aqi_display = args[:aqi_display] if args.key?(:aqi_display)
153
+ @category = args[:category] if args.key?(:category)
154
+ @code = args[:code] if args.key?(:code)
155
+ @color = args[:color] if args.key?(:color)
156
+ @display_name = args[:display_name] if args.key?(:display_name)
157
+ @dominant_pollutant = args[:dominant_pollutant] if args.key?(:dominant_pollutant)
158
+ end
159
+ end
160
+
161
+ # Represents a color in the RGBA color space. This representation is designed
162
+ # for simplicity of conversion to and from color representations in various
163
+ # languages over compactness. For example, the fields of this representation can
164
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
165
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
166
+ # method in iOS; and, with just a little work, it can be easily formatted into a
167
+ # CSS `rgba()` string in JavaScript. This reference page doesn't have
168
+ # information about the absolute color space that should be used to interpret
169
+ # the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default,
170
+ # applications should assume the sRGB color space. When color equality needs to
171
+ # be decided, implementations, unless documented otherwise, treat two colors as
172
+ # equal if all their red, green, blue, and alpha values each differ by at most `
173
+ # 1e-5`. Example (Java): import com.google.type.Color; // ... public static java.
174
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
175
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
176
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
177
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
178
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
179
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
180
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
181
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
182
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
183
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
184
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
185
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
186
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
187
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
188
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
189
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
190
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
191
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
192
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
193
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
194
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
195
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
196
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
197
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
198
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
199
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
200
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
201
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
202
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
203
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
204
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
205
+ # / ...
206
+ class Color
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # The fraction of this color that should be applied to the pixel. That is, the
210
+ # final pixel color is defined by the equation: `pixel color = alpha * (this
211
+ # color) + (1.0 - alpha) * (background color)` This means that a value of 1.0
212
+ # corresponds to a solid color, whereas a value of 0.0 corresponds to a
213
+ # completely transparent color. This uses a wrapper message rather than a simple
214
+ # float scalar so that it is possible to distinguish between a default value and
215
+ # the value being unset. If omitted, this color object is rendered as a solid
216
+ # color (as if the alpha value had been explicitly given a value of 1.0).
217
+ # Corresponds to the JSON property `alpha`
218
+ # @return [Float]
219
+ attr_accessor :alpha
220
+
221
+ # The amount of blue in the color as a value in the interval [0, 1].
222
+ # Corresponds to the JSON property `blue`
223
+ # @return [Float]
224
+ attr_accessor :blue
225
+
226
+ # The amount of green in the color as a value in the interval [0, 1].
227
+ # Corresponds to the JSON property `green`
228
+ # @return [Float]
229
+ attr_accessor :green
230
+
231
+ # The amount of red in the color as a value in the interval [0, 1].
232
+ # Corresponds to the JSON property `red`
233
+ # @return [Float]
234
+ attr_accessor :red
235
+
236
+ def initialize(**args)
237
+ update!(**args)
238
+ end
239
+
240
+ # Update properties of this object
241
+ def update!(**args)
242
+ @alpha = args[:alpha] if args.key?(:alpha)
243
+ @blue = args[:blue] if args.key?(:blue)
244
+ @green = args[:green] if args.key?(:green)
245
+ @red = args[:red] if args.key?(:red)
246
+ end
247
+ end
248
+
249
+ # The concentration of a given pollutant in the air.
250
+ class Concentration
251
+ include Google::Apis::Core::Hashable
252
+
253
+ # Units for measuring this pollutant concentration.
254
+ # Corresponds to the JSON property `units`
255
+ # @return [String]
256
+ attr_accessor :units
257
+
258
+ # Value of pollutant concentration.
259
+ # Corresponds to the JSON property `value`
260
+ # @return [Float]
261
+ attr_accessor :value
262
+
263
+ def initialize(**args)
264
+ update!(**args)
265
+ end
266
+
267
+ # Update properties of this object
268
+ def update!(**args)
269
+ @units = args[:units] if args.key?(:units)
270
+ @value = args[:value] if args.key?(:value)
271
+ end
272
+ end
273
+
274
+ # Expresses a 'country/region to AQI' relationship. Pairs a country/region with
275
+ # a desired AQI so that air quality data that is required for that country/
276
+ # region will be displayed according to the chosen AQI.
277
+ class CustomLocalAqi
278
+ include Google::Apis::Core::Hashable
279
+
280
+ # The AQI to associate the country/region with. Value should be a [valid index](/
281
+ # maps/documentation/air-quality/laqis) code.
282
+ # Corresponds to the JSON property `aqi`
283
+ # @return [String]
284
+ attr_accessor :aqi
285
+
286
+ # The country/region requiring the custom AQI. Value should be provided using [
287
+ # ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
288
+ # Corresponds to the JSON property `regionCode`
289
+ # @return [String]
290
+ attr_accessor :region_code
291
+
292
+ def initialize(**args)
293
+ update!(**args)
294
+ end
295
+
296
+ # Update properties of this object
297
+ def update!(**args)
298
+ @aqi = args[:aqi] if args.key?(:aqi)
299
+ @region_code = args[:region_code] if args.key?(:region_code)
300
+ end
301
+ end
302
+
303
+ # Health recommendations for different population groups in a free text format.
304
+ # The recommendations are derived from their associated air quality conditions.
305
+ class HealthRecommendations
306
+ include Google::Apis::Core::Hashable
307
+
308
+ # Sports and other strenuous outdoor activities.
309
+ # Corresponds to the JSON property `athletes`
310
+ # @return [String]
311
+ attr_accessor :athletes
312
+
313
+ # Younger populations including children, toddlers, and babies.
314
+ # Corresponds to the JSON property `children`
315
+ # @return [String]
316
+ attr_accessor :children
317
+
318
+ # Retirees and people older than the general population.
319
+ # Corresponds to the JSON property `elderly`
320
+ # @return [String]
321
+ attr_accessor :elderly
322
+
323
+ # No specific sensitivities.
324
+ # Corresponds to the JSON property `generalPopulation`
325
+ # @return [String]
326
+ attr_accessor :general_population
327
+
328
+ # Heart and circulatory system diseases.
329
+ # Corresponds to the JSON property `heartDiseasePopulation`
330
+ # @return [String]
331
+ attr_accessor :heart_disease_population
332
+
333
+ # Respiratory related problems and asthma suffers.
334
+ # Corresponds to the JSON property `lungDiseasePopulation`
335
+ # @return [String]
336
+ attr_accessor :lung_disease_population
337
+
338
+ # Women at all stages of pregnancy.
339
+ # Corresponds to the JSON property `pregnantWomen`
340
+ # @return [String]
341
+ attr_accessor :pregnant_women
342
+
343
+ def initialize(**args)
344
+ update!(**args)
345
+ end
346
+
347
+ # Update properties of this object
348
+ def update!(**args)
349
+ @athletes = args[:athletes] if args.key?(:athletes)
350
+ @children = args[:children] if args.key?(:children)
351
+ @elderly = args[:elderly] if args.key?(:elderly)
352
+ @general_population = args[:general_population] if args.key?(:general_population)
353
+ @heart_disease_population = args[:heart_disease_population] if args.key?(:heart_disease_population)
354
+ @lung_disease_population = args[:lung_disease_population] if args.key?(:lung_disease_population)
355
+ @pregnant_women = args[:pregnant_women] if args.key?(:pregnant_women)
356
+ end
357
+ end
358
+
359
+ # Contains the air quality information for each hour in the requested range. For
360
+ # example, if the request is for 48 hours of history there will be 48 elements
361
+ # of hourly info.
362
+ class HourInfo
363
+ include Google::Apis::Core::Hashable
364
+
365
+ # A rounded down timestamp indicating the time the data refers to in RFC3339 UTC
366
+ # "Zulu" format, with nanosecond resolution and up to nine fractional digits.
367
+ # For example: "2014-10-02T15:00:00Z".
368
+ # Corresponds to the JSON property `dateTime`
369
+ # @return [String]
370
+ attr_accessor :date_time
371
+
372
+ # Health recommendations for different population groups in a free text format.
373
+ # The recommendations are derived from their associated air quality conditions.
374
+ # Corresponds to the JSON property `healthRecommendations`
375
+ # @return [Google::Apis::AirqualityV1::HealthRecommendations]
376
+ attr_accessor :health_recommendations
377
+
378
+ # Based on the request parameters, this list will include (up to) two air
379
+ # quality indexes: - Universal AQI. Will be returned if the universalAqi boolean
380
+ # is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra
381
+ # computation is specified.
382
+ # Corresponds to the JSON property `indexes`
383
+ # @return [Array<Google::Apis::AirqualityV1::AirQualityIndex>]
384
+ attr_accessor :indexes
385
+
386
+ # A list of pollutants affecting the location specified in the request. Note:
387
+ # This field will be returned only for requests that specified one or more of
388
+ # the following extra computations: POLLUTANT_ADDITIONAL_INFO,
389
+ # DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.
390
+ # Corresponds to the JSON property `pollutants`
391
+ # @return [Array<Google::Apis::AirqualityV1::Pollutant>]
392
+ attr_accessor :pollutants
393
+
394
+ def initialize(**args)
395
+ update!(**args)
396
+ end
397
+
398
+ # Update properties of this object
399
+ def update!(**args)
400
+ @date_time = args[:date_time] if args.key?(:date_time)
401
+ @health_recommendations = args[:health_recommendations] if args.key?(:health_recommendations)
402
+ @indexes = args[:indexes] if args.key?(:indexes)
403
+ @pollutants = args[:pollutants] if args.key?(:pollutants)
404
+ end
405
+ end
406
+
407
+ # Contains the air quality information for each hour in the requested range. For
408
+ # example, if the request is for 48 hours of forecast there will be 48 elements
409
+ # of hourly forecasts.
410
+ class HourlyForecast
411
+ include Google::Apis::Core::Hashable
412
+
413
+ # A rounded down timestamp indicating the time (hour) the data refers to in
414
+ # RFC3339 UTC "Zulu" format. For example: "2014-10-02T15:00:00Z".
415
+ # Corresponds to the JSON property `dateTime`
416
+ # @return [String]
417
+ attr_accessor :date_time
418
+
419
+ # Health recommendations for different population groups in a free text format.
420
+ # The recommendations are derived from their associated air quality conditions.
421
+ # Corresponds to the JSON property `healthRecommendations`
422
+ # @return [Google::Apis::AirqualityV1::HealthRecommendations]
423
+ attr_accessor :health_recommendations
424
+
425
+ # Based on the request parameters, this list will include (up to) two air
426
+ # quality indexes: - Universal AQI. Will be returned if the `universal_aqi`
427
+ # boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra
428
+ # computation is specified.
429
+ # Corresponds to the JSON property `indexes`
430
+ # @return [Array<Google::Apis::AirqualityV1::AirQualityIndex>]
431
+ attr_accessor :indexes
432
+
433
+ # A list of pollutants affecting the location specified in the request. Note:
434
+ # This field will be returned only for requests that specified one or more of
435
+ # the following extra computations: POLLUTANT_ADDITIONAL_INFO,
436
+ # DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.
437
+ # Corresponds to the JSON property `pollutants`
438
+ # @return [Array<Google::Apis::AirqualityV1::Pollutant>]
439
+ attr_accessor :pollutants
440
+
441
+ def initialize(**args)
442
+ update!(**args)
443
+ end
444
+
445
+ # Update properties of this object
446
+ def update!(**args)
447
+ @date_time = args[:date_time] if args.key?(:date_time)
448
+ @health_recommendations = args[:health_recommendations] if args.key?(:health_recommendations)
449
+ @indexes = args[:indexes] if args.key?(:indexes)
450
+ @pollutants = args[:pollutants] if args.key?(:pollutants)
451
+ end
452
+ end
453
+
454
+ # Message that represents an arbitrary HTTP body. It should only be used for
455
+ # payload formats that can't be represented as JSON, such as raw binary or an
456
+ # HTML page. This message can be used both in streaming and non-streaming API
457
+ # methods in the request as well as the response. It can be used as a top-level
458
+ # request field, which is convenient if one wants to extract parameters from
459
+ # either the URL or HTTP template into the request fields and also want access
460
+ # to the raw HTTP body. Example: message GetResourceRequest ` // A unique
461
+ # request id. string request_id = 1; // The raw HTTP body is bound to this field.
462
+ # google.api.HttpBody http_body = 2; ` service ResourceService ` rpc
463
+ # GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc
464
+ # UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); ` Example
465
+ # with streaming methods: service CaldavService ` rpc GetCalendar(stream google.
466
+ # api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream
467
+ # google.api.HttpBody) returns (stream google.api.HttpBody); ` Use of this type
468
+ # only changes how the request and response bodies are handled, all other
469
+ # features will continue to work unchanged.
470
+ class HttpBody
471
+ include Google::Apis::Core::Hashable
472
+
473
+ # The HTTP Content-Type header value specifying the content type of the body.
474
+ # Corresponds to the JSON property `contentType`
475
+ # @return [String]
476
+ attr_accessor :content_type
477
+
478
+ # The HTTP request/response body as raw binary.
479
+ # Corresponds to the JSON property `data`
480
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
481
+ # @return [String]
482
+ attr_accessor :data
483
+
484
+ # Application specific response metadata. Must be set in the first response for
485
+ # streaming APIs.
486
+ # Corresponds to the JSON property `extensions`
487
+ # @return [Array<Hash<String,Object>>]
488
+ attr_accessor :extensions
489
+
490
+ def initialize(**args)
491
+ update!(**args)
492
+ end
493
+
494
+ # Update properties of this object
495
+ def update!(**args)
496
+ @content_type = args[:content_type] if args.key?(:content_type)
497
+ @data = args[:data] if args.key?(:data)
498
+ @extensions = args[:extensions] if args.key?(:extensions)
499
+ end
500
+ end
501
+
502
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
503
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
504
+ # When the start equals the end, the interval is empty (matches no time). When
505
+ # both start and end are unspecified, the interval matches any time.
506
+ class Interval
507
+ include Google::Apis::Core::Hashable
508
+
509
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
510
+ # this interval will have to be before the end.
511
+ # Corresponds to the JSON property `endTime`
512
+ # @return [String]
513
+ attr_accessor :end_time
514
+
515
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
516
+ # this interval will have to be the same or after the start.
517
+ # Corresponds to the JSON property `startTime`
518
+ # @return [String]
519
+ attr_accessor :start_time
520
+
521
+ def initialize(**args)
522
+ update!(**args)
523
+ end
524
+
525
+ # Update properties of this object
526
+ def update!(**args)
527
+ @end_time = args[:end_time] if args.key?(:end_time)
528
+ @start_time = args[:start_time] if args.key?(:start_time)
529
+ end
530
+ end
531
+
532
+ # An object that represents a latitude/longitude pair. This is expressed as a
533
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
534
+ # specified otherwise, this object must conform to the WGS84 standard. Values
535
+ # must be within normalized ranges.
536
+ class LatLng
537
+ include Google::Apis::Core::Hashable
538
+
539
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
540
+ # Corresponds to the JSON property `latitude`
541
+ # @return [Float]
542
+ attr_accessor :latitude
543
+
544
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
545
+ # Corresponds to the JSON property `longitude`
546
+ # @return [Float]
547
+ attr_accessor :longitude
548
+
549
+ def initialize(**args)
550
+ update!(**args)
551
+ end
552
+
553
+ # Update properties of this object
554
+ def update!(**args)
555
+ @latitude = args[:latitude] if args.key?(:latitude)
556
+ @longitude = args[:longitude] if args.key?(:longitude)
557
+ end
558
+ end
559
+
560
+ # The request definition of the air quality current conditions.
561
+ class LookupCurrentConditionsRequest
562
+ include Google::Apis::Core::Hashable
563
+
564
+ # Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/
565
+ # region with a desired AQI so that air quality data that is required for that
566
+ # country/region will be displayed according to the chosen AQI. This parameter
567
+ # can be used to specify a non-default AQI for a given country, for example, to
568
+ # get the US EPA index for Canada rather than the default index for Canada.
569
+ # Corresponds to the JSON property `customLocalAqis`
570
+ # @return [Array<Google::Apis::AirqualityV1::CustomLocalAqi>]
571
+ attr_accessor :custom_local_aqis
572
+
573
+ # Optional. Additional features that can be optionally enabled. Specifying extra
574
+ # computations will result in the relevant elements and fields to be returned in
575
+ # the response.
576
+ # Corresponds to the JSON property `extraComputations`
577
+ # @return [Array<String>]
578
+ attr_accessor :extra_computations
579
+
580
+ # Optional. Allows the client to choose the language for the response. If data
581
+ # cannot be provided for that language the API uses the closest match. Allowed
582
+ # values rely on the IETF standard. Default value is en.
583
+ # Corresponds to the JSON property `languageCode`
584
+ # @return [String]
585
+ attr_accessor :language_code
586
+
587
+ # An object that represents a latitude/longitude pair. This is expressed as a
588
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
589
+ # specified otherwise, this object must conform to the WGS84 standard. Values
590
+ # must be within normalized ranges.
591
+ # Corresponds to the JSON property `location`
592
+ # @return [Google::Apis::AirqualityV1::LatLng]
593
+ attr_accessor :location
594
+
595
+ # Optional. Determines the color palette used for data provided by the '
596
+ # Universal Air Quality Index' (UAQI). This color palette is relevant just for
597
+ # UAQI, other AQIs have a predetermined color palette that can't be controlled.
598
+ # Corresponds to the JSON property `uaqiColorPalette`
599
+ # @return [String]
600
+ attr_accessor :uaqi_color_palette
601
+
602
+ # Optional. If set to true, the Universal AQI will be included in the 'indexes'
603
+ # field of the response. Default value is true.
604
+ # Corresponds to the JSON property `universalAqi`
605
+ # @return [Boolean]
606
+ attr_accessor :universal_aqi
607
+ alias_method :universal_aqi?, :universal_aqi
608
+
609
+ def initialize(**args)
610
+ update!(**args)
611
+ end
612
+
613
+ # Update properties of this object
614
+ def update!(**args)
615
+ @custom_local_aqis = args[:custom_local_aqis] if args.key?(:custom_local_aqis)
616
+ @extra_computations = args[:extra_computations] if args.key?(:extra_computations)
617
+ @language_code = args[:language_code] if args.key?(:language_code)
618
+ @location = args[:location] if args.key?(:location)
619
+ @uaqi_color_palette = args[:uaqi_color_palette] if args.key?(:uaqi_color_palette)
620
+ @universal_aqi = args[:universal_aqi] if args.key?(:universal_aqi)
621
+ end
622
+ end
623
+
624
+ #
625
+ class LookupCurrentConditionsResponse
626
+ include Google::Apis::Core::Hashable
627
+
628
+ # A rounded down timestamp in RFC3339 UTC "Zulu" format, with nanosecond
629
+ # resolution and up to nine fractional digits. For example: "2014-10-02T15:00:
630
+ # 00Z".
631
+ # Corresponds to the JSON property `dateTime`
632
+ # @return [String]
633
+ attr_accessor :date_time
634
+
635
+ # Health recommendations for different population groups in a free text format.
636
+ # The recommendations are derived from their associated air quality conditions.
637
+ # Corresponds to the JSON property `healthRecommendations`
638
+ # @return [Google::Apis::AirqualityV1::HealthRecommendations]
639
+ attr_accessor :health_recommendations
640
+
641
+ # Based on the request parameters, this list will include (up to) two air
642
+ # quality indexes: - Universal AQI. Will be returned if the universalAqi boolean
643
+ # is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra
644
+ # computation is specified.
645
+ # Corresponds to the JSON property `indexes`
646
+ # @return [Array<Google::Apis::AirqualityV1::AirQualityIndex>]
647
+ attr_accessor :indexes
648
+
649
+ # A list of pollutants affecting the location specified in the request. Note:
650
+ # This field will be returned only for requests that specified one or more of
651
+ # the following extra computations: POLLUTANT_ADDITIONAL_INFO,
652
+ # DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.
653
+ # Corresponds to the JSON property `pollutants`
654
+ # @return [Array<Google::Apis::AirqualityV1::Pollutant>]
655
+ attr_accessor :pollutants
656
+
657
+ # The ISO_3166-1 alpha-2 code of the country/region corresponding to the
658
+ # location provided in the request. This field might be omitted from the
659
+ # response if the location provided in the request resides in a disputed
660
+ # territory.
661
+ # Corresponds to the JSON property `regionCode`
662
+ # @return [String]
663
+ attr_accessor :region_code
664
+
665
+ def initialize(**args)
666
+ update!(**args)
667
+ end
668
+
669
+ # Update properties of this object
670
+ def update!(**args)
671
+ @date_time = args[:date_time] if args.key?(:date_time)
672
+ @health_recommendations = args[:health_recommendations] if args.key?(:health_recommendations)
673
+ @indexes = args[:indexes] if args.key?(:indexes)
674
+ @pollutants = args[:pollutants] if args.key?(:pollutants)
675
+ @region_code = args[:region_code] if args.key?(:region_code)
676
+ end
677
+ end
678
+
679
+ # The request object of the air quality forecast API.
680
+ class LookupForecastRequest
681
+ include Google::Apis::Core::Hashable
682
+
683
+ # Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/
684
+ # region with a desired AQI so that air quality data that is required for that
685
+ # country/region will be displayed according to the chosen AQI. This parameter
686
+ # can be used to specify a non-default AQI for a given country, for example, to
687
+ # get the US EPA index for Canada rather than the default index for Canada.
688
+ # Corresponds to the JSON property `customLocalAqis`
689
+ # @return [Array<Google::Apis::AirqualityV1::CustomLocalAqi>]
690
+ attr_accessor :custom_local_aqis
691
+
692
+ # A timestamp for which to return the data for a specific point in time. The
693
+ # timestamp is rounded to the previous exact hour. Note: this will return hourly
694
+ # data for the requested timestamp only (i.e. a single hourly info element). For
695
+ # example, a request sent where the date_time parameter is set to 2023-01-03T11:
696
+ # 05:49Z will be rounded down to 2023-01-03T11:00:00Z.
697
+ # Corresponds to the JSON property `dateTime`
698
+ # @return [String]
699
+ attr_accessor :date_time
700
+
701
+ # Optional. Additional features that can be optionally enabled. Specifying extra
702
+ # computations will result in the relevant elements and fields to be returned in
703
+ # the response.
704
+ # Corresponds to the JSON property `extraComputations`
705
+ # @return [Array<String>]
706
+ attr_accessor :extra_computations
707
+
708
+ # Optional. Allows the client to choose the language for the response. If data
709
+ # cannot be provided for that language the API uses the closest match. Allowed
710
+ # values rely on the IETF standard (default = 'en').
711
+ # Corresponds to the JSON property `languageCode`
712
+ # @return [String]
713
+ attr_accessor :language_code
714
+
715
+ # An object that represents a latitude/longitude pair. This is expressed as a
716
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
717
+ # specified otherwise, this object must conform to the WGS84 standard. Values
718
+ # must be within normalized ranges.
719
+ # Corresponds to the JSON property `location`
720
+ # @return [Google::Apis::AirqualityV1::LatLng]
721
+ attr_accessor :location
722
+
723
+ # Optional. The maximum number of hourly info records to return per page (
724
+ # default = 24).
725
+ # Corresponds to the JSON property `pageSize`
726
+ # @return [Fixnum]
727
+ attr_accessor :page_size
728
+
729
+ # Optional. A page token received from a previous forecast call. It is used to
730
+ # retrieve the subsequent page.
731
+ # Corresponds to the JSON property `pageToken`
732
+ # @return [String]
733
+ attr_accessor :page_token
734
+
735
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
736
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
737
+ # When the start equals the end, the interval is empty (matches no time). When
738
+ # both start and end are unspecified, the interval matches any time.
739
+ # Corresponds to the JSON property `period`
740
+ # @return [Google::Apis::AirqualityV1::Interval]
741
+ attr_accessor :period
742
+
743
+ # Optional. Determines the color palette used for data provided by the '
744
+ # Universal Air Quality Index' (UAQI). This color palette is relevant just for
745
+ # UAQI, other AQIs have a predetermined color palette that can't be controlled.
746
+ # Corresponds to the JSON property `uaqiColorPalette`
747
+ # @return [String]
748
+ attr_accessor :uaqi_color_palette
749
+
750
+ # Optional. If set to true, the Universal AQI will be included in the 'indexes'
751
+ # field of the response (default = true).
752
+ # Corresponds to the JSON property `universalAqi`
753
+ # @return [Boolean]
754
+ attr_accessor :universal_aqi
755
+ alias_method :universal_aqi?, :universal_aqi
756
+
757
+ def initialize(**args)
758
+ update!(**args)
759
+ end
760
+
761
+ # Update properties of this object
762
+ def update!(**args)
763
+ @custom_local_aqis = args[:custom_local_aqis] if args.key?(:custom_local_aqis)
764
+ @date_time = args[:date_time] if args.key?(:date_time)
765
+ @extra_computations = args[:extra_computations] if args.key?(:extra_computations)
766
+ @language_code = args[:language_code] if args.key?(:language_code)
767
+ @location = args[:location] if args.key?(:location)
768
+ @page_size = args[:page_size] if args.key?(:page_size)
769
+ @page_token = args[:page_token] if args.key?(:page_token)
770
+ @period = args[:period] if args.key?(:period)
771
+ @uaqi_color_palette = args[:uaqi_color_palette] if args.key?(:uaqi_color_palette)
772
+ @universal_aqi = args[:universal_aqi] if args.key?(:universal_aqi)
773
+ end
774
+ end
775
+
776
+ # The response object of the air quality forecast API.
777
+ class LookupForecastResponse
778
+ include Google::Apis::Core::Hashable
779
+
780
+ # Optional. Contains the air quality information for each hour in the requested
781
+ # range. For example, if the request is for 48 hours of forecast there will be
782
+ # 48 elements of hourly forecasts.
783
+ # Corresponds to the JSON property `hourlyForecasts`
784
+ # @return [Array<Google::Apis::AirqualityV1::HourlyForecast>]
785
+ attr_accessor :hourly_forecasts
786
+
787
+ # Optional. The token to retrieve the next page.
788
+ # Corresponds to the JSON property `nextPageToken`
789
+ # @return [String]
790
+ attr_accessor :next_page_token
791
+
792
+ # Optional. The ISO_3166-1 alpha-2 code of the country/region corresponding to
793
+ # the location provided in the request. This field might be omitted from the
794
+ # response if the location provided in the request resides in a disputed
795
+ # territory.
796
+ # Corresponds to the JSON property `regionCode`
797
+ # @return [String]
798
+ attr_accessor :region_code
799
+
800
+ def initialize(**args)
801
+ update!(**args)
802
+ end
803
+
804
+ # Update properties of this object
805
+ def update!(**args)
806
+ @hourly_forecasts = args[:hourly_forecasts] if args.key?(:hourly_forecasts)
807
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
808
+ @region_code = args[:region_code] if args.key?(:region_code)
809
+ end
810
+ end
811
+
812
+ # The request object of the air quality history API.
813
+ class LookupHistoryRequest
814
+ include Google::Apis::Core::Hashable
815
+
816
+ # Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/
817
+ # region with a desired AQI so that air quality data that is required for that
818
+ # country/region will be displayed according to the chosen AQI. This parameter
819
+ # can be used to specify a non-default AQI for a given country, for example, to
820
+ # get the US EPA index for Canada rather than the default index for Canada.
821
+ # Corresponds to the JSON property `customLocalAqis`
822
+ # @return [Array<Google::Apis::AirqualityV1::CustomLocalAqi>]
823
+ attr_accessor :custom_local_aqis
824
+
825
+ # A timestamp for which to return historical data. The timestamp is rounded to
826
+ # the previous exact hour. Note: this will return hourly data for the requested
827
+ # timestamp only (i.e. a single hourly info element). For example, a request
828
+ # sent where the dateTime parameter is set to 2023-01-03T11:05:49Z will be
829
+ # rounded down to 2023-01-03T11:00:00Z. A timestamp in RFC3339 UTC "Zulu" format,
830
+ # with nanosecond resolution and up to nine fractional digits. Examples: "2014-
831
+ # 10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
832
+ # Corresponds to the JSON property `dateTime`
833
+ # @return [String]
834
+ attr_accessor :date_time
835
+
836
+ # Optional. Additional features that can be optionally enabled. Specifying extra
837
+ # computations will result in the relevant elements and fields to be returned in
838
+ # the response.
839
+ # Corresponds to the JSON property `extraComputations`
840
+ # @return [Array<String>]
841
+ attr_accessor :extra_computations
842
+
843
+ # Number from 1 to 720 that indicates the hours range for the request. For
844
+ # example: A value of 48 will yield data from the last 48 hours.
845
+ # Corresponds to the JSON property `hours`
846
+ # @return [Fixnum]
847
+ attr_accessor :hours
848
+
849
+ # Optional. Allows the client to choose the language for the response. If data
850
+ # cannot be provided for that language the API uses the closest match. Allowed
851
+ # values rely on the IETF standard. Default value is en.
852
+ # Corresponds to the JSON property `languageCode`
853
+ # @return [String]
854
+ attr_accessor :language_code
855
+
856
+ # An object that represents a latitude/longitude pair. This is expressed as a
857
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
858
+ # specified otherwise, this object must conform to the WGS84 standard. Values
859
+ # must be within normalized ranges.
860
+ # Corresponds to the JSON property `location`
861
+ # @return [Google::Apis::AirqualityV1::LatLng]
862
+ attr_accessor :location
863
+
864
+ # Optional. The maximum number of hourly info records to return per page. The
865
+ # default is 72 and the max value is 168 (7 days of data).
866
+ # Corresponds to the JSON property `pageSize`
867
+ # @return [Fixnum]
868
+ attr_accessor :page_size
869
+
870
+ # Optional. A page token received from a previous history call. It is used to
871
+ # retrieve the subsequent page. Note that when providing a value for this
872
+ # parameter all other parameters provided must match the call that provided the
873
+ # page token (the previous call).
874
+ # Corresponds to the JSON property `pageToken`
875
+ # @return [String]
876
+ attr_accessor :page_token
877
+
878
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
879
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
880
+ # When the start equals the end, the interval is empty (matches no time). When
881
+ # both start and end are unspecified, the interval matches any time.
882
+ # Corresponds to the JSON property `period`
883
+ # @return [Google::Apis::AirqualityV1::Interval]
884
+ attr_accessor :period
885
+
886
+ # Optional. Determines the color palette used for data provided by the '
887
+ # Universal Air Quality Index' (UAQI). This color palette is relevant just for
888
+ # UAQI, other AQIs have a predetermined color palette that can't be controlled.
889
+ # Corresponds to the JSON property `uaqiColorPalette`
890
+ # @return [String]
891
+ attr_accessor :uaqi_color_palette
892
+
893
+ # Optional. If set to true, the Universal AQI will be included in the 'indexes'
894
+ # field of the response. Default value is true.
895
+ # Corresponds to the JSON property `universalAqi`
896
+ # @return [Boolean]
897
+ attr_accessor :universal_aqi
898
+ alias_method :universal_aqi?, :universal_aqi
899
+
900
+ def initialize(**args)
901
+ update!(**args)
902
+ end
903
+
904
+ # Update properties of this object
905
+ def update!(**args)
906
+ @custom_local_aqis = args[:custom_local_aqis] if args.key?(:custom_local_aqis)
907
+ @date_time = args[:date_time] if args.key?(:date_time)
908
+ @extra_computations = args[:extra_computations] if args.key?(:extra_computations)
909
+ @hours = args[:hours] if args.key?(:hours)
910
+ @language_code = args[:language_code] if args.key?(:language_code)
911
+ @location = args[:location] if args.key?(:location)
912
+ @page_size = args[:page_size] if args.key?(:page_size)
913
+ @page_token = args[:page_token] if args.key?(:page_token)
914
+ @period = args[:period] if args.key?(:period)
915
+ @uaqi_color_palette = args[:uaqi_color_palette] if args.key?(:uaqi_color_palette)
916
+ @universal_aqi = args[:universal_aqi] if args.key?(:universal_aqi)
917
+ end
918
+ end
919
+
920
+ #
921
+ class LookupHistoryResponse
922
+ include Google::Apis::Core::Hashable
923
+
924
+ # Optional. Contains the air quality information for each hour in the requested
925
+ # range. For example, if the request is for 48 hours of history there will be 48
926
+ # elements of hourly info.
927
+ # Corresponds to the JSON property `hoursInfo`
928
+ # @return [Array<Google::Apis::AirqualityV1::HourInfo>]
929
+ attr_accessor :hours_info
930
+
931
+ # Optional. The token to retrieve the next page.
932
+ # Corresponds to the JSON property `nextPageToken`
933
+ # @return [String]
934
+ attr_accessor :next_page_token
935
+
936
+ # Optional. The ISO_3166-1 alpha-2 code of the country/region corresponding to
937
+ # the location provided in the request. This field might be omitted from the
938
+ # response if the location provided in the request resides in a disputed
939
+ # territory.
940
+ # Corresponds to the JSON property `regionCode`
941
+ # @return [String]
942
+ attr_accessor :region_code
943
+
944
+ def initialize(**args)
945
+ update!(**args)
946
+ end
947
+
948
+ # Update properties of this object
949
+ def update!(**args)
950
+ @hours_info = args[:hours_info] if args.key?(:hours_info)
951
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
952
+ @region_code = args[:region_code] if args.key?(:region_code)
953
+ end
954
+ end
955
+
956
+ # Data regarding an air quality pollutant.
957
+ class Pollutant
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # The emission sources and health effects of a given pollutant.
961
+ # Corresponds to the JSON property `additionalInfo`
962
+ # @return [Google::Apis::AirqualityV1::AdditionalInfo]
963
+ attr_accessor :additional_info
964
+
965
+ # The pollutant's code name. For example: "so2". A list of all available codes
966
+ # could be found [here](/maps/documentation/air-quality/pollutants#
967
+ # reported_pollutants).
968
+ # Corresponds to the JSON property `code`
969
+ # @return [String]
970
+ attr_accessor :code
971
+
972
+ # The concentration of a given pollutant in the air.
973
+ # Corresponds to the JSON property `concentration`
974
+ # @return [Google::Apis::AirqualityV1::Concentration]
975
+ attr_accessor :concentration
976
+
977
+ # The pollutant's display name. For example: "NOx".
978
+ # Corresponds to the JSON property `displayName`
979
+ # @return [String]
980
+ attr_accessor :display_name
981
+
982
+ # The pollutant's full name. For chemical compounds, this is the IUPAC name.
983
+ # Example: "Sulfur Dioxide". For more information about the IUPAC names table,
984
+ # see https://iupac.org/what-we-do/periodic-table-of-elements/
985
+ # Corresponds to the JSON property `fullName`
986
+ # @return [String]
987
+ attr_accessor :full_name
988
+
989
+ def initialize(**args)
990
+ update!(**args)
991
+ end
992
+
993
+ # Update properties of this object
994
+ def update!(**args)
995
+ @additional_info = args[:additional_info] if args.key?(:additional_info)
996
+ @code = args[:code] if args.key?(:code)
997
+ @concentration = args[:concentration] if args.key?(:concentration)
998
+ @display_name = args[:display_name] if args.key?(:display_name)
999
+ @full_name = args[:full_name] if args.key?(:full_name)
1000
+ end
1001
+ end
1002
+ end
1003
+ end
1004
+ end