samsara-api 4.2.0__py3-none-any.whl → 4.3.0__py3-none-any.whl

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 (159) hide show
  1. samsara/__init__.py +69 -9
  2. samsara/addresses/client.py +7 -14
  3. samsara/addresses/raw_client.py +7 -11
  4. samsara/alerts/client.py +2 -10
  5. samsara/alerts/raw_client.py +180 -180
  6. samsara/assets/__init__.py +3 -3
  7. samsara/assets/client.py +14 -45
  8. samsara/assets/raw_client.py +156 -160
  9. samsara/assets/types/__init__.py +3 -3
  10. samsara/assets/types/{assets_list_request_type.py → list_assets_request_type.py} +1 -1
  11. samsara/attributes/client.py +0 -4
  12. samsara/beta_ap_is/client.py +137 -187
  13. samsara/beta_ap_is/raw_client.py +2035 -1702
  14. samsara/carrier_proposed_assignments/client.py +2 -10
  15. samsara/client.py +5 -0
  16. samsara/coaching/client.py +2 -22
  17. samsara/coaching/raw_client.py +108 -108
  18. samsara/contacts/client.py +2 -8
  19. samsara/core/__init__.py +5 -0
  20. samsara/core/client_wrapper.py +18 -10
  21. samsara/core/custom_pagination.py +152 -0
  22. samsara/core/http_client.py +176 -90
  23. samsara/core/http_sse/__init__.py +42 -0
  24. samsara/core/http_sse/_api.py +112 -0
  25. samsara/core/http_sse/_decoders.py +61 -0
  26. samsara/core/http_sse/_exceptions.py +7 -0
  27. samsara/core/http_sse/_models.py +17 -0
  28. samsara/core/pagination.py +14 -14
  29. samsara/core/pydantic_utilities.py +3 -1
  30. samsara/documents/client.py +2 -12
  31. samsara/documents/raw_client.py +180 -180
  32. samsara/driver_qr_codes/raw_client.py +108 -108
  33. samsara/driver_vehicle_assignments/client.py +0 -12
  34. samsara/driver_vehicle_assignments/raw_client.py +144 -144
  35. samsara/drivers/__init__.py +3 -3
  36. samsara/drivers/client.py +12 -23
  37. samsara/drivers/raw_client.py +48 -52
  38. samsara/drivers/types/__init__.py +3 -3
  39. samsara/drivers/types/{drivers_list_request_driver_activation_status.py → list_drivers_request_driver_activation_status.py} +1 -1
  40. samsara/equipment/client.py +6 -22
  41. samsara/errors/bad_gateway_error.py +1 -1
  42. samsara/errors/gateway_timeout_error.py +1 -1
  43. samsara/errors/internal_server_error.py +1 -1
  44. samsara/errors/method_not_allowed_error.py +1 -1
  45. samsara/errors/not_found_error.py +1 -1
  46. samsara/errors/not_implemented_error.py +1 -1
  47. samsara/errors/service_unavailable_error.py +1 -1
  48. samsara/errors/too_many_requests_error.py +1 -1
  49. samsara/errors/unauthorized_error.py +1 -1
  50. samsara/forms/__init__.py +9 -3
  51. samsara/forms/client.py +17 -10
  52. samsara/forms/raw_client.py +265 -254
  53. samsara/forms/types/__init__.py +6 -2
  54. samsara/forms/types/form_submissions_post_form_submission_request_body_status.py +5 -0
  55. samsara/fuel_and_energy/client.py +0 -30
  56. samsara/fuel_and_energy/raw_client.py +180 -180
  57. samsara/gateways/client.py +2 -6
  58. samsara/gateways/raw_client.py +108 -108
  59. samsara/hours_of_service/__init__.py +6 -3
  60. samsara/hours_of_service/client.py +13 -52
  61. samsara/hours_of_service/raw_client.py +77 -76
  62. samsara/hours_of_service/types/__init__.py +4 -2
  63. samsara/hours_of_service/types/get_hos_daily_logs_request_expand.py +5 -0
  64. samsara/hubs/client.py +2 -94
  65. samsara/hubs/raw_client.py +216 -216
  66. samsara/idling/client.py +0 -18
  67. samsara/idling/raw_client.py +36 -36
  68. samsara/ifta/client.py +4 -34
  69. samsara/ifta/raw_client.py +144 -144
  70. samsara/industrial/client.py +12 -56
  71. samsara/industrial/raw_client.py +40 -48
  72. samsara/issues/client.py +0 -4
  73. samsara/issues/raw_client.py +108 -108
  74. samsara/legacy_ap_is/client.py +4 -56
  75. samsara/legacy_ap_is/raw_client.py +108 -108
  76. samsara/live_sharing_links/client.py +2 -10
  77. samsara/live_sharing_links/raw_client.py +144 -144
  78. samsara/location_and_speed/client.py +2 -20
  79. samsara/location_and_speed/raw_client.py +36 -36
  80. samsara/maintenance/__init__.py +3 -3
  81. samsara/maintenance/client.py +15 -30
  82. samsara/maintenance/raw_client.py +191 -182
  83. samsara/maintenance/types/__init__.py +6 -2
  84. samsara/maintenance/types/create_dvir_request_type.py +5 -0
  85. samsara/media/client.py +0 -4
  86. samsara/media/raw_client.py +108 -108
  87. samsara/messages/client.py +2 -8
  88. samsara/plans/client.py +0 -21
  89. samsara/plans/raw_client.py +72 -72
  90. samsara/preview_ap_is/client.py +0 -140
  91. samsara/preview_ap_is/raw_client.py +72 -430
  92. samsara/route_events/client.py +2 -12
  93. samsara/route_events/raw_client.py +36 -36
  94. samsara/routes/__init__.py +30 -0
  95. samsara/routes/client.py +7 -35
  96. samsara/routes/raw_client.py +257 -256
  97. samsara/routes/types/__init__.py +34 -0
  98. samsara/routes/types/get_routes_feed_request_expand.py +5 -0
  99. samsara/safety/client.py +2 -10
  100. samsara/safety/raw_client.py +36 -36
  101. samsara/settings/raw_client.py +180 -180
  102. samsara/speeding_intervals/raw_client.py +36 -36
  103. samsara/tachograph_eu_only/client.py +0 -6
  104. samsara/tags/client.py +2 -8
  105. samsara/trailer_assignments/client.py +2 -18
  106. samsara/trailers/client.py +2 -12
  107. samsara/trailers/raw_client.py +180 -180
  108. samsara/types/__init__.py +54 -0
  109. samsara/types/create_routes_stop_request_object_request_body.py +7 -0
  110. samsara/types/driver_assignment_object_response_body.py +2 -1
  111. samsara/types/driver_assignment_object_response_body_assignment_type.py +5 -0
  112. samsara/types/driver_external_ids.py +1 -1
  113. samsara/types/forms_approval_config_object_response_body.py +2 -1
  114. samsara/types/forms_approval_config_object_response_body_type.py +5 -0
  115. samsara/types/fuel_level_trigger_details_object_request_body.py +2 -1
  116. samsara/types/fuel_level_trigger_details_object_request_body_operation.py +5 -0
  117. samsara/types/fuel_level_trigger_details_object_response_body.py +4 -1
  118. samsara/types/fuel_level_trigger_details_object_response_body_operation.py +5 -0
  119. samsara/types/idling_event_object_v_20251023_response_body.py +4 -3
  120. samsara/types/idling_event_object_v_20251023_response_body_pto_state.py +5 -0
  121. samsara/types/patch_issue_request_body_assigned_to_request_body.py +2 -1
  122. samsara/types/patch_issue_request_body_assigned_to_request_body_type.py +5 -0
  123. samsara/types/reading_datapoint_request_body.py +5 -4
  124. samsara/types/reading_datapoint_request_body_entity_type.py +5 -0
  125. samsara/types/reading_history_response_body.py +1 -1
  126. samsara/types/reading_snapshot_response_body.py +1 -1
  127. samsara/types/resolved_by.py +2 -1
  128. samsara/types/resolved_by_type.py +5 -0
  129. samsara/types/route_feed_object_response_body.py +2 -1
  130. samsara/types/route_feed_object_response_body_type.py +5 -0
  131. samsara/types/route_settings_request_body.py +8 -0
  132. samsara/types/route_settings_request_body_sequencing_method.py +7 -0
  133. samsara/types/route_settings_response_body.py +8 -0
  134. samsara/types/route_settings_response_body_sequencing_method.py +7 -0
  135. samsara/types/route_stop_details_object_response_body.py +2 -1
  136. samsara/types/route_stop_details_object_response_body_type.py +5 -0
  137. samsara/types/routes_stop_response_object_response_body.py +7 -0
  138. samsara/types/training_learner_object_response_body.py +2 -1
  139. samsara/types/training_learner_object_response_body_type.py +5 -0
  140. samsara/types/update_routes_stop_request_object_request_body.py +7 -0
  141. samsara/types/vehicle_assignment_object_response_body.py +4 -3
  142. samsara/types/vehicle_assignment_object_response_body_assignment_type.py +5 -0
  143. samsara/types/vehicle_external_ids.py +1 -1
  144. samsara/types/work_order_money_object_request_body.py +2 -1
  145. samsara/types/work_order_money_object_request_body_currency.py +5 -0
  146. samsara/types/work_order_money_object_response_body.py +2 -1
  147. samsara/types/work_order_money_object_response_body_currency.py +5 -0
  148. samsara/users/client.py +4 -16
  149. samsara/vehicle_locations/client.py +4 -16
  150. samsara/vehicles/client.py +7 -22
  151. samsara/vehicles/raw_client.py +43 -47
  152. samsara/webhooks/client.py +2 -10
  153. samsara/webhooks/raw_client.py +180 -180
  154. samsara/work_orders/client.py +4 -18
  155. samsara/work_orders/raw_client.py +216 -216
  156. {samsara_api-4.2.0.dist-info → samsara_api-4.3.0.dist-info}/METADATA +2 -1
  157. {samsara_api-4.2.0.dist-info → samsara_api-4.3.0.dist-info}/RECORD +159 -132
  158. {samsara_api-4.2.0.dist-info → samsara_api-4.3.0.dist-info}/LICENSE +0 -0
  159. {samsara_api-4.2.0.dist-info → samsara_api-4.3.0.dist-info}/WHEEL +0 -0
