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
@@ -113,9 +113,9 @@ class RawSpeedingIntervalsClient:
113
113
  raise UnauthorizedError(
114
114
  headers=dict(_response.headers),
115
115
  body=typing.cast(
116
- typing.Optional[typing.Any],
116
+ typing.Any,
117
117
  parse_obj_as(
118
- type_=typing.Optional[typing.Any], # type: ignore
118
+ type_=typing.Any, # type: ignore
119
119
  object_=_response.json(),
120
120
  ),
121
121
  ),
@@ -124,9 +124,9 @@ class RawSpeedingIntervalsClient:
124
124
  raise NotFoundError(
125
125
  headers=dict(_response.headers),
126
126
  body=typing.cast(
127
- typing.Optional[typing.Any],
127
+ typing.Any,
128
128
  parse_obj_as(
129
- type_=typing.Optional[typing.Any], # type: ignore
129
+ type_=typing.Any, # type: ignore
130
130
  object_=_response.json(),
131
131
  ),
132
132
  ),
@@ -135,9 +135,9 @@ class RawSpeedingIntervalsClient:
135
135
  raise MethodNotAllowedError(
136
136
  headers=dict(_response.headers),
137
137
  body=typing.cast(
138
- typing.Optional[typing.Any],
138
+ typing.Any,
139
139
  parse_obj_as(
140
- type_=typing.Optional[typing.Any], # type: ignore
140
+ type_=typing.Any, # type: ignore
141
141
  object_=_response.json(),
142
142
  ),
143
143
  ),
@@ -146,9 +146,9 @@ class RawSpeedingIntervalsClient:
146
146
  raise TooManyRequestsError(
147
147
  headers=dict(_response.headers),
148
148
  body=typing.cast(
149
- typing.Optional[typing.Any],
149
+ typing.Any,
150
150
  parse_obj_as(
151
- type_=typing.Optional[typing.Any], # type: ignore
151
+ type_=typing.Any, # type: ignore
152
152
  object_=_response.json(),
153
153
  ),
154
154
  ),
@@ -157,9 +157,9 @@ class RawSpeedingIntervalsClient:
157
157
  raise InternalServerError(
158
158
  headers=dict(_response.headers),
159
159
  body=typing.cast(
160
- typing.Optional[typing.Any],
160
+ typing.Any,
161
161
  parse_obj_as(
162
- type_=typing.Optional[typing.Any], # type: ignore
162
+ type_=typing.Any, # type: ignore
163
163
  object_=_response.json(),
164
164
  ),
165
165
  ),
@@ -168,9 +168,9 @@ class RawSpeedingIntervalsClient:
168
168
  raise NotImplementedError(
169
169
  headers=dict(_response.headers),
170
170
  body=typing.cast(
171
- typing.Optional[typing.Any],
171
+ typing.Any,
172
172
  parse_obj_as(
173
- type_=typing.Optional[typing.Any], # type: ignore
173
+ type_=typing.Any, # type: ignore
174
174
  object_=_response.json(),
175
175
  ),
176
176
  ),
@@ -179,9 +179,9 @@ class RawSpeedingIntervalsClient:
179
179
  raise BadGatewayError(
180
180
  headers=dict(_response.headers),
181
181
  body=typing.cast(
182
- typing.Optional[typing.Any],
182
+ typing.Any,
183
183
  parse_obj_as(
184
- type_=typing.Optional[typing.Any], # type: ignore
184
+ type_=typing.Any, # type: ignore
185
185
  object_=_response.json(),
186
186
  ),
187
187
  ),
@@ -190,9 +190,9 @@ class RawSpeedingIntervalsClient:
190
190
  raise ServiceUnavailableError(
191
191
  headers=dict(_response.headers),
192
192
  body=typing.cast(
193
- typing.Optional[typing.Any],
193
+ typing.Any,
194
194
  parse_obj_as(
195
- type_=typing.Optional[typing.Any], # type: ignore
195
+ type_=typing.Any, # type: ignore
196
196
  object_=_response.json(),
197
197
  ),
198
198
  ),
@@ -201,9 +201,9 @@ class RawSpeedingIntervalsClient:
201
201
  raise GatewayTimeoutError(
202
202
  headers=dict(_response.headers),
203
203
  body=typing.cast(
204
- typing.Optional[typing.Any],
204
+ typing.Any,
205
205
  parse_obj_as(
206
- type_=typing.Optional[typing.Any], # type: ignore
206
+ type_=typing.Any, # type: ignore
207
207
  object_=_response.json(),
208
208
  ),
209
209
  ),
@@ -304,9 +304,9 @@ class AsyncRawSpeedingIntervalsClient:
304
304
  raise UnauthorizedError(
305
305
  headers=dict(_response.headers),
306
306
  body=typing.cast(
307
- typing.Optional[typing.Any],
307
+ typing.Any,
308
308
  parse_obj_as(
309
- type_=typing.Optional[typing.Any], # type: ignore
309
+ type_=typing.Any, # type: ignore
310
310
  object_=_response.json(),
311
311
  ),
312
312
  ),
@@ -315,9 +315,9 @@ class AsyncRawSpeedingIntervalsClient:
315
315
  raise NotFoundError(
316
316
  headers=dict(_response.headers),
317
317
  body=typing.cast(
318
- typing.Optional[typing.Any],
318
+ typing.Any,
319
319
  parse_obj_as(
320
- type_=typing.Optional[typing.Any], # type: ignore
320
+ type_=typing.Any, # type: ignore
321
321
  object_=_response.json(),
322
322
  ),
323
323
  ),
@@ -326,9 +326,9 @@ class AsyncRawSpeedingIntervalsClient:
326
326
  raise MethodNotAllowedError(
327
327
  headers=dict(_response.headers),
328
328
  body=typing.cast(
329
- typing.Optional[typing.Any],
329
+ typing.Any,
330
330
  parse_obj_as(
331
- type_=typing.Optional[typing.Any], # type: ignore
331
+ type_=typing.Any, # type: ignore
332
332
  object_=_response.json(),
333
333
  ),
334
334
  ),
@@ -337,9 +337,9 @@ class AsyncRawSpeedingIntervalsClient:
337
337
  raise TooManyRequestsError(
338
338
  headers=dict(_response.headers),
339
339
  body=typing.cast(
340
- typing.Optional[typing.Any],
340
+ typing.Any,
341
341
  parse_obj_as(
342
- type_=typing.Optional[typing.Any], # type: ignore
342
+ type_=typing.Any, # type: ignore
343
343
  object_=_response.json(),
344
344
  ),
345
345
  ),
@@ -348,9 +348,9 @@ class AsyncRawSpeedingIntervalsClient:
348
348
  raise InternalServerError(
349
349
  headers=dict(_response.headers),
350
350
  body=typing.cast(
351
- typing.Optional[typing.Any],
351
+ typing.Any,
352
352
  parse_obj_as(
353
- type_=typing.Optional[typing.Any], # type: ignore
353
+ type_=typing.Any, # type: ignore
354
354
  object_=_response.json(),
355
355
  ),
356
356
  ),
@@ -359,9 +359,9 @@ class AsyncRawSpeedingIntervalsClient:
359
359
  raise NotImplementedError(
360
360
  headers=dict(_response.headers),
361
361
  body=typing.cast(
362
- typing.Optional[typing.Any],
362
+ typing.Any,
363
363
  parse_obj_as(
364
- type_=typing.Optional[typing.Any], # type: ignore
364
+ type_=typing.Any, # type: ignore
365
365
  object_=_response.json(),
366
366
  ),
367
367
  ),
@@ -370,9 +370,9 @@ class AsyncRawSpeedingIntervalsClient:
370
370
  raise BadGatewayError(
371
371
  headers=dict(_response.headers),
372
372
  body=typing.cast(
373
- typing.Optional[typing.Any],
373
+ typing.Any,
374
374
  parse_obj_as(
375
- type_=typing.Optional[typing.Any], # type: ignore
375
+ type_=typing.Any, # type: ignore
376
376
  object_=_response.json(),
377
377
  ),
378
378
  ),
@@ -381,9 +381,9 @@ class AsyncRawSpeedingIntervalsClient:
381
381
  raise ServiceUnavailableError(
382
382
  headers=dict(_response.headers),
383
383
  body=typing.cast(
384
- typing.Optional[typing.Any],
384
+ typing.Any,
385
385
  parse_obj_as(
386
- type_=typing.Optional[typing.Any], # type: ignore
386
+ type_=typing.Any, # type: ignore
387
387
  object_=_response.json(),
388
388
  ),
389
389
  ),
@@ -392,9 +392,9 @@ class AsyncRawSpeedingIntervalsClient:
392
392
  raise GatewayTimeoutError(
393
393
  headers=dict(_response.headers),
394
394
  body=typing.cast(
395
- typing.Optional[typing.Any],
395
+ typing.Any,
396
396
  parse_obj_as(
397
- type_=typing.Optional[typing.Any], # type: ignore
397
+ type_=typing.Any, # type: ignore
398
398
  object_=_response.json(),
399
399
  ),
400
400
  ),
@@ -79,7 +79,6 @@ class TachographEuOnlyClient:
79
79
  token="YOUR_TOKEN",
80
80
  )
81
81
  client.tachograph_eu_only.get_driver_tachograph_activity(
82
- after="after",
83
82
  start_time="startTime",
84
83
  end_time="endTime",
85
84
  )
@@ -151,7 +150,6 @@ class TachographEuOnlyClient:
151
150
  token="YOUR_TOKEN",
152
151
  )
153
152
  client.tachograph_eu_only.get_driver_tachograph_files(
154
- after="after",
155
153
  start_time="startTime",
156
154
  end_time="endTime",
157
155
  )
@@ -223,7 +221,6 @@ class TachographEuOnlyClient:
223
221
  token="YOUR_TOKEN",
224
222
  )
225
223
  client.tachograph_eu_only.get_vehicle_tachograph_files(
226
- after="after",
227
224
  start_time="startTime",
228
225
  end_time="endTime",
229
226
  )
@@ -314,7 +311,6 @@ class AsyncTachographEuOnlyClient:
314
311
 
315
312
  async def main() -> None:
316
313
  await client.tachograph_eu_only.get_driver_tachograph_activity(
317
- after="after",
318
314
  start_time="startTime",
319
315
  end_time="endTime",
320
316
  )
@@ -394,7 +390,6 @@ class AsyncTachographEuOnlyClient:
394
390
 
395
391
  async def main() -> None:
396
392
  await client.tachograph_eu_only.get_driver_tachograph_files(
397
- after="after",
398
393
  start_time="startTime",
399
394
  end_time="endTime",
400
395
  )
@@ -474,7 +469,6 @@ class AsyncTachographEuOnlyClient:
474
469
 
475
470
  async def main() -> None:
476
471
  await client.tachograph_eu_only.get_vehicle_tachograph_files(
477
- after="after",
478
472
  start_time="startTime",
479
473
  end_time="endTime",
480
474
  )
samsara/tags/client.py CHANGED
@@ -66,10 +66,7 @@ class TagsClient:
66
66
  client = Samsara(
67
67
  token="YOUR_TOKEN",
68
68
  )
69
- client.tags.list_tags(
70
- limit=1000000,
71
- after="after",
72
- )
69
+ client.tags.list_tags()
73
70
  """
74
71
  _response = self._raw_client.list_tags(limit=limit, after=after, request_options=request_options)
75
72
  return _response.data
@@ -460,10 +457,7 @@ class AsyncTagsClient:
460
457
 
461
458
 
462
459
  async def main() -> None:
463
- await client.tags.list_tags(
464
- limit=1000000,
465
- after="after",
466
- )
460
+ await client.tags.list_tags()
467
461
 
468
462
 
469
463
  asyncio.run(main())
@@ -82,13 +82,7 @@ class TrailerAssignmentsClient:
82
82
  client = Samsara(
83
83
  token="YOUR_TOKEN",
84
84
  )
85
- client.trailer_assignments.v_1_get_all_trailer_assignments(
86
- start_ms=1000000,
87
- end_ms=1000000,
88
- limit=1000000,
89
- starting_after="startingAfter",
90
- ending_before="endingBefore",
91
- )
85
+ client.trailer_assignments.v_1_get_all_trailer_assignments()
92
86
  """
93
87
  _response = self._raw_client.v_1_get_all_trailer_assignments(
94
88
  start_ms=start_ms,
@@ -152,8 +146,6 @@ class TrailerAssignmentsClient:
152
146
  )
153
147
  client.trailer_assignments.v_1_get_fleet_trailer_assignments(
154
148
  trailer_id=1000000,
155
- start_ms=1000000,
156
- end_ms=1000000,
157
149
  )
158
150
  """
159
151
  _response = self._raw_client.v_1_get_fleet_trailer_assignments(
@@ -240,13 +232,7 @@ class AsyncTrailerAssignmentsClient:
240
232
 
241
233
 
242
234
  async def main() -> None:
243
- await client.trailer_assignments.v_1_get_all_trailer_assignments(
244
- start_ms=1000000,
245
- end_ms=1000000,
246
- limit=1000000,
247
- starting_after="startingAfter",
248
- ending_before="endingBefore",
249
- )
235
+ await client.trailer_assignments.v_1_get_all_trailer_assignments()
250
236
 
251
237
 
252
238
  asyncio.run(main())
@@ -318,8 +304,6 @@ class AsyncTrailerAssignmentsClient:
318
304
  async def main() -> None:
319
305
  await client.trailer_assignments.v_1_get_fleet_trailer_assignments(
320
306
  trailer_id=1000000,
321
- start_ms=1000000,
322
- end_ms=1000000,
323
307
  )
324
308
 
325
309
 
@@ -78,12 +78,7 @@ class TrailersClient:
78
78
  client = Samsara(
79
79
  token="YOUR_TOKEN",
80
80
  )
81
- client.trailers.list_trailers(
82
- tag_ids="tagIds",
83
- parent_tag_ids="parentTagIds",
84
- limit=1,
85
- after="after",
86
- )
81
+ client.trailers.list_trailers()
87
82
  """
88
83
  _response = self._raw_client.list_trailers(
89
84
  tag_ids=tag_ids, parent_tag_ids=parent_tag_ids, limit=limit, after=after, request_options=request_options
@@ -410,12 +405,7 @@ class AsyncTrailersClient:
410
405
 
411
406
 
412
407
  async def main() -> None:
413
- await client.trailers.list_trailers(
414
- tag_ids="tagIds",
415
- parent_tag_ids="parentTagIds",
416
- limit=1,
417
- after="after",
418
- )
408
+ await client.trailers.list_trailers()
419
409
 
420
410
 
421
411
  asyncio.run(main())