tesla-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 (112) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +160 -0
  4. data/bin/console +15 -0
  5. data/lib/tesla_fleet_management_api/api_helper.rb +10 -0
  6. data/lib/tesla_fleet_management_api/client.rb +110 -0
  7. data/lib/tesla_fleet_management_api/configuration.rb +181 -0
  8. data/lib/tesla_fleet_management_api/controllers/base_controller.rb +65 -0
  9. data/lib/tesla_fleet_management_api/controllers/charging_controller.rb +62 -0
  10. data/lib/tesla_fleet_management_api/controllers/energy_controller.rb +315 -0
  11. data/lib/tesla_fleet_management_api/controllers/oauth_authorization_controller.rb +87 -0
  12. data/lib/tesla_fleet_management_api/controllers/partner_controller.rb +82 -0
  13. data/lib/tesla_fleet_management_api/controllers/user_controller.rb +73 -0
  14. data/lib/tesla_fleet_management_api/controllers/vehicles_controller.rb +431 -0
  15. data/lib/tesla_fleet_management_api/exceptions/api_exception.rb +21 -0
  16. data/lib/tesla_fleet_management_api/exceptions/oauth_provider_exception.rb +64 -0
  17. data/lib/tesla_fleet_management_api/http/api_response.rb +19 -0
  18. data/lib/tesla_fleet_management_api/http/auth/bearer_auth.rb +53 -0
  19. data/lib/tesla_fleet_management_api/http/auth/oauth_2.rb +154 -0
  20. data/lib/tesla_fleet_management_api/http/http_call_back.rb +10 -0
  21. data/lib/tesla_fleet_management_api/http/http_method_enum.rb +10 -0
  22. data/lib/tesla_fleet_management_api/http/http_request.rb +10 -0
  23. data/lib/tesla_fleet_management_api/http/http_response.rb +10 -0
  24. data/lib/tesla_fleet_management_api/http/proxy_settings.rb +22 -0
  25. data/lib/tesla_fleet_management_api/logging/configuration/api_logging_configuration.rb +186 -0
  26. data/lib/tesla_fleet_management_api/logging/sdk_logger.rb +17 -0
  27. data/lib/tesla_fleet_management_api/models/api1_dx_vehicles_options_response.rb +76 -0
  28. data/lib/tesla_fleet_management_api/models/api1_dx_warranty_details_response.rb +76 -0
  29. data/lib/tesla_fleet_management_api/models/api1_vehicles_mobile_enabled_response.rb +75 -0
  30. data/lib/tesla_fleet_management_api/models/api1_vehicles_nearby_charging_sites_response.rb +75 -0
  31. data/lib/tesla_fleet_management_api/models/api1_vehicles_response.rb +104 -0
  32. data/lib/tesla_fleet_management_api/models/api1_vehicles_response_get_vehicle.rb +75 -0
  33. data/lib/tesla_fleet_management_api/models/api1_vehicles_wake_up_response.rb +75 -0
  34. data/lib/tesla_fleet_management_api/models/backup_request.rb +75 -0
  35. data/lib/tesla_fleet_management_api/models/backup_response.rb +73 -0
  36. data/lib/tesla_fleet_management_api/models/base_model.rb +110 -0
  37. data/lib/tesla_fleet_management_api/models/calendar_history_response.rb +73 -0
  38. data/lib/tesla_fleet_management_api/models/charge_duration.rb +73 -0
  39. data/lib/tesla_fleet_management_api/models/charge_history.rb +96 -0
  40. data/lib/tesla_fleet_management_api/models/charge_history_response.rb +73 -0
  41. data/lib/tesla_fleet_management_api/models/charge_start_time.rb +73 -0
  42. data/lib/tesla_fleet_management_api/models/charging_dimension.rb +85 -0
  43. data/lib/tesla_fleet_management_api/models/charging_fee.rb +312 -0
  44. data/lib/tesla_fleet_management_api/models/charging_history_data.rb +81 -0
  45. data/lib/tesla_fleet_management_api/models/charging_history_item.rb +222 -0
  46. data/lib/tesla_fleet_management_api/models/charging_history_response.rb +73 -0
  47. data/lib/tesla_fleet_management_api/models/charging_invoice.rb +95 -0
  48. data/lib/tesla_fleet_management_api/models/charging_location.rb +158 -0
  49. data/lib/tesla_fleet_management_api/models/charging_period.rb +96 -0
  50. data/lib/tesla_fleet_management_api/models/charging_session.rb +187 -0
  51. data/lib/tesla_fleet_management_api/models/charging_sessions_data.rb +116 -0
  52. data/lib/tesla_fleet_management_api/models/charging_sessions_response.rb +73 -0
  53. data/lib/tesla_fleet_management_api/models/default_real_mode.rb +36 -0
  54. data/lib/tesla_fleet_management_api/models/driver.rb +164 -0
  55. data/lib/tesla_fleet_management_api/models/drivers_response.rb +94 -0
  56. data/lib/tesla_fleet_management_api/models/enterprise_payer_request.rb +94 -0
  57. data/lib/tesla_fleet_management_api/models/event.rb +89 -0
  58. data/lib/tesla_fleet_management_api/models/fleet_status_request.rb +74 -0
  59. data/lib/tesla_fleet_management_api/models/fleet_telemetry_error.rb +90 -0
  60. data/lib/tesla_fleet_management_api/models/fleet_telemetry_errors_response.rb +74 -0
  61. data/lib/tesla_fleet_management_api/models/fleet_telemetry_jws_request.rb +85 -0
  62. data/lib/tesla_fleet_management_api/models/generic_update_response.rb +73 -0
  63. data/lib/tesla_fleet_management_api/models/kind.rb +36 -0
  64. data/lib/tesla_fleet_management_api/models/kind_get_wall_connector_charging_history.rb +26 -0
  65. data/lib/tesla_fleet_management_api/models/live_status_response.rb +73 -0
  66. data/lib/tesla_fleet_management_api/models/location.rb +85 -0
  67. data/lib/tesla_fleet_management_api/models/location1.rb +85 -0
  68. data/lib/tesla_fleet_management_api/models/me_response.rb +73 -0
  69. data/lib/tesla_fleet_management_api/models/mobile_enabled.rb +85 -0
  70. data/lib/tesla_fleet_management_api/models/oauth_provider_error.rb +62 -0
  71. data/lib/tesla_fleet_management_api/models/oauth_token.rb +96 -0
  72. data/lib/tesla_fleet_management_api/models/off_grid_vehicle_charging_reserve_request.rb +79 -0
  73. data/lib/tesla_fleet_management_api/models/operation_request.rb +75 -0
  74. data/lib/tesla_fleet_management_api/models/orders_response.rb +91 -0
  75. data/lib/tesla_fleet_management_api/models/pagination.rb +127 -0
  76. data/lib/tesla_fleet_management_api/models/price_component.rb +95 -0
  77. data/lib/tesla_fleet_management_api/models/products_response.rb +85 -0
  78. data/lib/tesla_fleet_management_api/models/public_key_response.rb +73 -0
  79. data/lib/tesla_fleet_management_api/models/region_response.rb +73 -0
  80. data/lib/tesla_fleet_management_api/models/register_partner_request.rb +73 -0
  81. data/lib/tesla_fleet_management_api/models/register_partner_response.rb +73 -0
  82. data/lib/tesla_fleet_management_api/models/response.rb +82 -0
  83. data/lib/tesla_fleet_management_api/models/response1.rb +75 -0
  84. data/lib/tesla_fleet_management_api/models/response2.rb +74 -0
  85. data/lib/tesla_fleet_management_api/models/response3.rb +115 -0
  86. data/lib/tesla_fleet_management_api/models/response_api1_dx_vehicles_options_response.rb +84 -0
  87. data/lib/tesla_fleet_management_api/models/response_api1_dx_warranty_details_response.rb +124 -0
  88. data/lib/tesla_fleet_management_api/models/response_calendar_history_response.rb +91 -0
  89. data/lib/tesla_fleet_management_api/models/response_charge_history_response.rb +83 -0
  90. data/lib/tesla_fleet_management_api/models/response_fleet_telemetry_errors_response.rb +83 -0
  91. data/lib/tesla_fleet_management_api/models/response_live_status_response.rb +196 -0
  92. data/lib/tesla_fleet_management_api/models/response_me_response.rb +102 -0
  93. data/lib/tesla_fleet_management_api/models/response_orders_response.rb +157 -0
  94. data/lib/tesla_fleet_management_api/models/response_public_key_response.rb +74 -0
  95. data/lib/tesla_fleet_management_api/models/response_region_response.rb +83 -0
  96. data/lib/tesla_fleet_management_api/models/response_register_partner_response.rb +223 -0
  97. data/lib/tesla_fleet_management_api/models/signaling.rb +94 -0
  98. data/lib/tesla_fleet_management_api/models/simple_ok_response.rb +75 -0
  99. data/lib/tesla_fleet_management_api/models/site_info_response.rb +75 -0
  100. data/lib/tesla_fleet_management_api/models/storm_mode_request.rb +73 -0
  101. data/lib/tesla_fleet_management_api/models/tariff_element.rb +95 -0
  102. data/lib/tesla_fleet_management_api/models/tariffs.rb +94 -0
  103. data/lib/tesla_fleet_management_api/models/time_of_use_settings_request.rb +74 -0
  104. data/lib/tesla_fleet_management_api/models/total_cost.rb +95 -0
  105. data/lib/tesla_fleet_management_api/models/tou_settings.rb +77 -0
  106. data/lib/tesla_fleet_management_api/models/vehicle_base.rb +147 -0
  107. data/lib/tesla_fleet_management_api/models/vehicle_option.rb +107 -0
  108. data/lib/tesla_fleet_management_api/models/warranty_item.rb +155 -0
  109. data/lib/tesla_fleet_management_api/utilities/date_time_helper.rb +11 -0
  110. data/lib/tesla_fleet_management_api/utilities/file_wrapper.rb +28 -0
  111. data/lib/tesla_fleet_management_api.rb +153 -0
  112. metadata +195 -0
