google-maps-api-sdk 1.0.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.
Files changed (127) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +169 -0
  4. data/bin/console +15 -0
  5. data/lib/google_maps_platform/api_helper.rb +10 -0
  6. data/lib/google_maps_platform/client.rb +123 -0
  7. data/lib/google_maps_platform/configuration.rb +181 -0
  8. data/lib/google_maps_platform/controllers/base_controller.rb +67 -0
  9. data/lib/google_maps_platform/controllers/directions_api_controller.rb +341 -0
  10. data/lib/google_maps_platform/controllers/distance_matrix_api_controller.rb +224 -0
  11. data/lib/google_maps_platform/controllers/elevation_api_controller.rb +71 -0
  12. data/lib/google_maps_platform/controllers/geocoding_api_controller.rb +214 -0
  13. data/lib/google_maps_platform/controllers/geolocation_api_controller.rb +46 -0
  14. data/lib/google_maps_platform/controllers/places_api_controller.rb +866 -0
  15. data/lib/google_maps_platform/controllers/roads_api_controller.rb +81 -0
  16. data/lib/google_maps_platform/controllers/street_view_api_controller.rb +198 -0
  17. data/lib/google_maps_platform/controllers/time_zone_api_controller.rb +65 -0
  18. data/lib/google_maps_platform/exceptions/api_exception.rb +21 -0
  19. data/lib/google_maps_platform/exceptions/error_response_exception.rb +48 -0
  20. data/lib/google_maps_platform/exceptions/nearest_roads_error_response_exception.rb +46 -0
  21. data/lib/google_maps_platform/http/api_response.rb +19 -0
  22. data/lib/google_maps_platform/http/auth/custom_query_authentication.rb +52 -0
  23. data/lib/google_maps_platform/http/http_call_back.rb +10 -0
  24. data/lib/google_maps_platform/http/http_method_enum.rb +10 -0
  25. data/lib/google_maps_platform/http/http_request.rb +10 -0
  26. data/lib/google_maps_platform/http/http_response.rb +10 -0
  27. data/lib/google_maps_platform/http/proxy_settings.rb +22 -0
  28. data/lib/google_maps_platform/logging/configuration/api_logging_configuration.rb +186 -0
  29. data/lib/google_maps_platform/logging/sdk_logger.rb +17 -0
  30. data/lib/google_maps_platform/models/address_component.rb +97 -0
  31. data/lib/google_maps_platform/models/base_model.rb +110 -0
  32. data/lib/google_maps_platform/models/bounds.rb +85 -0
  33. data/lib/google_maps_platform/models/business_status.rb +41 -0
  34. data/lib/google_maps_platform/models/cell_tower.rb +146 -0
  35. data/lib/google_maps_platform/models/directions_geocoded_waypoint.rb +181 -0
  36. data/lib/google_maps_platform/models/directions_leg.rb +224 -0
  37. data/lib/google_maps_platform/models/directions_polyline.rb +93 -0
  38. data/lib/google_maps_platform/models/directions_response.rb +185 -0
  39. data/lib/google_maps_platform/models/directions_route.rb +188 -0
  40. data/lib/google_maps_platform/models/directions_status.rb +94 -0
  41. data/lib/google_maps_platform/models/directions_step.rb +216 -0
  42. data/lib/google_maps_platform/models/directions_traffic_speed_entry.rb +84 -0
  43. data/lib/google_maps_platform/models/directions_transit_agency.rb +95 -0
  44. data/lib/google_maps_platform/models/directions_transit_details.rb +176 -0
  45. data/lib/google_maps_platform/models/directions_transit_line.rb +152 -0
  46. data/lib/google_maps_platform/models/directions_transit_stop.rb +83 -0
  47. data/lib/google_maps_platform/models/directions_transit_vehicle.rb +126 -0
  48. data/lib/google_maps_platform/models/directions_via_waypoint.rb +99 -0
  49. data/lib/google_maps_platform/models/distance_matrix_element.rb +132 -0
  50. data/lib/google_maps_platform/models/distance_matrix_element_status.rb +48 -0
  51. data/lib/google_maps_platform/models/distance_matrix_response.rb +149 -0
  52. data/lib/google_maps_platform/models/distance_matrix_row.rb +89 -0
  53. data/lib/google_maps_platform/models/distance_matrix_status.rb +74 -0
  54. data/lib/google_maps_platform/models/elevation_response.rb +132 -0
  55. data/lib/google_maps_platform/models/elevation_result.rb +99 -0
  56. data/lib/google_maps_platform/models/elevation_status.rb +65 -0
  57. data/lib/google_maps_platform/models/error_detail.rb +135 -0
  58. data/lib/google_maps_platform/models/error_object.rb +130 -0
  59. data/lib/google_maps_platform/models/fare.rb +92 -0
  60. data/lib/google_maps_platform/models/field_violation.rb +82 -0
  61. data/lib/google_maps_platform/models/geocoder_status.rb +37 -0
  62. data/lib/google_maps_platform/models/geocoding_geometry.rb +117 -0
  63. data/lib/google_maps_platform/models/geocoding_response.rb +140 -0
  64. data/lib/google_maps_platform/models/geocoding_result.rb +174 -0
  65. data/lib/google_maps_platform/models/geocoding_status.rb +71 -0
  66. data/lib/google_maps_platform/models/geolocation_request.rb +166 -0
  67. data/lib/google_maps_platform/models/geolocation_response.rb +91 -0
  68. data/lib/google_maps_platform/models/geometry.rb +84 -0
  69. data/lib/google_maps_platform/models/inputtype.rb +36 -0
  70. data/lib/google_maps_platform/models/language.rb +240 -0
  71. data/lib/google_maps_platform/models/lat_lng_literal.rb +83 -0
  72. data/lib/google_maps_platform/models/latitude_longitude_literal.rb +83 -0
  73. data/lib/google_maps_platform/models/location_type.rb +54 -0
  74. data/lib/google_maps_platform/models/location_type1.rb +44 -0
  75. data/lib/google_maps_platform/models/maneuver.rb +110 -0
  76. data/lib/google_maps_platform/models/maps_api_elevation_json_response.rb +132 -0
  77. data/lib/google_maps_platform/models/maxprice.rb +48 -0
  78. data/lib/google_maps_platform/models/minprice.rb +48 -0
  79. data/lib/google_maps_platform/models/mode.rb +44 -0
  80. data/lib/google_maps_platform/models/nearest_roads_error.rb +90 -0
  81. data/lib/google_maps_platform/models/nearest_roads_response.rb +86 -0
  82. data/lib/google_maps_platform/models/place.rb +647 -0
  83. data/lib/google_maps_platform/models/place_autocomplete_matched_substring.rb +82 -0
  84. data/lib/google_maps_platform/models/place_autocomplete_prediction.rb +181 -0
  85. data/lib/google_maps_platform/models/place_autocomplete_structured_format.rb +136 -0
  86. data/lib/google_maps_platform/models/place_autocomplete_term.rb +83 -0
  87. data/lib/google_maps_platform/models/place_editorial_summary.rb +87 -0
  88. data/lib/google_maps_platform/models/place_opening_hours.rb +138 -0
  89. data/lib/google_maps_platform/models/place_opening_hours_period.rb +84 -0
  90. data/lib/google_maps_platform/models/place_opening_hours_period_detail.rb +108 -0
  91. data/lib/google_maps_platform/models/place_photo.rb +109 -0
  92. data/lib/google_maps_platform/models/place_review.rb +186 -0
  93. data/lib/google_maps_platform/models/place_special_day.rb +93 -0
  94. data/lib/google_maps_platform/models/places_autocomplete_response.rb +141 -0
  95. data/lib/google_maps_platform/models/places_autocomplete_status.rb +66 -0
  96. data/lib/google_maps_platform/models/places_details_response.rb +131 -0
  97. data/lib/google_maps_platform/models/places_details_status.rb +71 -0
  98. data/lib/google_maps_platform/models/places_find_place_from_text_response.rb +145 -0
  99. data/lib/google_maps_platform/models/places_nearby_search_response.rb +171 -0
  100. data/lib/google_maps_platform/models/places_query_autocomplete_response.rb +141 -0
  101. data/lib/google_maps_platform/models/places_search_status.rb +66 -0
  102. data/lib/google_maps_platform/models/places_text_search_response.rb +171 -0
  103. data/lib/google_maps_platform/models/plus_code.rb +92 -0
  104. data/lib/google_maps_platform/models/rankby.rb +36 -0
  105. data/lib/google_maps_platform/models/region.rb +1052 -0
  106. data/lib/google_maps_platform/models/result.rb +96 -0
  107. data/lib/google_maps_platform/models/result_type.rb +112 -0
  108. data/lib/google_maps_platform/models/snap_to_roads_response.rb +96 -0
  109. data/lib/google_maps_platform/models/snapped_point.rb +103 -0
  110. data/lib/google_maps_platform/models/source.rb +36 -0
  111. data/lib/google_maps_platform/models/street_view_response.rb +135 -0
  112. data/lib/google_maps_platform/models/street_view_status.rb +71 -0
  113. data/lib/google_maps_platform/models/text_value_object.rb +82 -0
  114. data/lib/google_maps_platform/models/time_zone_response.rb +154 -0
  115. data/lib/google_maps_platform/models/time_zone_status.rb +68 -0
  116. data/lib/google_maps_platform/models/time_zone_text_value_object.rb +94 -0
  117. data/lib/google_maps_platform/models/traffic_model.rb +40 -0
  118. data/lib/google_maps_platform/models/transit_routing_preference.rb +36 -0
  119. data/lib/google_maps_platform/models/travel_mode.rb +48 -0
  120. data/lib/google_maps_platform/models/type.rb +140 -0
  121. data/lib/google_maps_platform/models/type1.rb +112 -0
  122. data/lib/google_maps_platform/models/units.rb +36 -0
  123. data/lib/google_maps_platform/models/wi_fi_access_point.rb +119 -0
  124. data/lib/google_maps_platform/utilities/date_time_helper.rb +11 -0
  125. data/lib/google_maps_platform/utilities/file_wrapper.rb +28 -0
  126. data/lib/google_maps_platform.rb +154 -0
  127. metadata +210 -0