samsara/idling/client.py CHANGED
@@ -121,15 +121,6 @@ class IdlingClient:
121
121
  client.idling.get_idling_events(
122
122
  start_time="startTime",
123
123
  end_time="endTime",
124
- pto_state="active",
125
- min_air_temperature_millicelsius=1,
126
- max_air_temperature_millicelsius=1,
127
- exclude_events_with_unknown_air_temperature=True,
128
- min_duration_milliseconds=1,
129
- max_duration_milliseconds=1,
130
- include_external_ids=True,
131
- after="after",
132
- limit=1,
133
124
  )
134
125
  """
135
126
  _response = self._raw_client.get_idling_events(
@@ -270,15 +261,6 @@ class AsyncIdlingClient:
270
261
  await client.idling.get_idling_events(
271
262
  start_time="startTime",
272
263
  end_time="endTime",
273
- pto_state="active",
274
- min_air_temperature_millicelsius=1,
275
- max_air_temperature_millicelsius=1,
276
- exclude_events_with_unknown_air_temperature=True,
277
- min_duration_milliseconds=1,
278
- max_duration_milliseconds=1,
279
- include_external_ids=True,
280
- after="after",
281
- limit=1,
282
264
  )
283
265
 
284
266
 
@@ -148,9 +148,9 @@ class RawIdlingClient:
148
148
  raise UnauthorizedError(
149
149
  headers=dict(_response.headers),
150
150
  body=typing.cast(
151
- typing.Optional[typing.Any],
151
+ typing.Any,
152
152
  parse_obj_as(
153
- type_=typing.Optional[typing.Any], # type: ignore
153
+ type_=typing.Any, # type: ignore
154
154
  object_=_response.json(),
155
155
  ),
156
156
  ),
@@ -159,9 +159,9 @@ class RawIdlingClient:
159
159
  raise NotFoundError(
160
160
  headers=dict(_response.headers),
161
161
  body=typing.cast(
162
- typing.Optional[typing.Any],
162
+ typing.Any,
163
163
  parse_obj_as(
164
- type_=typing.Optional[typing.Any], # type: ignore
164
+ type_=typing.Any, # type: ignore
165
165
  object_=_response.json(),
166
166
  ),
167
167
  ),
@@ -170,9 +170,9 @@ class RawIdlingClient:
170
170
  raise MethodNotAllowedError(
171
171
  headers=dict(_response.headers),
172
172
  body=typing.cast(
173
- typing.Optional[typing.Any],
173
+ typing.Any,
174
174
  parse_obj_as(
175
- type_=typing.Optional[typing.Any], # type: ignore
175
+ type_=typing.Any, # type: ignore
176
176
  object_=_response.json(),
177
177
  ),
178
178
  ),
@@ -181,9 +181,9 @@ class RawIdlingClient:
181
181
  raise TooManyRequestsError(
182
182
  headers=dict(_response.headers),
183
183
  body=typing.cast(
184
- typing.Optional[typing.Any],
184
+ typing.Any,
185
185
  parse_obj_as(
186
- type_=typing.Optional[typing.Any], # type: ignore
186
+ type_=typing.Any, # type: ignore
187
187
  object_=_response.json(),
188
188
  ),
189
189
  ),
@@ -192,9 +192,9 @@ class RawIdlingClient:
192
192
  raise InternalServerError(
193
193
  headers=dict(_response.headers),
194
194
  body=typing.cast(
195
- typing.Optional[typing.Any],
195
+ typing.Any,
196
196
  parse_obj_as(
197
- type_=typing.Optional[typing.Any], # type: ignore
197
+ type_=typing.Any, # type: ignore
198
198
  object_=_response.json(),
199
199
  ),
200
200
  ),
@@ -203,9 +203,9 @@ class RawIdlingClient:
203
203
  raise NotImplementedError(
204
204
  headers=dict(_response.headers),
205
205
  body=typing.cast(
206
- typing.Optional[typing.Any],
206
+ typing.Any,
207
207
  parse_obj_as(
208
- type_=typing.Optional[typing.Any], # type: ignore
208
+ type_=typing.Any, # type: ignore
209
209
  object_=_response.json(),
210
210
  ),
211
211
  ),
@@ -214,9 +214,9 @@ class RawIdlingClient:
214
214
  raise BadGatewayError(
215
215
  headers=dict(_response.headers),
216
216
  body=typing.cast(
217
- typing.Optional[typing.Any],
217
+ typing.Any,
218
218
  parse_obj_as(
219
- type_=typing.Optional[typing.Any], # type: ignore
219
+ type_=typing.Any, # type: ignore
220
220
  object_=_response.json(),
221
221
  ),
222
222
  ),
@@ -225,9 +225,9 @@ class RawIdlingClient:
225
225
  raise ServiceUnavailableError(
226
226
  headers=dict(_response.headers),
227
227
  body=typing.cast(
228
- typing.Optional[typing.Any],
228
+ typing.Any,
229
229
  parse_obj_as(
230
- type_=typing.Optional[typing.Any], # type: ignore
230
+ type_=typing.Any, # type: ignore
231
231
  object_=_response.json(),
232
232
  ),
233
233
  ),
@@ -236,9 +236,9 @@ class RawIdlingClient:
236
236
  raise GatewayTimeoutError(
237
237
  headers=dict(_response.headers),
238
238
  body=typing.cast(
239
- typing.Optional[typing.Any],
239
+ typing.Any,
240
240
  parse_obj_as(
241
- type_=typing.Optional[typing.Any], # type: ignore
241
+ type_=typing.Any, # type: ignore
242
242
  object_=_response.json(),
243
243
  ),
244
244
  ),
@@ -376,9 +376,9 @@ class AsyncRawIdlingClient:
376
376
  raise UnauthorizedError(
377
377
  headers=dict(_response.headers),
378
378
  body=typing.cast(
379
- typing.Optional[typing.Any],
379
+ typing.Any,
380
380
  parse_obj_as(
381
- type_=typing.Optional[typing.Any], # type: ignore
381
+ type_=typing.Any, # type: ignore
382
382
  object_=_response.json(),
383
383
  ),
384
384
  ),
@@ -387,9 +387,9 @@ class AsyncRawIdlingClient:
387
387
  raise NotFoundError(
388
388
  headers=dict(_response.headers),
389
389
  body=typing.cast(
390
- typing.Optional[typing.Any],
390
+ typing.Any,
391
391
  parse_obj_as(
392
- type_=typing.Optional[typing.Any], # type: ignore
392
+ type_=typing.Any, # type: ignore
393
393
  object_=_response.json(),
394
394
  ),
395
395
  ),
@@ -398,9 +398,9 @@ class AsyncRawIdlingClient:
398
398
  raise MethodNotAllowedError(
399
399
  headers=dict(_response.headers),
400
400
  body=typing.cast(
401
- typing.Optional[typing.Any],
401
+ typing.Any,
402
402
  parse_obj_as(
403
- type_=typing.Optional[typing.Any], # type: ignore
403
+ type_=typing.Any, # type: ignore
404
404
  object_=_response.json(),
405
405
  ),
406
406
  ),
@@ -409,9 +409,9 @@ class AsyncRawIdlingClient:
409
409
  raise TooManyRequestsError(
410
410
  headers=dict(_response.headers),
411
411
  body=typing.cast(
412
- typing.Optional[typing.Any],
412
+ typing.Any,
413
413
  parse_obj_as(
414
- type_=typing.Optional[typing.Any], # type: ignore
414
+ type_=typing.Any, # type: ignore
415
415
  object_=_response.json(),
416
416
  ),
417
417
  ),
@@ -420,9 +420,9 @@ class AsyncRawIdlingClient:
420
420
  raise InternalServerError(
421
421
  headers=dict(_response.headers),
422
422
  body=typing.cast(
423
- typing.Optional[typing.Any],
423
+ typing.Any,
424
424
  parse_obj_as(
425
- type_=typing.Optional[typing.Any], # type: ignore
425
+ type_=typing.Any, # type: ignore
426
426
  object_=_response.json(),
427
427
  ),
428
428
  ),
@@ -431,9 +431,9 @@ class AsyncRawIdlingClient:
431
431
  raise NotImplementedError(
432
432
  headers=dict(_response.headers),
433
433
  body=typing.cast(
434
- typing.Optional[typing.Any],
434
+ typing.Any,
435
435
  parse_obj_as(
436
- type_=typing.Optional[typing.Any], # type: ignore
436
+ type_=typing.Any, # type: ignore
437
437
  object_=_response.json(),
438
438
  ),
439
439
  ),
@@ -442,9 +442,9 @@ class AsyncRawIdlingClient:
442
442
  raise BadGatewayError(
443
443
  headers=dict(_response.headers),
444
444
  body=typing.cast(
445
- typing.Optional[typing.Any],
445
+ typing.Any,
446
446
  parse_obj_as(
447
- type_=typing.Optional[typing.Any], # type: ignore
447
+ type_=typing.Any, # type: ignore
448
448
  object_=_response.json(),
449
449
  ),
450
450
  ),
@@ -453,9 +453,9 @@ class AsyncRawIdlingClient:
453
453
  raise ServiceUnavailableError(
454
454
  headers=dict(_response.headers),
455
455
  body=typing.cast(
456
- typing.Optional[typing.Any],
456
+ typing.Any,
457
457
  parse_obj_as(
458
- type_=typing.Optional[typing.Any], # type: ignore
458
+ type_=typing.Any, # type: ignore
459
459
  object_=_response.json(),
460
460
  ),
461
461
  ),
@@ -464,9 +464,9 @@ class AsyncRawIdlingClient:
464
464
  raise GatewayTimeoutError(
465
465
  headers=dict(_response.headers),
466
466
  body=typing.cast(
467
- typing.Optional[typing.Any],
467
+ typing.Any,
468
468
  parse_obj_as(
469
- type_=typing.Optional[typing.Any], # type: ignore
469
+ type_=typing.Any, # type: ignore
470
470
  object_=_response.json(),
471
471
  ),
472
472
  ),
samsara/ifta/client.py CHANGED
@@ -102,14 +102,7 @@ class IftaClient:
102
102
  token="YOUR_TOKEN",
103
103
  )
104
104
  client.ifta.get_ifta_jurisdiction_reports(
105
- year=1,
106
- month="January",
107
- quarter="Q1",
108
- jurisdictions="jurisdictions",
109
- fuel_type="Unspecified",
110
- vehicle_ids="vehicleIds",
111
- tag_ids="tagIds",
112
- parent_tag_ids="parentTagIds",
105
+ year=1000000,
113
106
  )
114
107
  """