@@ -0,0 +1,431 @@
1
+ # tesla_fleet_management_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module TeslaFleetManagementApi
7
+ # VehiclesController
8
+ class VehiclesController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @return [ApiResponse] Complete http response with raw body and status code.
11
+ def list_vehicles
12
+ @api_call
13
+ .request(new_request_builder(HttpMethodEnum::GET,
14
+ '/api/1/vehicles',
15
+ Server::DEFAULT)
16
+ .header_param(new_parameter('application/json', key: 'accept'))
17
+ .auth(Single.new('bearerAuth')))
18
+ .response(new_response_handler
19
+ .deserializer(APIHelper.method(:custom_type_deserializer))
20
+ .deserialize_into(Api1VehiclesResponse.method(:from_hash))
21
+ .is_api_response(true))
22
+ .execute
23
+ end
24
+
25
+ # TODO: type endpoint description here
26
+ # @param [String] vehicle_tag Required parameter: TODO: type description
27
+ # here
28
+ # @return [ApiResponse] Complete http response with raw body and status code.
29
+ def get_vehicle(vehicle_tag)
30
+ @api_call
31
+ .request(new_request_builder(HttpMethodEnum::GET,
32
+ '/api/1/vehicles/{vehicle_tag}',
33
+ Server::DEFAULT)
34
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
35
+ .is_required(true)
36
+ .should_encode(true))
37
+ .header_param(new_parameter('application/json', key: 'accept'))
38
+ .auth(Single.new('bearerAuth')))
39
+ .response(new_response_handler
40
+ .deserializer(APIHelper.method(:custom_type_deserializer))
41
+ .deserialize_into(Api1VehiclesResponseGetVehicle.method(:from_hash))
42
+ .is_api_response(true))
43
+ .execute
44
+ end
45
+
46
+ # TODO: type endpoint description here
47
+ # @param [String] vehicle_tag Required parameter: TODO: type description
48
+ # here
49
+ # @return [ApiResponse] Complete http response with raw body and status code.
50
+ def mobile_enabled(vehicle_tag)
51
+ @api_call
52
+ .request(new_request_builder(HttpMethodEnum::GET,
53
+ '/api/1/vehicles/{vehicle_tag}/mobile_enabled',
54
+ Server::DEFAULT)
55
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
56
+ .is_required(true)
57
+ .should_encode(true))
58
+ .header_param(new_parameter('application/json', key: 'accept'))
59
+ .auth(Single.new('bearerAuth')))
60
+ .response(new_response_handler
61
+ .deserializer(APIHelper.method(:custom_type_deserializer))
62
+ .deserialize_into(Api1VehiclesMobileEnabledResponse.method(:from_hash))
63
+ .is_api_response(true))
64
+ .execute
65
+ end
66
+
67
+ # TODO: type endpoint description here
68
+ # @param [String] vehicle_tag Required parameter: TODO: type description
69
+ # here
70
+ # @return [ApiResponse] Complete http response with raw body and status code.
71
+ def nearby_charging_sites(vehicle_tag)
72
+ @api_call
73
+ .request(new_request_builder(HttpMethodEnum::GET,
74
+ '/api/1/vehicles/{vehicle_tag}/nearby_charging_sites',
75
+ Server::DEFAULT)
76
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
77
+ .is_required(true)
78
+ .should_encode(true))
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(Api1VehiclesNearbyChargingSitesResponse.method(:from_hash))
84
+ .is_api_response(true))
85
+ .execute
86
+ end
87
+
88
+ # TODO: type endpoint description here
89
+ # @param [String] vehicle_tag Required parameter: TODO: type description
90
+ # here
91
+ # @return [ApiResponse] Complete http response with raw body and status code.
92
+ def vehicle_live_data(vehicle_tag)
93
+ @api_call
94
+ .request(new_request_builder(HttpMethodEnum::GET,
95
+ '/api/1/vehicles/{vehicle_tag}/vehicle_data',
96
+ Server::DEFAULT)
97
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
98
+ .is_required(true)
99
+ .should_encode(true))
100
+ .header_param(new_parameter('application/json', key: 'accept'))
101
+ .auth(Single.new('bearerAuth')))
102
+ .response(new_response_handler
103
+ .deserializer(APIHelper.method(:custom_type_deserializer))
104
+ .deserialize_into(SiteInfoResponse.method(:from_hash))
105
+ .is_api_response(true))
106
+ .execute
107
+ end
108
+
109
+ # TODO: type endpoint description here
110
+ # @param [String] vehicle_tag Required parameter: TODO: type description
111
+ # here
112
+ # @return [ApiResponse] Complete http response with raw body and status code.
113
+ def wake_up_vehicle(vehicle_tag)
114
+ @api_call
115
+ .request(new_request_builder(HttpMethodEnum::POST,
116
+ '/api/1/vehicles/{vehicle_tag}/wake_up',
117
+ Server::DEFAULT)
118
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
119
+ .is_required(true)
120
+ .should_encode(true))
121
+ .header_param(new_parameter('application/json', key: 'accept'))
122
+ .auth(Single.new('bearerAuth')))
123
+ .response(new_response_handler
124
+ .deserializer(APIHelper.method(:custom_type_deserializer))
125
+ .deserialize_into(Api1VehiclesWakeUpResponse.method(:from_hash))
126
+ .is_api_response(true))
127
+ .execute
128
+ end
129
+
130
+ # TODO: type endpoint description here
131
+ # @param [String] vin Required parameter: TODO: type description here
132
+ # @return [ApiResponse] Complete http response with raw body and status code.
133
+ def vehicle_specs(vin)
134
+ @api_call
135
+ .request(new_request_builder(HttpMethodEnum::GET,
136
+ '/api/1/vehicles/{vin}/specs',
137
+ Server::DEFAULT)
138
+ .template_param(new_parameter(vin, key: 'vin')
139
+ .is_required(true)
140
+ .should_encode(true))
141
+ .header_param(new_parameter('application/json', key: 'accept'))
142
+ .auth(Single.new('bearerAuth')))
143
+ .response(new_response_handler
144
+ .deserializer(APIHelper.method(:custom_type_deserializer))
145
+ .deserialize_into(SiteInfoResponse.method(:from_hash))
146
+ .is_api_response(true))
147
+ .execute
148
+ end
149
+
150
+ # TODO: type endpoint description here
151
+ # @param [String] vin Required parameter: TODO: type description here
152
+ # @return [ApiResponse] Complete http response with raw body and status code.
153
+ def vehicle_options(vin)
154
+ @api_call
155
+ .request(new_request_builder(HttpMethodEnum::GET,
156
+ '/api/1/dx/vehicles/options',
157
+ Server::DEFAULT)
158
+ .query_param(new_parameter(vin, key: 'vin')
159
+ .is_required(true))
160
+ .header_param(new_parameter('application/json', key: 'accept'))
161
+ .auth(Single.new('bearerAuth')))
162
+ .response(new_response_handler
163
+ .deserializer(APIHelper.method(:custom_type_deserializer))
164
+ .deserialize_into(Api1DxVehiclesOptionsResponse.method(:from_hash))
165
+ .is_api_response(true))
166
+ .execute
167
+ end
168
+
169
+ # TODO: type endpoint description here
170
+ # @return [ApiResponse] Complete http response with raw body and status code.
171
+ def warranty_details
172
+ @api_call
173
+ .request(new_request_builder(HttpMethodEnum::GET,
174
+ '/api/1/dx/warranty/details',
175
+ Server::DEFAULT)
176
+ .header_param(new_parameter('application/json', key: 'accept'))
177
+ .auth(Single.new('bearerAuth')))
178
+ .response(new_response_handler
179
+ .deserializer(APIHelper.method(:custom_type_deserializer))
180
+ .deserialize_into(Api1DxWarrantyDetailsResponse.method(:from_hash))
181
+ .is_api_response(true))
182
+ .execute
183
+ end
184
+
185
+ # TODO: type endpoint description here
186
+ # @param [String] vehicle_tag Required parameter: TODO: type description
187
+ # here
188
+ # @return [ApiResponse] Complete http response with raw body and status code.
189
+ def get_allowed_drivers_for_a_vehicle(vehicle_tag)
190
+ @api_call
191
+ .request(new_request_builder(HttpMethodEnum::GET,
192
+ '/api/1/vehicles/{vehicle_tag}/drivers',
193
+ Server::DEFAULT)
194
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
195
+ .is_required(true)
196
+ .should_encode(true))
197
+ .header_param(new_parameter('application/json', key: 'accept'))
198
+ .auth(Single.new('bearerAuth')))
199
+ .response(new_response_handler
200
+ .deserializer(APIHelper.method(:custom_type_deserializer))
201
+ .deserialize_into(DriversResponse.method(:from_hash))
202
+ .is_api_response(true))
203
+ .execute
204
+ end
205
+
206
+ # TODO: type endpoint description here
207
+ # @param [String] vehicle_tag Required parameter: TODO: type description
208
+ # here
209
+ # @return [ApiResponse] Complete http response with raw body and status code.
210
+ def remove_driver_access_from_a_vehicle(vehicle_tag)
211
+ @api_call
212
+ .request(new_request_builder(HttpMethodEnum::DELETE,
213
+ '/api/1/vehicles/{vehicle_tag}/drivers',
214
+ Server::DEFAULT)
215
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
216
+ .is_required(true)
217
+ .should_encode(true))
218
+ .header_param(new_parameter('application/json', key: 'accept'))
219
+ .auth(Single.new('bearerAuth')))
220
+ .response(new_response_handler
221
+ .deserializer(APIHelper.method(:custom_type_deserializer))
222
+ .deserialize_into(SimpleOkResponse.method(:from_hash))
223
+ .is_api_response(true))
224
+ .execute
225
+ end
226
+
227
+ # TODO: type endpoint description here
228
+ # @param [String] vin Required parameter: TODO: type description here
229
+ # @return [ApiResponse] Complete http response with raw body and status code.
230
+ def get_eligible_vehicle_subscriptions(vin)
231
+ @api_call
232
+ .request(new_request_builder(HttpMethodEnum::GET,
233
+ '/api/1/dx/vehicles/subscriptions/eligibility',
234
+ Server::DEFAULT)
235
+ .query_param(new_parameter(vin, key: 'vin')
236
+ .is_required(true))
237
+ .header_param(new_parameter('application/json', key: 'accept'))
238
+ .auth(Single.new('bearerAuth')))
239
+ .response(new_response_handler
240
+ .deserializer(APIHelper.method(:custom_type_deserializer))
241
+ .deserialize_into(SiteInfoResponse.method(:from_hash))
242
+ .is_api_response(true))
243
+ .execute
244
+ end
245
+
246
+ # TODO: type endpoint description here
247
+ # @param [String] vin Required parameter: TODO: type description here
248
+ # @return [ApiResponse] Complete http response with raw body and status code.
249
+ def get_eligible_vehicle_upgrades(vin)
250
+ @api_call
251
+ .request(new_request_builder(HttpMethodEnum::GET,
252
+ '/api/1/dx/vehicles/upgrades/eligibility',
253
+ Server::DEFAULT)
254
+ .query_param(new_parameter(vin, key: 'vin')
255
+ .is_required(true))
256
+ .header_param(new_parameter('application/json', key: 'accept'))
257
+ .auth(Single.new('bearerAuth')))
258
+ .response(new_response_handler
259
+ .deserializer(APIHelper.method(:custom_type_deserializer))
260
+ .deserialize_into(SiteInfoResponse.method(:from_hash))
261
+ .is_api_response(true))
262
+ .execute
263
+ end
264
+
265
+ # TODO: type endpoint description here
266
+ # @param [String] vin Required parameter: TODO: type description here
267
+ # @param [EnterprisePayerRequest] body Required parameter: TODO: type
268
+ # description here
269
+ # @return [ApiResponse] Complete http response with raw body and status code.
270
+ def set_enterprise_payer_roles(vin,
271
+ body)
272
+ @api_call
273
+ .request(new_request_builder(HttpMethodEnum::POST,
274
+ '/api/1/dx/enterprise/v1/{vin}/payer',
275
+ Server::DEFAULT)
276
+ .template_param(new_parameter(vin, key: 'vin')
277
+ .is_required(true)
278
+ .should_encode(true))
279
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
280
+ .body_param(new_parameter(body)
281
+ .is_required(true))
282
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
283
+ .auth(Single.new('bearerAuth')))
284
+ .response(new_response_handler
285
+ .is_response_void(true)
286
+ .is_api_response(true))
287
+ .execute
288
+ end
289
+
290
+ # TODO: type endpoint description here
291
+ # @param [String] vin Required parameter: TODO: type description here
292
+ # @return [ApiResponse] Complete http response with raw body and status code.
293
+ def get_enterprise_roles_for_a_vehicle(vin)
294
+ @api_call
295
+ .request(new_request_builder(HttpMethodEnum::GET,
296
+ '/api/1/dx/enterprise/v1/{vin}/roles',
297
+ Server::DEFAULT)
298
+ .template_param(new_parameter(vin, key: 'vin')
299
+ .is_required(true)
300
+ .should_encode(true))
301
+ .header_param(new_parameter('application/json', key: 'accept'))
302
+ .auth(Single.new('bearerAuth')))
303
+ .response(new_response_handler
304
+ .deserializer(APIHelper.method(:json_deserialize))
305
+ .is_api_response(true))
306
+ .execute
307
+ end
308
+
309
+ # TODO: type endpoint description here
310
+ # @param [FleetStatusRequest] body Required parameter: TODO: type
311
+ # description here
312
+ # @return [ApiResponse] Complete http response with raw body and status code.
313
+ def get_fleet_status_for_vehicles(body)
314
+ @api_call
315
+ .request(new_request_builder(HttpMethodEnum::POST,
316
+ '/api/1/vehicles/fleet_status',
317
+ Server::DEFAULT)
318
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
319
+ .body_param(new_parameter(body)
320
+ .is_required(true))
321
+ .header_param(new_parameter('application/json', key: 'accept'))
322
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
323
+ .auth(Single.new('bearerAuth')))
324
+ .response(new_response_handler
325
+ .deserializer(APIHelper.method(:json_deserialize))
326
+ .is_api_response(true))
327
+ .execute
328
+ end
329
+
330
+ # TODO: type endpoint description here
331
+ # @param [Object] body Required parameter: TODO: type description here
332
+ # @return [ApiResponse] Complete http response with raw body and status code.
333
+ def create_or_update_fleet_telemetry_configuration(body)
334
+ @api_call
335
+ .request(new_request_builder(HttpMethodEnum::POST,
336
+ '/api/1/vehicles/fleet_telemetry_config',
337
+ Server::DEFAULT)
338
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
339
+ .body_param(new_parameter(body)
340
+ .is_required(true))
341
+ .header_param(new_parameter('application/json', key: 'accept'))
342
+ .body_serializer(APIHelper.method(:json_serialize))
343
+ .auth(Single.new('bearerAuth')))
344
+ .response(new_response_handler
345
+ .deserializer(APIHelper.method(:json_deserialize))
346
+ .is_api_response(true))
347
+ .execute
348
+ end
349
+
350
+ # TODO: type endpoint description here
351
+ # @param [String] vehicle_tag Required parameter: TODO: type description
352
+ # here
353
+ # @return [ApiResponse] Complete http response with raw body and status code.
354
+ def get_fleet_telemetry_configuration(vehicle_tag)
355
+ @api_call
356
+ .request(new_request_builder(HttpMethodEnum::GET,
357
+ '/api/1/vehicles/{vehicle_tag}/fleet_telemetry_config',
358
+ Server::DEFAULT)
359
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
360
+ .is_required(true)
361
+ .should_encode(true))
362
+ .header_param(new_parameter('application/json', key: 'accept'))
363
+ .auth(Single.new('bearerAuth')))
364
+ .response(new_response_handler
365
+ .deserializer(APIHelper.method(:json_deserialize))
366
+ .is_api_response(true))
367
+ .execute
368
+ end
369
+
370
+ # TODO: type endpoint description here
371
+ # @param [String] vehicle_tag Required parameter: TODO: type description
372
+ # here
373
+ # @return [ApiResponse] Complete http response with raw body and status code.
374
+ def delete_fleet_telemetry_configuration(vehicle_tag)
375
+ @api_call
376
+ .request(new_request_builder(HttpMethodEnum::DELETE,
377
+ '/api/1/vehicles/{vehicle_tag}/fleet_telemetry_config',
378
+ Server::DEFAULT)
379
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
380
+ .is_required(true)
381
+ .should_encode(true))
382
+ .header_param(new_parameter('application/json', key: 'accept'))
383
+ .auth(Single.new('bearerAuth')))
384
+ .response(new_response_handler
385
+ .deserializer(APIHelper.method(:json_deserialize))
386
+ .is_api_response(true))
387
+ .execute
388
+ end
389
+
390
+ # TODO: type endpoint description here
391
+ # @param [FleetTelemetryJwsRequest] body Required parameter: TODO: type
392
+ # description here
393
+ # @return [ApiResponse] Complete http response with raw body and status code.
394
+ def configure_fleet_telemetry_using_signed_jws_token(body)
395
+ @api_call
396
+ .request(new_request_builder(HttpMethodEnum::POST,
397
+ '/api/1/vehicles/fleet_telemetry_config_jws',
398
+ Server::DEFAULT)
399
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
400
+ .body_param(new_parameter(body)
401
+ .is_required(true))
402
+ .header_param(new_parameter('application/json', key: 'accept'))
403
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
404
+ .auth(Single.new('bearerAuth')))
405
+ .response(new_response_handler
406
+ .deserializer(APIHelper.method(:json_deserialize))
407
+ .is_api_response(true))
408
+ .execute
409
+ end
410
+
411
+ # TODO: type endpoint description here
412
+ # @param [String] vehicle_tag Required parameter: TODO: type description
413
+ # here
414
+ # @return [ApiResponse] Complete http response with raw body and status code.
415
+ def get_fleet_telemetry_errors_for_a_vehicle(vehicle_tag)
416
+ @api_call
417
+ .request(new_request_builder(HttpMethodEnum::GET,
418
+ '/api/1/vehicles/{vehicle_tag}/fleet_telemetry_errors',
419
+ Server::DEFAULT)
420
+ .template_param(new_parameter(vehicle_tag, key: 'vehicle_tag')
421
+ .is_required(true)
422
+ .should_encode(true))
423
+ .header_param(new_parameter('application/json', key: 'accept'))
424
+ .auth(Single.new('bearerAuth')))
425
+ .response(new_response_handler
426
+ .deserializer(APIHelper.method(:json_deserialize))
427
+ .is_api_response(true))
428
+ .execute
429
+ end
430
+ end
431
+ end
@@ -0,0 +1,21 @@
1
+ # tesla_fleet_management_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module TeslaFleetManagementApi
7
+ # Class for exceptions when there is a network error, status code error, etc.
8
+ class APIException < CoreLibrary::ApiException
9
+ # Provides a human-readable string representation of the object.
10
+ def to_s
11
+ class_name = self.class.name.split('::').last
12
+ "<#{class_name} status_code: #{@response_code}, reason: #{@reason}>"
13
+ end
14
+
15
+ # Provides a debugging-friendly string with detailed object information.
16
+ def inspect
17
+ class_name = self.class.name.split('::').last
18
+ "<#{class_name} status_code: #{@response_code.inspect}, reason: #{@reason.inspect}>"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,64 @@
1
+ # tesla_fleet_management_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module TeslaFleetManagementApi
7
+ # OAuth 2 Authorization endpoint exception.
8
+ class OauthProviderException < APIException
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Gets or sets error code.
13
+ # @return [OauthProviderError]
14
+ attr_accessor :error
15
+
16
+ # Gets or sets human-readable text providing additional information on
17
+ # error.
18
+ # Used to assist the client developer in understanding the error that
19
+ # occurred.
20
+ # @return [String]
21
+ attr_accessor :error_description
22
+
23
+ # Gets or sets a URI identifying a human-readable web page with information
24
+ # about the error, used to provide the client developer with additional
25
+ # information about the error.
26
+ # @return [String]
27
+ attr_accessor :error_uri
28
+
29
+ # The constructor.
30
+ # @param [String] reason The reason for raising an exception.
31
+ # @param [HttpResponse] response The HttpReponse of the API call.
32
+ def initialize(reason, response)
33
+ super(reason, response)
34
+ hash = APIHelper.json_deserialize(@response.raw_body)
35
+ unbox(hash)
36
+ end
37
+
38
+ # Populates this object by extracting properties from a hash.
39
+ # @param [Hash] hash The deserialized response sent by the server in the
40
+ # response body.
41
+ def unbox(hash)
42
+ return nil unless hash
43
+
44
+ @error = hash.key?('error') ? hash['error'] : nil
45
+ @error_description =
46
+ hash.key?('error_description') ? hash['error_description'] : SKIP
47
+ @error_uri = hash.key?('error_uri') ? hash['error_uri'] : SKIP
48
+ end
49
+
50
+ # Provides a human-readable string representation of the object.
51
+ def to_s
52
+ class_name = self.class.name.split('::').last
53
+ "<#{class_name} error: #{@error}, error_description: #{@error_description}, error_uri:"\
54
+ " #{@error_uri}>"
55
+ end
56
+
57
+ # Provides a debugging-friendly string with detailed object information.
58
+ def inspect
59
+ class_name = self.class.name.split('::').last
60
+ "<#{class_name} error: #{@error.inspect}, error_description: #{@error_description.inspect},"\
61
+ " error_uri: #{@error_uri.inspect}>"
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,19 @@
1
+ # tesla_fleet_management_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module TeslaFleetManagementApi
7
+ # Http response received.
8
+ class ApiResponse < CoreLibrary::ApiResponse
9
+ # The constructor
10
+ # @param [HttpResponse] http_response The original, raw response from the api.
11
+ # @param [Object] data The data field specified for the response.
12
+ # @param [Array<String>] errors Any errors returned by the server.
13
+ def initialize(http_response,
14
+ data: nil,
15
+ errors: nil)
16
+ super
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,53 @@
1
+ # tesla_fleet_management_api
2
+ #
3
+ # This file was automatically generated by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module TeslaFleetManagementApi
7
+ # Utility class for OAuth 2 authorization and token management.
8
+ class BearerAuth < CoreLibrary::HeaderAuth
9
+ include CoreLibrary
10
+ # Display error message on occurrence of authentication failure.
11
+ # @returns [String] The oAuth error message.
12
+ def error_message
13
+ 'BearerAuth: access_token is undefined.'
14
+ end
15
+
16
+ # Initialization constructor.
17
+ def initialize(bearer_auth_credentials)
18
+ auth_params = {}
19
+ @_access_token = bearer_auth_credentials.access_token unless
20
+ bearer_auth_credentials.nil? || bearer_auth_credentials.access_token.nil?
21
+ auth_params[:Authorization] = "Bearer #{@_access_token}" unless @_access_token.nil?
22
+
23
+ super auth_params
24
+ end
25
+ end
26
+
27
+ # Data class for BearerAuthCredentials.
28
+ class BearerAuthCredentials
29
+ attr_reader :access_token
30
+
31
+ def initialize(access_token:)
32
+ raise ArgumentError, 'access_token cannot be nil' if access_token.nil?
33
+
34
+ @access_token = access_token
35
+ end
36
+
37
+ def self.from_env
38
+ access_token = ENV['BEARER_AUTH_ACCESS_TOKEN']
39
+ all_nil = [
40
+ access_token
41
+ ].all?(&:nil?)
42
+ return nil if all_nil
43
+
44
+ new(access_token: access_token)
45
+ end
46
+
47
+ def clone_with(access_token: nil)
48
+ access_token ||= self.access_token
49
+
50
+ BearerAuthCredentials.new(access_token: access_token)
51
+ end
52
+ end
53
+ end