ev-recharge-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 (105) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +92 -0
  4. data/lib/shell_ev/api_helper.rb +10 -0
  5. data/lib/shell_ev/client.rb +77 -0
  6. data/lib/shell_ev/configuration.rb +110 -0
  7. data/lib/shell_ev/controllers/base_controller.rb +66 -0
  8. data/lib/shell_ev/controllers/charging_controller.rb +216 -0
  9. data/lib/shell_ev/controllers/locations_controller.rb +352 -0
  10. data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +42 -0
  11. data/lib/shell_ev/exceptions/api_exception.rb +10 -0
  12. data/lib/shell_ev/exceptions/bad_request_exception.rb +37 -0
  13. data/lib/shell_ev/exceptions/http401_error_response_exception.rb +52 -0
  14. data/lib/shell_ev/exceptions/m400_error_response_error1_exception.rb +52 -0
  15. data/lib/shell_ev/exceptions/m401_error_response_error1_exception.rb +52 -0
  16. data/lib/shell_ev/exceptions/m404_error_response_error1_exception.rb +53 -0
  17. data/lib/shell_ev/exceptions/m405_error_response_error1_exception.rb +52 -0
  18. data/lib/shell_ev/exceptions/m429_error_response_error1_exception.rb +52 -0
  19. data/lib/shell_ev/exceptions/m500_error_response_error1_exception.rb +52 -0
  20. data/lib/shell_ev/exceptions/m503_error_response_error1_exception.rb +52 -0
  21. data/lib/shell_ev/exceptions/not_found_exception.rb +37 -0
  22. data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +48 -0
  23. data/lib/shell_ev/exceptions/unauthorized_exception.rb +37 -0
  24. data/lib/shell_ev/http/auth/o_auth2.rb +90 -0
  25. data/lib/shell_ev/http/http_call_back.rb +10 -0
  26. data/lib/shell_ev/http/http_method_enum.rb +10 -0
  27. data/lib/shell_ev/http/http_request.rb +10 -0
  28. data/lib/shell_ev/http/http_response.rb +10 -0
  29. data/lib/shell_ev/models/accessibility.rb +60 -0
  30. data/lib/shell_ev/models/accessibility_status_enum.rb +29 -0
  31. data/lib/shell_ev/models/active_response200_json.rb +78 -0
  32. data/lib/shell_ev/models/active_response200_json_status_enum.rb +23 -0
  33. data/lib/shell_ev/models/address.rb +81 -0
  34. data/lib/shell_ev/models/base_model.rb +62 -0
  35. data/lib/shell_ev/models/chargesession_start_body.rb +59 -0
  36. data/lib/shell_ev/models/connector_vo.rb +134 -0
  37. data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +71 -0
  38. data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +29 -0
  39. data/lib/shell_ev/models/coordinates.rb +70 -0
  40. data/lib/shell_ev/models/data_active.rb +153 -0
  41. data/lib/shell_ev/models/data_active_session_code_enum.rb +44 -0
  42. data/lib/shell_ev/models/data_active_session_state_enum.rb +35 -0
  43. data/lib/shell_ev/models/data_retrieve.rb +152 -0
  44. data/lib/shell_ev/models/data_retrieve_session_code_enum.rb +44 -0
  45. data/lib/shell_ev/models/data_retrieve_session_state_enum.rb +35 -0
  46. data/lib/shell_ev/models/electrical_properties.rb +81 -0
  47. data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +26 -0
  48. data/lib/shell_ev/models/env_enum.rb +23 -0
  49. data/lib/shell_ev/models/evse_vo.rb +143 -0
  50. data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +26 -0
  51. data/lib/shell_ev/models/evse_vo_status_enum.rb +29 -0
  52. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +78 -0
  53. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +23 -0
  54. data/lib/shell_ev/models/get_locations_list_authorization_methods_enum.rb +26 -0
  55. data/lib/shell_ev/models/get_locations_list_connector_types_enum.rb +71 -0
  56. data/lib/shell_ev/models/get_locations_list_evse_status_enum.rb +29 -0
  57. data/lib/shell_ev/models/get_markers_list_authorization_methods_enum.rb +26 -0
  58. data/lib/shell_ev/models/get_markers_list_connector_types_enum.rb +71 -0
  59. data/lib/shell_ev/models/get_markers_list_evse_status_enum.rb +29 -0
  60. data/lib/shell_ev/models/get_nearby_locations_authorization_methods_enum.rb +26 -0
  61. data/lib/shell_ev/models/get_nearby_locations_connector_types_enum.rb +71 -0
  62. data/lib/shell_ev/models/get_nearby_locations_evse_status_enum.rb +29 -0
  63. data/lib/shell_ev/models/inline_response202.rb +76 -0
  64. data/lib/shell_ev/models/inline_response2021.rb +58 -0
  65. data/lib/shell_ev/models/inline_response2021_status_enum.rb +23 -0
  66. data/lib/shell_ev/models/inline_response202_data.rb +48 -0
  67. data/lib/shell_ev/models/inline_response202_status_enum.rb +23 -0
  68. data/lib/shell_ev/models/location_respone_object.rb +172 -0
  69. data/lib/shell_ev/models/m400_error_response.rb +78 -0
  70. data/lib/shell_ev/models/m400_error_response_error.rb +80 -0
  71. data/lib/shell_ev/models/m401_error_response.rb +78 -0
  72. data/lib/shell_ev/models/m401_error_response_error.rb +80 -0
  73. data/lib/shell_ev/models/m404_error_response.rb +79 -0
  74. data/lib/shell_ev/models/m404_error_response_error.rb +80 -0
  75. data/lib/shell_ev/models/m405_error_response.rb +78 -0
  76. data/lib/shell_ev/models/m405_error_response_error.rb +80 -0
  77. data/lib/shell_ev/models/m429_error_response.rb +78 -0
  78. data/lib/shell_ev/models/m429_error_response_error.rb +80 -0
  79. data/lib/shell_ev/models/m500_error_response.rb +78 -0
  80. data/lib/shell_ev/models/m500_error_response_error.rb +80 -0
  81. data/lib/shell_ev/models/m503_error_response.rb +78 -0
  82. data/lib/shell_ev/models/m503_error_response_error.rb +80 -0
  83. data/lib/shell_ev/models/multi_location_marker.rb +126 -0
  84. data/lib/shell_ev/models/o_auth_provider_error_enum.rb +45 -0
  85. data/lib/shell_ev/models/o_auth_token.rb +100 -0
  86. data/lib/shell_ev/models/opening_hours_object.rb +70 -0
  87. data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +38 -0
  88. data/lib/shell_ev/models/response_base_status_enum.rb +26 -0
  89. data/lib/shell_ev/models/response_error401_all_of1.rb +57 -0
  90. data/lib/shell_ev/models/response_error401_all_of1_errors_items.rb +80 -0
  91. data/lib/shell_ev/models/single_location_marker.rb +157 -0
  92. data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +26 -0
  93. data/lib/shell_ev/models/single_location_marker_status_enum.rb +30 -0
  94. data/lib/shell_ev/models/stop_charge_session_request_body_json.rb +48 -0
  95. data/lib/shell_ev/models/success_response.rb +58 -0
  96. data/lib/shell_ev/models/tariff_vo.rb +111 -0
  97. data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +29 -0
  98. data/lib/shell_ev/utilities/date_time_helper.rb +11 -0
  99. data/lib/shell_ev/utilities/file_wrapper.rb +16 -0
  100. data/lib/shell_ev/utilities/union_type_lookup.rb +38 -0
  101. data/lib/shell_ev.rb +125 -0
  102. data/test/controllers/controller_test_base.rb +34 -0
  103. data/test/controllers/test_charging_controller.rb +78 -0
  104. data/test/http_response_catcher.rb +19 -0
  105. metadata +224 -0