115
108
  _response = self._raw_client.get_ifta_jurisdiction_reports(
@@ -196,15 +189,7 @@ class IftaClient:
196
189
  token="YOUR_TOKEN",
197
190
  )
198
191
  client.ifta.get_ifta_vehicle_reports(
199
- year=1,
200
- month="January",
201
- quarter="Q1",
202
- jurisdictions="jurisdictions",
203
- fuel_type="Unspecified",
204
- vehicle_ids="vehicleIds",
205
- tag_ids="tagIds",
206
- parent_tag_ids="parentTagIds",
207
- after="after",
192
+ year=1000000,
208
193
  )
209
194
  """
210
195
  _response = self._raw_client.get_ifta_vehicle_reports(
@@ -416,14 +401,7 @@ class AsyncIftaClient:
416
401
 
417
402
  async def main() -> None:
418
403
  await client.ifta.get_ifta_jurisdiction_reports(
419
- year=1,
420
- month="January",
421
- quarter="Q1",
422
- jurisdictions="jurisdictions",
423
- fuel_type="Unspecified",
424
- vehicle_ids="vehicleIds",
425
- tag_ids="tagIds",
426
- parent_tag_ids="parentTagIds",
404
+ year=1000000,
427
405
  )
428
406
 
429
407
 
@@ -518,15 +496,7 @@ class AsyncIftaClient:
518
496
 
519
497
  async def main() -> None:
520
498
  await client.ifta.get_ifta_vehicle_reports(
521
- year=1,
522
- month="January",
523
- quarter="Q1",
524
- jurisdictions="jurisdictions",
525
- fuel_type="Unspecified",
526
- vehicle_ids="vehicleIds",
527
- tag_ids="tagIds",
528
- parent_tag_ids="parentTagIds",
529
- after="after",
499
+ year=1000000,
530
500
  )
531
501
 
532
502