@@ -0,0 +1,647 @@
1
+ # google_maps_platform
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ module GoogleMapsPlatform
7
+ # Attributes describing a place. Not all attributes will be available for all
8
+ # place types.
9
+ class Place < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # An array containing the separate components applicable to this address.
14
+ # @return [Array[AddressComponent]]
15
+ attr_accessor :address_components
16
+
17
+ # A representation of the place's address in the [adr
18
+ # microformat](http://microformats.org/wiki/adr).
19
+ # @return [String]
20
+ attr_accessor :adr_address
21
+
22
+ # Indicates the operational status of the place, if it is a business. If no
23
+ # data exists, `business_status` is not returned.
24
+ # @return [BusinessStatus]
25
+ attr_accessor :business_status
26
+
27
+ # Specifies if the business supports curbside pickup.
28
+ # @return [TrueClass | FalseClass]
29
+ attr_accessor :curbside_pickup
30
+
31
+ # An object describing the opening hours of a place.
32
+ # @return [PlaceOpeningHours]
33
+ attr_accessor :current_opening_hours
34
+
35
+ # Specifies if the business supports delivery.
36
+ # @return [TrueClass | FalseClass]
37
+ attr_accessor :delivery
38
+
39
+ # Specifies if the business supports indoor or outdoor seating options.
40
+ # @return [TrueClass | FalseClass]
41
+ attr_accessor :dine_in
42
+
43
+ # Contains a summary of the place. A summary is comprised of a textual
44
+ # overview, and also includes the language code for these if applicable.
45
+ # Summary text must be presented as-is and can not be modified or altered.
46
+ # @return [PlaceEditorialSummary]
47
+ attr_accessor :editorial_summary
48
+
49
+ # A string containing the human-readable address of this place.
50
+ # Often this address is equivalent to the postal address. Note that some
51
+ # countries, such as the United Kingdom, do not allow distribution of true
52
+ # postal addresses due to licensing restrictions.
53
+ # The formatted address is logically composed of one or more address
54
+ # components. For example, the address "111 8th Avenue, New York, NY"
55
+ # consists of the following components: "111" (the street number), "8th
56
+ # Avenue" (the route), "New York" (the city) and "NY" (the US state).
57
+ # Do not parse the formatted address programmatically. Instead you should
58
+ # use the individual address components, which the API response includes in
59
+ # addition to the formatted address field.
60
+ # @return [String]
61
+ attr_accessor :formatted_address
62
+
63
+ # Contains the place's phone number in its [local
64
+ # format](http://en.wikipedia.org/wiki/Local_conventions_for_writing_telepho
65
+ # ne_numbers).
66
+ # @return [String]
67
+ attr_accessor :formatted_phone_number
68
+
69
+ # An object describing the location.
70
+ # @return [Geometry]
71
+ attr_accessor :geometry
72
+
73
+ # Contains the URL of a suggested icon which may be displayed to the user
74
+ # when indicating this result on a map.
75
+ # @return [String]
76
+ attr_accessor :icon
77
+
78
+ # Contains the default HEX color code for the place's category.
79
+ # @return [String]
80
+ attr_accessor :icon_background_color
81
+
82
+ # Contains the URL of a recommended icon, minus the `.svg` or `.png` file
83
+ # type extension.
84
+ # @return [String]
85
+ attr_accessor :icon_mask_base_uri
86
+
87
+ # Contains the place's phone number in international format. International
88
+ # format includes the country code, and is prefixed with the plus, +, sign.
89
+ # For example, the international_phone_number for Google's Sydney, Australia
90
+ # office is `+61 2 9374 4000`.
91
+ # @return [String]
92
+ attr_accessor :international_phone_number
93
+
94
+ # Contains the human-readable name for the returned result. For
95
+ # `establishment` results, this is usually the canonicalized business name.
96
+ # @return [String]
97
+ attr_accessor :name
98
+
99
+ # An object describing the opening hours of a place.
100
+ # @return [PlaceOpeningHours]
101
+ attr_accessor :opening_hours
102
+
103
+ # Use `business_status` to get the operational status of businesses.
104
+ # @return [TrueClass | FalseClass]
105
+ attr_accessor :permanently_closed
106
+
107
+ # An array of photo objects, each containing a reference to an image. A
108
+ # request may return up to ten photos. More information about place photos
109
+ # and how you can use the images in your application can be found in the
110
+ # [Place
111
+ # Photos](https://developers.google.com/maps/documentation/places/web-servic
112
+ # e/photos) documentation.
113
+ # @return [Array[PlacePhoto]]
114
+ attr_accessor :photos
115
+
116
+ # A textual identifier that uniquely identifies a place. To retrieve
117
+ # information about the place, pass this identifier in the `place_id` field
118
+ # of a Places API request. For more information about place IDs, see the
119
+ # [place ID
120
+ # overview](https://developers.google.com/maps/documentation/places/web-serv
121
+ # ice/place-id).
122
+ # @return [String]
123
+ attr_accessor :place_id
124
+
125
+ # An encoded location reference, derived from latitude and longitude
126
+ # coordinates, that represents an area, 1/8000th of a degree by 1/8000th of
127
+ # a degree (about 14m x 14m at the equator) or smaller. Plus codes can be
128
+ # used as a replacement for street addresses in places where they do not
129
+ # exist (where buildings are not numbered or streets are not named).
130
+ # @return [PlusCode]
131
+ attr_accessor :plus_code
132
+
133
+ # The price level of the place, on a scale of 0 to 4. The exact amount
134
+ # indicated by a specific value will vary from region to region. Price
135
+ # levels are interpreted as follows:
136
+ # - 0 Free
137
+ # - 1 Inexpensive
138
+ # - 2 Moderate
139
+ # - 3 Expensive
140
+ # - 4 Very Expensive
141
+ # @return [Float]
142
+ attr_accessor :price_level
143
+
144
+ # Contains the place's rating, from 1.0 to 5.0, based on aggregated user
145
+ # reviews.
146
+ # @return [Float]
147
+ attr_accessor :rating
148
+
149
+ # Contains the place's rating, from 1.0 to 5.0, based on aggregated user
150
+ # reviews.
151
+ # @return [String]
152
+ attr_accessor :reference
153
+
154
+ # Specifies if the place supports reservations.
155
+ # @return [TrueClass | FalseClass]
156
+ attr_accessor :reservable
157
+
158
+ # A JSON array of up to five reviews. By default, the reviews are sorted in
159
+ # order of relevance. Use the `reviews_sort` request parameter to control
160
+ # sorting.
161
+ # - For `most_relevant` (default), reviews are sorted by relevance; the
162
+ # service will bias the results to return reviews originally written in the
163
+ # preferred language.
164
+ # - For `newest`, reviews are sorted in chronological order; the preferred
165
+ # language does not affect the sort order.
166
+ # Google recommends indicating to users whether results are ordered by
167
+ # `most_relevant` or `newest`.
168
+ # @return [Array[PlaceReview]]
169
+ attr_accessor :reviews
170
+
171
+ # Specifies if the place serves beer.
172
+ # @return [TrueClass | FalseClass]
173
+ attr_accessor :serves_beer
174
+
175
+ # Specifies if the place serves breakfast.
176
+ # @return [TrueClass | FalseClass]
177
+ attr_accessor :serves_breakfast
178
+
179
+ # Specifies if the place serves brunch.
180
+ # @return [TrueClass | FalseClass]
181
+ attr_accessor :serves_brunch
182
+
183
+ # Specifies if the place serves dinner.
184
+ # @return [TrueClass | FalseClass]
185
+ attr_accessor :serves_dinner
186
+
187
+ # Specifies if the place serves lunch.
188
+ # @return [TrueClass | FalseClass]
189
+ attr_accessor :serves_lunch
190
+
191
+ # Specifies if the place serves vegetarian food.
192
+ # @return [TrueClass | FalseClass]
193
+ attr_accessor :serves_vegetarian_food
194
+
195
+ # Specifies if the place serves wine.
196
+ # @return [TrueClass | FalseClass]
197
+ attr_accessor :serves_wine
198
+
199
+ # Specifies if the place serves wine.
200
+ # @return [String]
201
+ attr_accessor :scope
202
+
203
+ # Contains an array of entries for the next seven days including information
204
+ # about secondary hours of a business. Secondary hours are different from a
205
+ # business's main hours. For example, a restaurant can specify drive through
206
+ # hours or delivery hours as its secondary hours. This field populates the
207
+ # `type` subfield, which draws from a predefined list of opening hours types
208
+ # (such as `DRIVE_THROUGH`, `PICKUP`, or `TAKEOUT`) based on the types of
209
+ # the place. This field includes the `special_days` subfield of all hours,
210
+ # set for dates that have exceptional hours.
211
+ # @return [Array[PlaceOpeningHours]]
212
+ attr_accessor :secondary_opening_hours
213
+
214
+ # Specifies if the business supports takeout.
215
+ # @return [TrueClass | FalseClass]
216
+ attr_accessor :takeout
217
+
218
+ # Contains an array of feature types describing the given result. See the
219
+ # list of [supported
220
+ # types](https://developers.google.com/maps/documentation/places/web-service
221
+ # /supported_types#table2).
222
+ # @return [Array[String]]
223
+ attr_accessor :types
224
+
225
+ # Contains the URL of the official Google page for this place. This will be
226
+ # the Google-owned page that contains the best available information about
227
+ # the place. Applications must link to or embed this page on any screen that
228
+ # shows detailed results about the place to the user.
229
+ # @return [String]
230
+ attr_accessor :url
231
+
232
+ # The total number of reviews, with or without text, for this place.
233
+ # @return [Float]
234
+ attr_accessor :user_ratings_total
235
+
236
+ # Contains the number of minutes this place’s current timezone is offset
237
+ # from UTC. For example, for places in Sydney, Australia during daylight
238
+ # saving time this would be 660 (+11 hours from UTC), and for places in
239
+ # California outside of daylight saving time this would be -480 (-8 hours
240
+ # from UTC).
241
+ # @return [Float]
242
+ attr_accessor :utc_offset
243
+
244
+ # For establishment (`types:["establishment", ...])` results only, the
245
+ # `vicinity` field contains a simplified address for the place, including
246
+ # the street name, street number, and locality, but not the province/state,
247
+ # postal code, or country.
248
+ # For all other results, the `vicinity` field contains the name of the
249
+ # narrowest political (`types:["political", ...]`) feature that is present
250
+ # in the address of the result.
251
+ # This content is meant to be read as-is. Do not programmatically parse the
252
+ # formatted address.
253
+ # @return [String]
254
+ attr_accessor :vicinity
255
+
256
+ # The authoritative website for this place, such as a business' homepage.
257
+ # @return [String]
258
+ attr_accessor :website
259
+
260
+ # Specifies if the place has an entrance that is wheelchair-accessible.
261
+ # @return [TrueClass | FalseClass]
262
+ attr_accessor :wheelchair_accessible_entrance
263
+
264
+ # A mapping from model property names to API property names.
265
+ def self.names
266
+ @_hash = {} if @_hash.nil?
267
+ @_hash['address_components'] = 'address_components'
268
+ @_hash['adr_address'] = 'adr_address'
269
+ @_hash['business_status'] = 'business_status'
270
+ @_hash['curbside_pickup'] = 'curbside_pickup'
271
+ @_hash['current_opening_hours'] = 'current_opening_hours'
272
+ @_hash['delivery'] = 'delivery'
273
+ @_hash['dine_in'] = 'dine_in'
274
+ @_hash['editorial_summary'] = 'editorial_summary'
275
+ @_hash['formatted_address'] = 'formatted_address'
276
+ @_hash['formatted_phone_number'] = 'formatted_phone_number'
277
+ @_hash['geometry'] = 'geometry'
278
+ @_hash['icon'] = 'icon'
279
+ @_hash['icon_background_color'] = 'icon_background_color'
280
+ @_hash['icon_mask_base_uri'] = 'icon_mask_base_uri'
281
+ @_hash['international_phone_number'] = 'international_phone_number'
282
+ @_hash['name'] = 'name'
283
+ @_hash['opening_hours'] = 'opening_hours'
284
+ @_hash['permanently_closed'] = 'permanently_closed'
285
+ @_hash['photos'] = 'photos'
286
+ @_hash['place_id'] = 'place_id'
287
+ @_hash['plus_code'] = 'plus_code'
288
+ @_hash['price_level'] = 'price_level'
289
+ @_hash['rating'] = 'rating'
290
+ @_hash['reference'] = 'reference'
291
+ @_hash['reservable'] = 'reservable'
292
+ @_hash['reviews'] = 'reviews'
293
+ @_hash['serves_beer'] = 'serves_beer'
294
+ @_hash['serves_breakfast'] = 'serves_breakfast'
295
+ @_hash['serves_brunch'] = 'serves_brunch'
296
+ @_hash['serves_dinner'] = 'serves_dinner'
297
+ @_hash['serves_lunch'] = 'serves_lunch'
298
+ @_hash['serves_vegetarian_food'] = 'serves_vegetarian_food'
299
+ @_hash['serves_wine'] = 'serves_wine'
300
+ @_hash['scope'] = 'scope'
301
+ @_hash['secondary_opening_hours'] = 'secondary_opening_hours'
302
+ @_hash['takeout'] = 'takeout'
303
+ @_hash['types'] = 'types'
304
+ @_hash['url'] = 'url'
305
+ @_hash['user_ratings_total'] = 'user_ratings_total'
306
+ @_hash['utc_offset'] = 'utc_offset'
307
+ @_hash['vicinity'] = 'vicinity'
308
+ @_hash['website'] = 'website'
309
+ @_hash['wheelchair_accessible_entrance'] =
310
+ 'wheelchair_accessible_entrance'
311
+ @_hash
312
+ end
313
+
314
+ # An array for optional fields
315
+ def self.optionals
316
+ %w[
317
+ address_components
318
+ adr_address
319
+ business_status
320
+ curbside_pickup
321
+ current_opening_hours
322
+ delivery
323
+ dine_in
324
+ editorial_summary
325
+ formatted_address
326
+ formatted_phone_number
327
+ geometry
328
+ icon
329
+ icon_background_color
330
+ icon_mask_base_uri
331
+ international_phone_number
332
+ name
333
+ opening_hours
334
+ permanently_closed
335
+ photos
336
+ place_id
337
+ plus_code
338
+ price_level
339
+ rating
340
+ reference
341
+ reservable
342
+ reviews
343
+ serves_beer
344
+ serves_breakfast
345
+ serves_brunch
346
+ serves_dinner
347
+ serves_lunch
348
+ serves_vegetarian_food
349
+ serves_wine
350
+ scope
351
+ secondary_opening_hours
352
+ takeout
353
+ types
354
+ url
355
+ user_ratings_total
356
+ utc_offset
357
+ vicinity
358
+ website
359
+ wheelchair_accessible_entrance
360
+ ]
361
+ end
362
+
363
+ # An array for nullable fields
364
+ def self.nullables
365
+ []
366
+ end
367
+
368
+ def initialize(address_components: SKIP, adr_address: SKIP,
369
+ business_status: SKIP, curbside_pickup: SKIP,
370
+ current_opening_hours: SKIP, delivery: SKIP, dine_in: SKIP,
371
+ editorial_summary: SKIP, formatted_address: SKIP,
372
+ formatted_phone_number: SKIP, geometry: SKIP, icon: SKIP,
373
+ icon_background_color: SKIP, icon_mask_base_uri: SKIP,
374
+ international_phone_number: SKIP, name: SKIP,
375
+ opening_hours: SKIP, permanently_closed: SKIP, photos: SKIP,
376
+ place_id: SKIP, plus_code: SKIP, price_level: SKIP,
377
+ rating: SKIP, reference: SKIP, reservable: SKIP,
378
+ reviews: SKIP, serves_beer: SKIP, serves_breakfast: SKIP,
379
+ serves_brunch: SKIP, serves_dinner: SKIP, serves_lunch: SKIP,
380
+ serves_vegetarian_food: SKIP, serves_wine: SKIP, scope: SKIP,
381
+ secondary_opening_hours: SKIP, takeout: SKIP, types: SKIP,
382
+ url: SKIP, user_ratings_total: SKIP, utc_offset: SKIP,
383
+ vicinity: SKIP, website: SKIP,
384
+ wheelchair_accessible_entrance: SKIP,
385
+ additional_properties: nil)
386
+ # Add additional model properties to the instance
387
+ additional_properties = {} if additional_properties.nil?
388
+
389
+ @address_components = address_components unless address_components == SKIP
390
+ @adr_address = adr_address unless adr_address == SKIP
391
+ @business_status = business_status unless business_status == SKIP
392
+ @curbside_pickup = curbside_pickup unless curbside_pickup == SKIP
393
+ @current_opening_hours = current_opening_hours unless current_opening_hours == SKIP
394
+ @delivery = delivery unless delivery == SKIP
395
+ @dine_in = dine_in unless dine_in == SKIP
396
+ @editorial_summary = editorial_summary unless editorial_summary == SKIP
397
+ @formatted_address = formatted_address unless formatted_address == SKIP
398
+ @formatted_phone_number = formatted_phone_number unless formatted_phone_number == SKIP
399
+ @geometry = geometry unless geometry == SKIP
400
+ @icon = icon unless icon == SKIP
401
+ @icon_background_color = icon_background_color unless icon_background_color == SKIP
402
+ @icon_mask_base_uri = icon_mask_base_uri unless icon_mask_base_uri == SKIP
403
+ unless international_phone_number == SKIP
404
+ @international_phone_number =
405
+ international_phone_number
406
+ end
407
+ @name = name unless name == SKIP
408
+ @opening_hours = opening_hours unless opening_hours == SKIP
409
+ @permanently_closed = permanently_closed unless permanently_closed == SKIP
410
+ @photos = photos unless photos == SKIP
411
+ @place_id = place_id unless place_id == SKIP
412
+ @plus_code = plus_code unless plus_code == SKIP
413
+ @price_level = price_level unless price_level == SKIP
414
+ @rating = rating unless rating == SKIP
415
+ @reference = reference unless reference == SKIP
416
+ @reservable = reservable unless reservable == SKIP
417
+ @reviews = reviews unless reviews == SKIP
418
+ @serves_beer = serves_beer unless serves_beer == SKIP
419
+ @serves_breakfast = serves_breakfast unless serves_breakfast == SKIP
420
+ @serves_brunch = serves_brunch unless serves_brunch == SKIP
421
+ @serves_dinner = serves_dinner unless serves_dinner == SKIP
422
+ @serves_lunch = serves_lunch unless serves_lunch == SKIP
423
+ @serves_vegetarian_food = serves_vegetarian_food unless serves_vegetarian_food == SKIP
424
+ @serves_wine = serves_wine unless serves_wine == SKIP
425
+ @scope = scope unless scope == SKIP
426
+ @secondary_opening_hours = secondary_opening_hours unless secondary_opening_hours == SKIP
427
+ @takeout = takeout unless takeout == SKIP
428
+ @types = types unless types == SKIP
429
+ @url = url unless url == SKIP
430
+ @user_ratings_total = user_ratings_total unless user_ratings_total == SKIP
431
+ @utc_offset = utc_offset unless utc_offset == SKIP
432
+ @vicinity = vicinity unless vicinity == SKIP
433
+ @website = website unless website == SKIP
434
+ unless wheelchair_accessible_entrance == SKIP
435
+ @wheelchair_accessible_entrance =
436
+ wheelchair_accessible_entrance
437
+ end
438
+ @additional_properties = additional_properties
439
+ end
440
+
441
+ # Creates an instance of the object from a hash.
442
+ def self.from_hash(hash)
443
+ return nil unless hash
444
+
445
+ # Extract variables from the hash.
446
+ # Parameter is an array, so we need to iterate through it
447
+ address_components = nil
448
+ unless hash['address_components'].nil?
449
+ address_components = []
450
+ hash['address_components'].each do |structure|
451
+ address_components << (AddressComponent.from_hash(structure) if structure)
452
+ end
453
+ end
454
+
455
+ address_components = SKIP unless hash.key?('address_components')
456
+ adr_address = hash.key?('adr_address') ? hash['adr_address'] : SKIP
457
+ business_status =
458
+ hash.key?('business_status') ? hash['business_status'] : SKIP
459
+ curbside_pickup =
460
+ hash.key?('curbside_pickup') ? hash['curbside_pickup'] : SKIP
461
+ current_opening_hours = PlaceOpeningHours.from_hash(hash['current_opening_hours']) if
462
+ hash['current_opening_hours']
463
+ delivery = hash.key?('delivery') ? hash['delivery'] : SKIP
464
+ dine_in = hash.key?('dine_in') ? hash['dine_in'] : SKIP
465
+ editorial_summary = PlaceEditorialSummary.from_hash(hash['editorial_summary']) if
466
+ hash['editorial_summary']
467
+ formatted_address =
468
+ hash.key?('formatted_address') ? hash['formatted_address'] : SKIP
469
+ formatted_phone_number =
470
+ hash.key?('formatted_phone_number') ? hash['formatted_phone_number'] : SKIP
471
+ geometry = Geometry.from_hash(hash['geometry']) if hash['geometry']
472
+ icon = hash.key?('icon') ? hash['icon'] : SKIP
473
+ icon_background_color =
474
+ hash.key?('icon_background_color') ? hash['icon_background_color'] : SKIP
475
+ icon_mask_base_uri =
476
+ hash.key?('icon_mask_base_uri') ? hash['icon_mask_base_uri'] : SKIP
477
+ international_phone_number =
478
+ hash.key?('international_phone_number') ? hash['international_phone_number'] : SKIP
479
+ name = hash.key?('name') ? hash['name'] : SKIP
480
+ opening_hours = PlaceOpeningHours.from_hash(hash['opening_hours']) if hash['opening_hours']
481
+ permanently_closed =
482
+ hash.key?('permanently_closed') ? hash['permanently_closed'] : SKIP
483
+ # Parameter is an array, so we need to iterate through it
484
+ photos = nil
485
+ unless hash['photos'].nil?
486
+ photos = []
487
+ hash['photos'].each do |structure|
488
+ photos << (PlacePhoto.from_hash(structure) if structure)
489
+ end
490
+ end
491
+
492
+ photos = SKIP unless hash.key?('photos')
493
+ place_id = hash.key?('place_id') ? hash['place_id'] : SKIP
494
+ plus_code = PlusCode.from_hash(hash['plus_code']) if hash['plus_code']
495
+ price_level = hash.key?('price_level') ? hash['price_level'] : SKIP
496
+ rating = hash.key?('rating') ? hash['rating'] : SKIP
497
+ reference = hash.key?('reference') ? hash['reference'] : SKIP
498
+ reservable = hash.key?('reservable') ? hash['reservable'] : SKIP
499
+ # Parameter is an array, so we need to iterate through it
500
+ reviews = nil
501
+ unless hash['reviews'].nil?
502
+ reviews = []
503
+ hash['reviews'].each do |structure|
504
+ reviews << (PlaceReview.from_hash(structure) if structure)
505
+ end
506
+ end
507
+
508
+ reviews = SKIP unless hash.key?('reviews')
509
+ serves_beer = hash.key?('serves_beer') ? hash['serves_beer'] : SKIP
510
+ serves_breakfast =
511
+ hash.key?('serves_breakfast') ? hash['serves_breakfast'] : SKIP
512
+ serves_brunch = hash.key?('serves_brunch') ? hash['serves_brunch'] : SKIP
513
+ serves_dinner = hash.key?('serves_dinner') ? hash['serves_dinner'] : SKIP
514
+ serves_lunch = hash.key?('serves_lunch') ? hash['serves_lunch'] : SKIP
515
+ serves_vegetarian_food =
516
+ hash.key?('serves_vegetarian_food') ? hash['serves_vegetarian_food'] : SKIP
517
+ serves_wine = hash.key?('serves_wine') ? hash['serves_wine'] : SKIP
518
+ scope = hash.key?('scope') ? hash['scope'] : SKIP
519
+ # Parameter is an array, so we need to iterate through it
520
+ secondary_opening_hours = nil
521
+ unless hash['secondary_opening_hours'].nil?
522
+ secondary_opening_hours = []
523
+ hash['secondary_opening_hours'].each do |structure|
524
+ secondary_opening_hours << (PlaceOpeningHours.from_hash(structure) if structure)
525
+ end
526
+ end
527
+
528
+ secondary_opening_hours = SKIP unless hash.key?('secondary_opening_hours')
529
+ takeout = hash.key?('takeout') ? hash['takeout'] : SKIP
530
+ types = hash.key?('types') ? hash['types'] : SKIP
531
+ url = hash.key?('url') ? hash['url'] : SKIP
532
+ user_ratings_total =
533
+ hash.key?('user_ratings_total') ? hash['user_ratings_total'] : SKIP
534
+ utc_offset = hash.key?('utc_offset') ? hash['utc_offset'] : SKIP
535
+ vicinity = hash.key?('vicinity') ? hash['vicinity'] : SKIP
536
+ website = hash.key?('website') ? hash['website'] : SKIP
537
+ wheelchair_accessible_entrance =
538
+ hash.key?('wheelchair_accessible_entrance') ? hash['wheelchair_accessible_entrance'] : SKIP
539
+
540
+ # Create a new hash for additional properties, removing known properties.
541
+ new_hash = hash.reject { |k, _| names.value?(k) }
542
+
543
+ additional_properties = APIHelper.get_additional_properties(
544
+ new_hash, proc { |value| value }
545
+ )
546
+
547
+ # Create object from extracted values.
548
+ Place.new(address_components: address_components,
549
+ adr_address: adr_address,
550
+ business_status: business_status,
551
+ curbside_pickup: curbside_pickup,
552
+ current_opening_hours: current_opening_hours,
553
+ delivery: delivery,
554
+ dine_in: dine_in,
555
+ editorial_summary: editorial_summary,
556
+ formatted_address: formatted_address,
557
+ formatted_phone_number: formatted_phone_number,
558
+ geometry: geometry,
559
+ icon: icon,
560
+ icon_background_color: icon_background_color,
561
+ icon_mask_base_uri: icon_mask_base_uri,
562
+ international_phone_number: international_phone_number,
563
+ name: name,
564
+ opening_hours: opening_hours,
565
+ permanently_closed: permanently_closed,
566
+ photos: photos,
567
+ place_id: place_id,
568
+ plus_code: plus_code,
569
+ price_level: price_level,
570
+ rating: rating,
571
+ reference: reference,
572
+ reservable: reservable,
573
+ reviews: reviews,
574
+ serves_beer: serves_beer,
575
+ serves_breakfast: serves_breakfast,
576
+ serves_brunch: serves_brunch,
577
+ serves_dinner: serves_dinner,
578
+ serves_lunch: serves_lunch,
579
+ serves_vegetarian_food: serves_vegetarian_food,
580
+ serves_wine: serves_wine,
581
+ scope: scope,
582
+ secondary_opening_hours: secondary_opening_hours,
583
+ takeout: takeout,
584
+ types: types,
585
+ url: url,
586
+ user_ratings_total: user_ratings_total,
587
+ utc_offset: utc_offset,
588
+ vicinity: vicinity,
589
+ website: website,
590
+ wheelchair_accessible_entrance: wheelchair_accessible_entrance,
591
+ additional_properties: additional_properties)
592
+ end
593
+
594
+ # Provides a human-readable string representation of the object.
595
+ def to_s
596
+ class_name = self.class.name.split('::').last
597
+ "<#{class_name} address_components: #{@address_components}, adr_address: #{@adr_address},"\
598
+ " business_status: #{@business_status}, curbside_pickup: #{@curbside_pickup},"\
599
+ " current_opening_hours: #{@current_opening_hours}, delivery: #{@delivery}, dine_in:"\
600
+ " #{@dine_in}, editorial_summary: #{@editorial_summary}, formatted_address:"\
601
+ " #{@formatted_address}, formatted_phone_number: #{@formatted_phone_number}, geometry:"\
602
+ " #{@geometry}, icon: #{@icon}, icon_background_color: #{@icon_background_color},"\
603
+ " icon_mask_base_uri: #{@icon_mask_base_uri}, international_phone_number:"\
604
+ " #{@international_phone_number}, name: #{@name}, opening_hours: #{@opening_hours},"\
605
+ " permanently_closed: #{@permanently_closed}, photos: #{@photos}, place_id: #{@place_id},"\
606
+ " plus_code: #{@plus_code}, price_level: #{@price_level}, rating: #{@rating}, reference:"\
607
+ " #{@reference}, reservable: #{@reservable}, reviews: #{@reviews}, serves_beer:"\
608
+ " #{@serves_beer}, serves_breakfast: #{@serves_breakfast}, serves_brunch: #{@serves_brunch},"\
609
+ " serves_dinner: #{@serves_dinner}, serves_lunch: #{@serves_lunch}, serves_vegetarian_food:"\
610
+ " #{@serves_vegetarian_food}, serves_wine: #{@serves_wine}, scope: #{@scope},"\
611
+ " secondary_opening_hours: #{@secondary_opening_hours}, takeout: #{@takeout}, types:"\
612
+ " #{@types}, url: #{@url}, user_ratings_total: #{@user_ratings_total}, utc_offset:"\
613
+ " #{@utc_offset}, vicinity: #{@vicinity}, website: #{@website},"\
614
+ " wheelchair_accessible_entrance: #{@wheelchair_accessible_entrance}, additional_properties:"\
615
+ " #{@additional_properties}>"
616
+ end
617
+
618
+ # Provides a debugging-friendly string with detailed object information.
619
+ def inspect
620
+ class_name = self.class.name.split('::').last
621
+ "<#{class_name} address_components: #{@address_components.inspect}, adr_address:"\
622
+ " #{@adr_address.inspect}, business_status: #{@business_status.inspect}, curbside_pickup:"\
623
+ " #{@curbside_pickup.inspect}, current_opening_hours: #{@current_opening_hours.inspect},"\
624
+ " delivery: #{@delivery.inspect}, dine_in: #{@dine_in.inspect}, editorial_summary:"\
625
+ " #{@editorial_summary.inspect}, formatted_address: #{@formatted_address.inspect},"\
626
+ " formatted_phone_number: #{@formatted_phone_number.inspect}, geometry:"\
627
+ " #{@geometry.inspect}, icon: #{@icon.inspect}, icon_background_color:"\
628
+ " #{@icon_background_color.inspect}, icon_mask_base_uri: #{@icon_mask_base_uri.inspect},"\
629
+ " international_phone_number: #{@international_phone_number.inspect}, name:"\
630
+ " #{@name.inspect}, opening_hours: #{@opening_hours.inspect}, permanently_closed:"\
631
+ " #{@permanently_closed.inspect}, photos: #{@photos.inspect}, place_id:"\
632
+ " #{@place_id.inspect}, plus_code: #{@plus_code.inspect}, price_level:"\
633
+ " #{@price_level.inspect}, rating: #{@rating.inspect}, reference: #{@reference.inspect},"\
634
+ " reservable: #{@reservable.inspect}, reviews: #{@reviews.inspect}, serves_beer:"\
635
+ " #{@serves_beer.inspect}, serves_breakfast: #{@serves_breakfast.inspect}, serves_brunch:"\
636
+ " #{@serves_brunch.inspect}, serves_dinner: #{@serves_dinner.inspect}, serves_lunch:"\
637
+ " #{@serves_lunch.inspect}, serves_vegetarian_food: #{@serves_vegetarian_food.inspect},"\
638
+ " serves_wine: #{@serves_wine.inspect}, scope: #{@scope.inspect}, secondary_opening_hours:"\
639
+ " #{@secondary_opening_hours.inspect}, takeout: #{@takeout.inspect}, types:"\
640
+ " #{@types.inspect}, url: #{@url.inspect}, user_ratings_total:"\
641
+ " #{@user_ratings_total.inspect}, utc_offset: #{@utc_offset.inspect}, vicinity:"\
642
+ " #{@vicinity.inspect}, website: #{@website.inspect}, wheelchair_accessible_entrance:"\
643
+ " #{@wheelchair_accessible_entrance.inspect}, additional_properties:"\
644
+ " #{@additional_properties}>"
645
+ end
646
+ end
647
+ end