@@ -0,0 +1,352 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # LocationsController
8
+ class LocationsController < BaseController
9
+ # This API provides the list of all Shell Recharge locations. The list
10
+ # includes all Shell Recharge network and all locations available through
11
+ # our roaming partners.The end point provides flexible search criteria in
12
+ # order to get the list of Shell Recharge Network. The end point provides
13
+ # the details such as the exact location/address of the site along with the
14
+ # up-to-date status information of all the charging units in the site.
15
+ # Supported Search Options
16
+ # * Based on status of the Charging units. Eg : Available or Occupied
17
+ # * Based on available connector types.
18
+ # * Based on minimum Power output (in kW) available
19
+ # * Based on a specific charging unit ID (EVSE ID)
20
+ # @param [String] request_id Required parameter: A unique request id in GUID
21
+ # format. The value is written to the Shell API Platform audit log for end
22
+ # to end traceability of a request.
23
+ # @param [GetLocationsListEvseStatusEnum] evse_status Optional parameter:
24
+ # Filter by Locations that have the given status
25
+ # @param [GetLocationsListConnectorTypesEnum] connector_types Optional
26
+ # parameter: Filter by Locations that have Connectors with the set of
27
+ # Connector Types
28
+ # @param [Float] connector_min_power Optional parameter: Filter by Locations
29
+ # that have a Connector with at least this power output (in kW)
30
+ # @param [GetLocationsListAuthorizationMethodsEnum] authorization_methods
31
+ # Optional parameter: Filter by Locations that support the given
32
+ # Authorization Methods
33
+ # @param [TrueClass | FalseClass] with_operator_name Optional parameter:
34
+ # Return operator name in marker response object
35
+ # @param [String] evse_id Optional parameter: optional Standard EVSE
36
+ # (Electric Vehicle Supply Equipment) Id identifier (ISO-IEC-15118)
37
+ # @param [String] location_external_id Optional parameter: Filter by
38
+ # Locations with the given externalId. (Unique Location externalID provided
39
+ # by Shell Recharge)
40
+ # @param [String] evse_external_id Optional parameter: Filter by Locations
41
+ # that have an Evse with the given External Id. (Unique individual EVSE
42
+ # externalID provided by Shell Recharge)
43
+ # @param [Integer] page_number Optional parameter: Restrict the response
44
+ # list by providing a specific set of page Number. Set perPage parameter
45
+ # also when pageNumber is used.
46
+ # @param [Integer] per_page Optional parameter: Restrict the number of sites
47
+ # in reposne per page.
48
+ # @param [String] updated_since Optional parameter: ZonedDateTime as
49
+ # string
50
+ # @return [Array[LocationResponeObject]] response from the API call
51
+ def get_locations_list(request_id,
52
+ evse_status: nil,
53
+ connector_types: nil,
54
+ connector_min_power: nil,
55
+ authorization_methods: nil,
56
+ with_operator_name: nil,
57
+ evse_id: nil,
58
+ location_external_id: nil,
59
+ evse_external_id: nil,
60
+ page_number: nil,
61
+ per_page: nil,
62
+ updated_since: nil)
63
+ new_api_call_builder
64
+ .request(new_request_builder(HttpMethodEnum::GET,
65
+ '/locations/v1/ev',
66
+ Server::DEFAULT)
67
+ .header_param(new_parameter(request_id, key: 'RequestId'))
68
+ .query_param(new_parameter(evse_status, key: 'evseStatus'))
69
+ .query_param(new_parameter(connector_types, key: 'connectorTypes'))
70
+ .query_param(new_parameter(connector_min_power, key: 'connectorMinPower'))
71
+ .query_param(new_parameter(authorization_methods, key: 'authorizationMethods'))
72
+ .query_param(new_parameter(with_operator_name, key: 'withOperatorName'))
73
+ .query_param(new_parameter(evse_id, key: 'evseId'))
74
+ .query_param(new_parameter(location_external_id, key: 'locationExternalId'))
75
+ .query_param(new_parameter(evse_external_id, key: 'evseExternalId'))
76
+ .query_param(new_parameter(page_number, key: 'pageNumber'))
77
+ .query_param(new_parameter(per_page, key: 'perPage'))
78
+ .query_param(new_parameter(updated_since, key: 'updatedSince'))
79
+ .header_param(new_parameter('application/json', key: 'accept'))
80
+ .auth(Single.new('BearerAuth')))
81
+ .response(new_response_handler
82
+ .deserializer(APIHelper.method(:custom_type_deserializer))
83
+ .deserialize_into(LocationResponeObject.method(:from_hash))
84
+ .is_response_array(true)
85
+ .local_error('400',
86
+ 'The server cannot or will not process the request due to'\
87
+ ' something that is perceived to be a client error (e.g.,'\
88
+ ' malformed request syntax, invalid request message framing, or'\
89
+ ' deceptive request routing).',
90
+ BadRequestException)
91
+ .local_error('401',
92
+ 'The request has not been applied because it lacks valid'\
93
+ ' authentication credentials for the target resource.',
94
+ UnauthorizedException)
95
+ .local_error('404',
96
+ 'Location Not Found',
97
+ NotFoundException))
98
+ .execute
99
+ end
100
+
101
+ # This API provides the details on a single Shell Recharge location.
102
+ # The query for a single location is to be made using the Unique Internal
103
+ # identifier used to refer to this Location by Shell Recharge. (Uid from
104
+ # List of locations API)
105
+ # @param [String] request_id Required parameter: A unique request id in GUID
106
+ # format. The value is written to the Shell API Platform audit log for end
107
+ # to end traceability of a request.
108
+ # @param [String] id Required parameter: Unique Uid of the location from
109
+ # List of locations API
110
+ # @return [LocationResponeObject] response from the API call
111
+ def get_location_by_id(request_id,
112
+ id)
113
+ new_api_call_builder
114
+ .request(new_request_builder(HttpMethodEnum::GET,
115
+ '/locations/v1/ev/{id}',
116
+ Server::DEFAULT)
117
+ .header_param(new_parameter(request_id, key: 'RequestId'))
118
+ .template_param(new_parameter(id, key: 'id')
119
+ .should_encode(true))
120
+ .header_param(new_parameter('application/json', key: 'accept'))
121
+ .auth(Single.new('BearerAuth')))
122
+ .response(new_response_handler
123
+ .deserializer(APIHelper.method(:custom_type_deserializer))
124
+ .deserialize_into(LocationResponeObject.method(:from_hash))
125
+ .local_error('400',
126
+ 'The server cannot or will not process the request due to'\
127
+ ' something that is perceived to be a client error (e.g.,'\
128
+ ' malformed request syntax, invalid request message framing, or'\
129
+ ' deceptive request routing).',
130
+ BadRequestException)
131
+ .local_error('401',
132
+ 'The request has not been applied because it lacks valid'\
133
+ ' authentication credentials for the target resource.',
134
+ UnauthorizedException)
135
+ .local_error('404',
136
+ 'Location Not Found',
137
+ NotFoundException))
138
+ .execute
139
+ end
140
+
141
+ # This API provides the list of all near by Shell Recharge locations based
142
+ # on the latitude and longitude provided in the request.
143
+ # The list includes all Shell Recharge network and all sites available
144
+ # through our roaming partners.
145
+ # The end point provides the details such as the exact location/address of
146
+ # the site along with the up-to-date status information of all the charging
147
+ # units in the site.
148
+ # Supported Search Options
149
+ # * Based on latitude and longitude of the location. (Mandatory)
150
+ # * Based on status of the Charging units. Eg : Available or Occupied
151
+ # * Based on available connector types.
152
+ # * Based on minimum Power output (in kW) available
153
+ # @param [String] request_id Required parameter: A unique request id in GUID
154
+ # format. The value is written to the Shell API Platform audit log for end
155
+ # to end traceability of a request.
156
+ # @param [Float] latitude Required parameter: Latitude to get Shell Recharge
157
+ # Locations nearby
158
+ # @param [Float] longitude Required parameter: Longitude to get Shell
159
+ # Recharge Locations nearby
160
+ # @param [Float] limit Optional parameter: Maximum number of Locations to
161
+ # retrieve
162
+ # @param [String] location_external_id Optional parameter: Filter by
163
+ # Locations with the given externalId Identifier as given by the Shell
164
+ # Recharge Operator, unique for that Operator
165
+ # @param [String] evse_id Optional parameter: Filter by Locations that have
166
+ # an Evse with the given Evse Id
167
+ # @param [String] evse_external_id Optional parameter: Filter by Locations
168
+ # that have an Evse with the given External Id Identifier of the Evse as
169
+ # given by the Operator, unique for that Operator
170
+ # @param [String] operator_name Optional parameter: Filter by Locations that
171
+ # have the given operator
172
+ # @param [GetNearbyLocationsEvseStatusEnum] evse_status Optional parameter:
173
+ # Filter by Locations that have the given status
174
+ # @param [GetNearbyLocationsConnectorTypesEnum] connector_types Optional
175
+ # parameter: Filter by Locations that have Connectors with these Connector
176
+ # Types
177
+ # @param [Float] connector_min_power Optional parameter: Filter by Locations
178
+ # that have a Connector with at least this power output (in kW)
179
+ # @param [GetNearbyLocationsAuthorizationMethodsEnum] authorization_methods
180
+ # Optional parameter: Filter by Locations that support the given
181
+ # Authorization Methods
182
+ # @param [TrueClass | FalseClass] with_operator_name Optional parameter:
183
+ # Return operator name in marker object (only for marker type
184
+ # SingleChargePoint)
185
+ # @param [TrueClass | FalseClass] with_max_power Optional parameter: Return
186
+ # maximum power in kW across all locations grouped in this marker
187
+ # (disregarding availability)
188
+ # @return [LocationResponeObject] response from the API call
189
+ def get_nearby_locations(request_id,
190
+ latitude,
191
+ longitude,
192
+ limit: 25,
193
+ location_external_id: nil,
194
+ evse_id: nil,
195
+ evse_external_id: nil,
196
+ operator_name: nil,
197
+ evse_status: nil,
198
+ connector_types: nil,
199
+ connector_min_power: nil,
200
+ authorization_methods: nil,
201
+ with_operator_name: nil,
202
+ with_max_power: nil)
203
+ new_api_call_builder
204
+ .request(new_request_builder(HttpMethodEnum::GET,
205
+ '/locations/v1/ev/nearby',
206
+ Server::DEFAULT)
207
+ .header_param(new_parameter(request_id, key: 'RequestId'))
208
+ .query_param(new_parameter(latitude, key: 'latitude'))
209
+ .query_param(new_parameter(longitude, key: 'longitude'))
210
+ .query_param(new_parameter(limit, key: 'limit'))
211
+ .query_param(new_parameter(location_external_id, key: 'locationExternalId'))
212
+ .query_param(new_parameter(evse_id, key: 'evseId'))
213
+ .query_param(new_parameter(evse_external_id, key: 'evseExternalId'))
214
+ .query_param(new_parameter(operator_name, key: 'operatorName'))
215
+ .query_param(new_parameter(evse_status, key: 'evseStatus'))
216
+ .query_param(new_parameter(connector_types, key: 'connectorTypes'))
217
+ .query_param(new_parameter(connector_min_power, key: 'connectorMinPower'))
218
+ .query_param(new_parameter(authorization_methods, key: 'authorizationMethods'))
219
+ .query_param(new_parameter(with_operator_name, key: 'withOperatorName'))
220
+ .query_param(new_parameter(with_max_power, key: 'withMaxPower'))
221
+ .header_param(new_parameter('application/json', key: 'accept'))
222
+ .auth(Single.new('BearerAuth')))
223
+ .response(new_response_handler
224
+ .deserializer(APIHelper.method(:custom_type_deserializer))
225
+ .deserialize_into(LocationResponeObject.method(:from_hash))
226
+ .local_error('400',
227
+ 'The server cannot or will not process the request due to'\
228
+ ' something that is perceived to be a client error (e.g.,'\
229
+ ' malformed request syntax, invalid request message framing, or'\
230
+ ' deceptive request routing).',
231
+ BadRequestException)
232
+ .local_error('401',
233
+ 'The request has not been applied because it lacks valid'\
234
+ ' authentication credentials for the target resource.',
235
+ UnauthorizedException)
236
+ .local_error('404',
237
+ 'Location Not Found',
238
+ NotFoundException))
239
+ .execute
240
+ end
241
+
242
+ # This API, when given a set of bounds on the geographical front (East,West,
243
+ # North, South) will return a set of Markers that fall within the requested
244
+ # bounds. The API will automatically group locations at the same position on
245
+ # the map into one Marker.
246
+ # The API also provide further search options to filter the result set.
247
+ # * Based on status of the Charging units. Eg : Available or Occupied
248
+ # * Based on available connector types.
249
+ # * Based on minimum Power output (in kW) available
250
+ # @param [String] request_id Required parameter: A unique request id in GUID
251
+ # format. The value is written to the Shell API Platform audit log for end
252
+ # to end traceability of a request.
253
+ # @param [Float] west Required parameter: Longitude of the western bound to
254
+ # get the Shell Recharge Locations
255
+ # @param [Float] south Required parameter: Latitude of the southern bound to
256
+ # get the Shell Recharge Locations
257
+ # @param [Float] east Required parameter: Longitude of the eastern bound to
258
+ # get the Shell Recharge Locations
259
+ # @param [Float] north Required parameter: Latitude of the northern bound to
260
+ # get the Shell Recharge Locations
261
+ # @param [String] zoom Required parameter: Zoom level to show ex: (1: World,
262
+ # 5: Landmass/continent, 10: City, 15: Streets, 20: Buildings)
263
+ # @param [GetMarkersListEvseStatusEnum] evse_status Optional parameter:
264
+ # Filter by Locations that have the given status
265
+ # @param [GetMarkersListConnectorTypesEnum] connector_types Optional
266
+ # parameter: Filter by Locations that have Connectors with the set of
267
+ # Connector Types
268
+ # @param [Float] connector_min_power Optional parameter: Filter by Locations
269
+ # that have a Connector with at least this power output (in kW)
270
+ # @param [GetMarkersListAuthorizationMethodsEnum] authorization_methods
271
+ # Optional parameter: Filter by Locations that support the given
272
+ # Authorization Methods
273
+ # @param [TrueClass | FalseClass] with_operator_name Optional parameter:
274
+ # Return operator name in marker object (only for marker type
275
+ # SingleChargePoint)
276
+ # @param [TrueClass | FalseClass] with_max_power Optional parameter: Return
277
+ # maximum power in kW across all locations grouped in this marker
278
+ # (disregarding availability)
279
+ # @param [String] location_external_id Optional parameter: Filter by
280
+ # Locations with the given externalId. (Unique Location externalID provided
281
+ # by Shell Recharge)
282
+ # @param [String] evse_id Optional parameter: Filter by Locations that have
283
+ # an Evse with the given Evse Id
284
+ # @param [String] evse_external_id Optional parameter: Filter by Locations
285
+ # that have an Evse with the given External Id Identifier of the Evse as
286
+ # given by the Operator, unique for that Operator
287
+ # @param [String] operator_name Optional parameter: Filter by Locations that
288
+ # have the given operator
289
+ # @return [Array[SingleLocationMarker | MultiLocationMarker]] response from the API call
290
+ def get_markers_list(request_id,
291
+ west,
292
+ south,
293
+ east,
294
+ north,
295
+ zoom,
296
+ evse_status: nil,
297
+ connector_types: nil,
298
+ connector_min_power: nil,
299
+ authorization_methods: nil,
300
+ with_operator_name: nil,
301
+ with_max_power: nil,
302
+ location_external_id: nil,
303
+ evse_id: nil,
304
+ evse_external_id: nil,
305
+ operator_name: nil)
306
+ new_api_call_builder
307
+ .request(new_request_builder(HttpMethodEnum::GET,
308
+ '/locations/v1/ev/markers',
309
+ Server::DEFAULT)
310
+ .header_param(new_parameter(request_id, key: 'RequestId'))
311
+ .query_param(new_parameter(west, key: 'west'))
312
+ .query_param(new_parameter(south, key: 'south'))
313
+ .query_param(new_parameter(east, key: 'east'))
314
+ .query_param(new_parameter(north, key: 'north'))
315
+ .query_param(new_parameter(zoom, key: 'zoom'))
316
+ .query_param(new_parameter(evse_status, key: 'evseStatus'))
317
+ .query_param(new_parameter(connector_types, key: 'connectorTypes'))
318
+ .query_param(new_parameter(connector_min_power, key: 'connectorMinPower'))
319
+ .query_param(new_parameter(authorization_methods, key: 'authorizationMethods'))
320
+ .query_param(new_parameter(with_operator_name, key: 'withOperatorName'))
321
+ .query_param(new_parameter(with_max_power, key: 'withMaxPower'))
322
+ .query_param(new_parameter(location_external_id, key: 'locationExternalId'))
323
+ .query_param(new_parameter(evse_id, key: 'evseId'))
324
+ .query_param(new_parameter(evse_external_id, key: 'evseExternalId'))
325
+ .query_param(new_parameter(operator_name, key: 'operatorName'))
326
+ .header_param(new_parameter('application/json', key: 'accept'))
327
+ .auth(Single.new('BearerAuth')))
328
+ .response(new_response_handler
329
+ .deserializer(proc do |response, should_symbolize|
330
+ APIHelper.deserialize_union_type(
331
+ UnionTypeLookUp.get(:MarkersResponse),
332
+ response, should_symbolize, true
333
+ )
334
+ end)
335
+ .is_response_array(true)
336
+ .local_error('400',
337
+ 'The server cannot or will not process the request due to'\
338
+ ' something that is perceived to be a client error (e.g.,'\
339
+ ' malformed request syntax, invalid request message framing, or'\
340
+ ' deceptive request routing).',
341
+ BadRequestException)
342
+ .local_error('401',
343
+ 'The request has not been applied because it lacks valid'\
344
+ ' authentication credentials for the target resource.',
345
+ UnauthorizedException)
346
+ .local_error('404',
347
+ 'Location Not Found',
348
+ NotFoundException))
349
+ .execute
350
+ end
351
+ end
352
+ end
@@ -0,0 +1,42 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # OAuthAuthorizationController
8
+ class OAuthAuthorizationController < BaseController
9
+ # Create a new OAuth 2 token.
10
+ # @param [String] authorization Required parameter: Authorization header in
11
+ # Basic auth format
12
+ # @param [String] scope Optional parameter: Requested scopes as a
13
+ # space-delimited list.
14
+ # @param [Hash] _field_parameters Additional optional form parameters are
15
+ # supported by this endpoint.
16
+ # @return [OAuthToken] response from the API call
17
+ def request_token(authorization,
18
+ scope: nil,
19
+ _field_parameters: nil)
20
+ new_api_call_builder
21
+ .request(new_request_builder(HttpMethodEnum::POST,
22
+ '/v1/oauth/token',
23
+ Server::DEFAULT)
24
+ .form_param(new_parameter('client_credentials', key: 'grant_type'))
25
+ .header_param(new_parameter(authorization, key: 'Authorization'))
26
+ .form_param(new_parameter(scope, key: 'scope'))
27
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
28
+ .header_param(new_parameter('application/json', key: 'accept'))
29
+ .additional_form_params(_field_parameters))
30
+ .response(new_response_handler
31
+ .deserializer(APIHelper.method(:custom_type_deserializer))
32
+ .deserialize_into(OAuthToken.method(:from_hash))
33
+ .local_error('400',
34
+ 'OAuth 2 provider returned an error.',
35
+ OAuthProviderException)
36
+ .local_error('401',
37
+ 'OAuth 2 provider says client authentication failed.',
38
+ OAuthProviderException))
39
+ .execute
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,10 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Class for exceptions when there is a network error, status code error, etc.
8
+ class APIException < CoreLibrary::ApiException
9
+ end
10
+ end
@@ -0,0 +1,37 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # BadRequest class.
8
+ class BadRequestException < APIException
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Error code
13
+ # @return [String]
14
+ attr_accessor :code
15
+
16
+ # Error desctiption in English
17
+ # @return [String]
18
+ attr_accessor :message
19
+
20
+ # The constructor.
21
+ # @param [String] The reason for raising an exception.
22
+ # @param [HttpResponse] The HttpReponse of the API call.
23
+ def initialize(reason, response)
24
+ super(reason, response)
25
+ hash = APIHelper.json_deserialize(@response.raw_body)
26
+ unbox(hash)
27
+ end
28
+
29
+ # Populates this object by extracting properties from a hash.
30
+ # @param [Hash] The deserialized response sent by the server in the
31
+ # response body.
32
+ def unbox(hash)
33
+ @code = hash.key?('code') ? hash['code'] : SKIP
34
+ @message = hash.key?('message') ? hash['message'] : SKIP
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,52 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # HTTP 401 Error Response class.
8
+ class HTTP401ErrorResponseException < APIException
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A unique request id in GUID format. The value is written to the Shell API
13
+ # Platform audit log for end to end traceability of a request.
14
+ # @return [String]
15
+ attr_accessor :request_id
16
+
17
+ # Indicates overall status of the request
18
+ # @return [ResponseBaseStatusEnum]
19
+ attr_accessor :status
20
+
21
+ # Details of error(s) encountered
22
+ # @return [Array[ResponseError401AllOf1ErrorsItems]]
23
+ attr_accessor :errors
24
+
25
+ # The constructor.
26
+ # @param [String] The reason for raising an exception.
27
+ # @param [HttpResponse] The HttpReponse of the API call.
28
+ def initialize(reason, response)
29
+ super(reason, response)
30
+ hash = APIHelper.json_deserialize(@response.raw_body)
31
+ unbox(hash)
32
+ end
33
+
34
+ # Populates this object by extracting properties from a hash.
35
+ # @param [Hash] The deserialized response sent by the server in the
36
+ # response body.
37
+ def unbox(hash)
38
+ @request_id = hash.key?('RequestId') ? hash['RequestId'] : nil
39
+ @status = hash.key?('Status') ? hash['Status'] : nil
40
+ # Parameter is an array, so we need to iterate through it
41
+ @errors = nil
42
+ unless hash['Errors'].nil?
43
+ @errors = []
44
+ hash['Errors'].each do |structure|
45
+ @errors << (ResponseError401AllOf1ErrorsItems.from_hash(structure) if structure)
46
+ end
47
+ end
48
+
49
+ @errors = nil unless hash.key?('Errors')
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Bad Request
8
+ class M400ErrorResponseError1Exception < APIException
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Mandatory UUID (according to RFC 4122 standards) for requests and
13
+ # responses. This will be played back in the response from the request.
14
+ # @return [String]
15
+ attr_accessor :request_id
16
+
17
+ # Indicates overall status of the request
18
+ # @return [String]
19
+ attr_accessor :status
20
+
21
+ # Indicates overall status of the request
22
+ # @return [Array[M400ErrorResponseError]]
23
+ attr_accessor :errors
24
+
25
+ # The constructor.
26
+ # @param [String] The reason for raising an exception.
27
+ # @param [HttpResponse] The HttpReponse of the API call.
28
+ def initialize(reason, response)
29
+ super(reason, response)
30
+ hash = APIHelper.json_deserialize(@response.raw_body)
31
+ unbox(hash)
32
+ end
33
+
34
+ # Populates this object by extracting properties from a hash.
35
+ # @param [Hash] The deserialized response sent by the server in the
36
+ # response body.
37
+ def unbox(hash)
38
+ @request_id = hash.key?('RequestId') ? hash['RequestId'] : nil
39
+ @status = hash.key?('Status') ? hash['Status'] : nil
40
+ # Parameter is an array, so we need to iterate through it
41
+ @errors = nil
42
+ unless hash['Errors'].nil?
43
+ @errors = []
44
+ hash['Errors'].each do |structure|
45
+ @errors << (M400ErrorResponseError.from_hash(structure) if structure)
46
+ end
47
+ end
48
+
49
+ @errors = SKIP unless hash.key?('Errors')
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Unauthorized
8
+ class M401ErrorResponseError1Exception < APIException
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Mandatory UUID (according to RFC 4122 standards) for requests and
13
+ # responses. This will be played back in the response from the request.
14
+ # @return [String]
15
+ attr_accessor :request_id
16
+
17
+ # Indicates overall status of the request
18
+ # @return [String]
19
+ attr_accessor :status
20
+
21
+ # Indicates overall status of the request
22
+ # @return [Array[M401ErrorResponseError]]
23
+ attr_accessor :errors
24
+
25
+ # The constructor.
26
+ # @param [String] The reason for raising an exception.
27
+ # @param [HttpResponse] The HttpReponse of the API call.
28
+ def initialize(reason, response)
29
+ super(reason, response)
30
+ hash = APIHelper.json_deserialize(@response.raw_body)
31
+ unbox(hash)
32
+ end
33
+
34
+ # Populates this object by extracting properties from a hash.
35
+ # @param [Hash] The deserialized response sent by the server in the
36
+ # response body.
37
+ def unbox(hash)
38
+ @request_id = hash.key?('RequestId') ? hash['RequestId'] : nil
39
+ @status = hash.key?('Status') ? hash['Status'] : nil
40
+ # Parameter is an array, so we need to iterate through it
41
+ @errors = nil
42
+ unless hash['Errors'].nil?
43
+ @errors = []
44
+ hash['Errors'].each do |structure|
45
+ @errors << (M401ErrorResponseError.from_hash(structure) if structure)
46
+ end
47
+ end
48
+
49
+ @errors = SKIP unless hash.key?('Errors')
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,53 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Invalid charge token with given EmaId was not found. Backend HTTP 410 should
8
+ # be transformed to 404.
9
+ class M404ErrorResponseError1Exception < APIException
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Mandatory UUID (according to RFC 4122 standards) for requests and
14
+ # responses. This will be played back in the response from the request.
15
+ # @return [String]
16
+ attr_accessor :request_id
17
+
18
+ # Indicates overall status of the request
19
+ # @return [String]
20
+ attr_accessor :status
21
+
22
+ # Indicates overall status of the request
23
+ # @return [Array[M404ErrorResponseError]]
24
+ attr_accessor :errors
25
+
26
+ # The constructor.
27
+ # @param [String] The reason for raising an exception.
28
+ # @param [HttpResponse] The HttpReponse of the API call.
29
+ def initialize(reason, response)
30
+ super(reason, response)
31
+ hash = APIHelper.json_deserialize(@response.raw_body)
32
+ unbox(hash)
33
+ end
34
+
35
+ # Populates this object by extracting properties from a hash.
36
+ # @param [Hash] The deserialized response sent by the server in the
37
+ # response body.
38
+ def unbox(hash)
39
+ @request_id = hash.key?('RequestId') ? hash['RequestId'] : nil
40
+ @status = hash.key?('Status') ? hash['Status'] : nil
41
+ # Parameter is an array, so we need to iterate through it
42
+ @errors = nil
43
+ unless hash['Errors'].nil?
44
+ @errors = []
45
+ hash['Errors'].each do |structure|
46
+ @errors << (M404ErrorResponseError.from_hash(structure) if structure)
47
+ end
48
+ end
49
+
50
+ @errors = SKIP unless hash.key?('Errors')
51
+ end
52
+ end
53
+ end