diff --git a/.fern/metadata.json b/.fern/metadata.json index bc57bdf..42fddf0 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -6,5 +6,5 @@ "namespaceExport": "Samsara", "generateWireTests": true }, - "sdkVersion": "7.1.0" + "sdkVersion": "7.2.0" } diff --git a/package.json b/package.json index aeefaa9..bbb83ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@samsarahq/samsara", - "version": "7.1.0", + "version": "7.2.0", "private": false, "repository": { "type": "git", diff --git a/reference.md b/reference.md index 6f5d1fb..f8e92c6 100644 --- a/reference.md +++ b/reference.md @@ -2997,6 +2997,79 @@ await client.betaApIs.listCarbCtcVehicleHistory({ + + + + +
client.betaApIs.resolveAssignmentByDetails({ ...params }) -> Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Resolves a driver by name within an organization via voice sign-in, then creates a driver-vehicle assignment via the Driver Assignment Service. + + Rate limit: 100 requests/min (learn more about rate limits here). + +To use this endpoint, select **Write Assignments** under the Assignments category when creating or editing an API token. Learn More. + + + **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our API feedback form. If you encountered an issue or noticed inaccuracies in the API documentation, please submit a case to our support team. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.betaApIs.resolveAssignmentByDetails({ + driverName: "Jane Doe", + vehicleId: "281474978683353" +}); + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request:** `Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody` + +
+
+ +
+
+ +**requestOptions:** `BetaApIsClient.RequestOptions` + +
+
+
+
+ +
diff --git a/src/BaseClient.ts b/src/BaseClient.ts index 4b808cc..bede35c 100644 --- a/src/BaseClient.ts +++ b/src/BaseClient.ts @@ -55,8 +55,8 @@ export function normalizeClientOptionsRate limit: 100 requests/min (learn more about rate limits here). + * + * To use this endpoint, select **Write Assignments** under the Assignments category when creating or editing an API token. Learn More. + * + * + * **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our API feedback form. If you encountered an issue or noticed inaccuracies in the API documentation, please submit a case to our support team. + * + * @param {Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody} request + * @param {BetaApIsClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Samsara.UnauthorizedError} + * @throws {@link Samsara.NotFoundError} + * @throws {@link Samsara.MethodNotAllowedError} + * @throws {@link Samsara.TooManyRequestsError} + * @throws {@link Samsara.InternalServerError} + * @throws {@link Samsara.NotImplementedError} + * @throws {@link Samsara.BadGatewayError} + * @throws {@link Samsara.ServiceUnavailableError} + * @throws {@link Samsara.GatewayTimeoutError} + * + * @example + * await client.betaApIs.resolveAssignmentByDetails({ + * driverName: "Jane Doe", + * vehicleId: "281474978683353" + * }) + */ + public resolveAssignmentByDetails( + request: Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody, + requestOptions?: BetaApIsClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__resolveAssignmentByDetails(request, requestOptions)); + } + + private async __resolveAssignmentByDetails( + request: Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody, + requestOptions?: BetaApIsClient.RequestOptions, + ): Promise> { + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest(); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + mergeOnlyDefinedHeaders({ "X-Samsara-Version": requestOptions?.version }), + requestOptions?.headers, + ); + const _response = await core.fetcher({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.SamsaraEnvironment.ProductionApi, + "fleet/drivers/voice-sign-in/resolve-assignment", + ), + method: "POST", + headers: _headers, + contentType: "application/json", + queryParameters: requestOptions?.queryParams, + requestType: "json", + body: request, + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: _response.body as Samsara.ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody, + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 401: + throw new Samsara.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); + case 404: + throw new Samsara.NotFoundError(_response.error.body as unknown, _response.rawResponse); + case 405: + throw new Samsara.MethodNotAllowedError(_response.error.body as unknown, _response.rawResponse); + case 429: + throw new Samsara.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); + case 500: + throw new Samsara.InternalServerError(_response.error.body as unknown, _response.rawResponse); + case 501: + throw new Samsara.NotImplementedError(_response.error.body as unknown, _response.rawResponse); + case 502: + throw new Samsara.BadGatewayError(_response.error.body as unknown, _response.rawResponse); + case 503: + throw new Samsara.ServiceUnavailableError(_response.error.body as unknown, _response.rawResponse); + case 504: + throw new Samsara.GatewayTimeoutError(_response.error.body as unknown, _response.rawResponse); + default: + throw new errors.SamsaraError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + } + + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/fleet/drivers/voice-sign-in/resolve-assignment", + ); + } + /** * Returns the list of vendor categories available for maintenance vendors. * diff --git a/src/api/resources/betaApIs/client/requests/ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody.ts b/src/api/resources/betaApIs/client/requests/ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody.ts new file mode 100644 index 0000000..6afbccc --- /dev/null +++ b/src/api/resources/betaApIs/client/requests/ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody.ts @@ -0,0 +1,15 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * @example + * { + * driverName: "Jane Doe", + * vehicleId: "281474978683353" + * } + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody { + /** The full name of the driver to resolve. */ + driverName: string; + /** The vehicle ID. This can be either a unique Samsara ID or an external ID for the vehicle. */ + vehicleId: string; +} diff --git a/src/api/resources/betaApIs/client/requests/index.ts b/src/api/resources/betaApIs/client/requests/index.ts index 29b5d8b..d8f5a46 100644 --- a/src/api/resources/betaApIs/client/requests/index.ts +++ b/src/api/resources/betaApIs/client/requests/index.ts @@ -58,6 +58,7 @@ export type { QualificationsPostQualificationRecordRequestBody } from "./Qualifi export type { QualificationsUnarchiveQualificationRecordRequestBody } from "./QualificationsUnarchiveQualificationRecordRequestBody.js"; export type { ReadingsPostReadingsRequestBody } from "./ReadingsPostReadingsRequestBody.js"; export type { ReportsCreateReportRunRequestBody } from "./ReportsCreateReportRunRequestBody.js"; +export type { ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody } from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsRequestBody.js"; export type { RidershipAccountsCreateRidershipAccountRequestBody } from "./RidershipAccountsCreateRidershipAccountRequestBody.js"; export type { RidershipAccountsUpdateRidershipAccountRequestBody } from "./RidershipAccountsUpdateRidershipAccountRequestBody.js"; export { RidershipPassengersCreateRidershipPassengerRequestBody } from "./RidershipPassengersCreateRidershipPassengerRequestBody.js"; diff --git a/src/api/types/DvirDefectsObjectV20220913ResponseBody.ts b/src/api/types/DvirDefectsObjectV20220913ResponseBody.ts index 5c9dc57..6831894 100644 --- a/src/api/types/DvirDefectsObjectV20220913ResponseBody.ts +++ b/src/api/types/DvirDefectsObjectV20220913ResponseBody.ts @@ -10,8 +10,12 @@ export interface DvirDefectsObjectV20220913ResponseBody { comment?: string | undefined; /** Time when the defect was created. UTC timestamp in RFC 3339 format. */ createdAtTime: string; + /** The severity of the DVIR defect. Valid values: `minor`, `major`, `unspecified` */ + defectSeverity?: DvirDefectsObjectV20220913ResponseBody.DefectSeverity | undefined; /** The type of DVIR defect. */ defectType: string; + /** The ID of the DVIR defect type. */ + defectTypeId?: string | undefined; /** The ID of the defect. */ id: string; /** Signifies if this defect is resolved. */ @@ -26,3 +30,13 @@ export interface DvirDefectsObjectV20220913ResponseBody { trailer?: Samsara.GoaTrailerTinyResponseResponseBody | undefined; vehicle?: Samsara.VehicleWithGatewayTinyResponseResponseBody | undefined; } + +export namespace DvirDefectsObjectV20220913ResponseBody { + /** The severity of the DVIR defect. Valid values: `minor`, `major`, `unspecified` */ + export const DefectSeverity = { + Minor: "minor", + Major: "major", + Unspecified: "unspecified", + } as const; + export type DefectSeverity = (typeof DefectSeverity)[keyof typeof DefectSeverity]; +} diff --git a/src/api/types/MissingStateResponseBody.ts b/src/api/types/MissingStateResponseBody.ts index f1816b9..3575955 100644 --- a/src/api/types/MissingStateResponseBody.ts +++ b/src/api/types/MissingStateResponseBody.ts @@ -14,10 +14,19 @@ export interface MissingStateResponseBody { note?: string | undefined; /** Users subscribed to location update notifications for this asset. */ notification_recipients?: Samsara.NotificationRecipientResponseResponseBody[] | undefined; + /** The source of the last update to this recovery state. Defaults to `dashboard` if not explicitly set. Valid values: `dashboard`, `api` */ + update_source?: MissingStateResponseBody.UpdateSource | undefined; /** Timestamp when the asset was marked as missing, in milliseconds since epoch. */ updated_at_ms: number; /** The ID of the user who marked the asset as missing. */ updated_by_user_id?: number | undefined; - /** The unique UUID of this recovery state record. */ - uuid: string; +} + +export namespace MissingStateResponseBody { + /** The source of the last update to this recovery state. Defaults to `dashboard` if not explicitly set. Valid values: `dashboard`, `api` */ + export const UpdateSource = { + Dashboard: "dashboard", + Api: "api", + } as const; + export type UpdateSource = (typeof UpdateSource)[keyof typeof UpdateSource]; } diff --git a/src/api/types/RecoveryStateResponseBody.ts b/src/api/types/RecoveryStateResponseBody.ts index c881fdd..56e8a56 100644 --- a/src/api/types/RecoveryStateResponseBody.ts +++ b/src/api/types/RecoveryStateResponseBody.ts @@ -16,10 +16,19 @@ export interface RecoveryStateResponseBody { notification_recipients?: Samsara.NotificationRecipientResponseResponseBody[] | undefined; /** Photos associated with the recovery event. URLs are temporary and expire at url_expires_at_ms. */ recovery_photos?: Samsara.RecoveryPhotoResponseBody[] | undefined; + /** The source of the last update to this recovery state. Defaults to `dashboard` if not explicitly set. Valid values: `dashboard`, `api` */ + update_source?: RecoveryStateResponseBody.UpdateSource | undefined; /** Timestamp when the recovery state was last updated, in milliseconds since epoch. */ updated_at_ms: number; /** The ID of the user who last updated the recovery state. */ updated_by_user_id?: number | undefined; - /** The unique UUID of this recovery state record. */ - uuid: string; +} + +export namespace RecoveryStateResponseBody { + /** The source of the last update to this recovery state. Defaults to `dashboard` if not explicitly set. Valid values: `dashboard`, `api` */ + export const UpdateSource = { + Dashboard: "dashboard", + Api: "api", + } as const; + export type UpdateSource = (typeof UpdateSource)[keyof typeof UpdateSource]; } diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsBadGatewayErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsBadGatewayErrorResponseBody.ts new file mode 100644 index 0000000..9c9baf3 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsBadGatewayErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Bad Gateway + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsBadGatewayErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsGatewayTimeoutErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsGatewayTimeoutErrorResponseBody.ts new file mode 100644 index 0000000..0cf345b --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsGatewayTimeoutErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Gateway timeout + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsGatewayTimeoutErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsInternalServerErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsInternalServerErrorResponseBody.ts new file mode 100644 index 0000000..a2cece7 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsInternalServerErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * An internal server error occurred + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsInternalServerErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsMethodNotAllowedErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsMethodNotAllowedErrorResponseBody.ts new file mode 100644 index 0000000..f277170 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsMethodNotAllowedErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Method not allowed + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsMethodNotAllowedErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotFoundErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotFoundErrorResponseBody.ts new file mode 100644 index 0000000..47092c9 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotFoundErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Resource not found + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsNotFoundErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotImplementedErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotImplementedErrorResponseBody.ts new file mode 100644 index 0000000..79b3cc3 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsNotImplementedErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Requested endpoint is not yet implemented + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsNotImplementedErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody.ts new file mode 100644 index 0000000..218f48b --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody.ts @@ -0,0 +1,7 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Samsara from "../index.js"; + +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody { + data: Samsara.ResolveAssignmentByDetailsResponseBodyResponseBody; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsServiceUnavailableErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsServiceUnavailableErrorResponseBody.ts new file mode 100644 index 0000000..53a5dd4 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsServiceUnavailableErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Service unavailable + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsServiceUnavailableErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsTooManyRequestsErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsTooManyRequestsErrorResponseBody.ts new file mode 100644 index 0000000..d74b4da --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsTooManyRequestsErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Too many requests + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsTooManyRequestsErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsUnauthorizedErrorResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsUnauthorizedErrorResponseBody.ts new file mode 100644 index 0000000..302a5c4 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResolveAssignmentByDetailsUnauthorizedErrorResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Unauthorized + */ +export interface ResolveAssignmentByDetailsResolveAssignmentByDetailsUnauthorizedErrorResponseBody { + /** Message of error */ + message: string; + /** The request ID; used when reaching out to support for issues with requests. */ + requestId: string; +} diff --git a/src/api/types/ResolveAssignmentByDetailsResponseBodyResponseBody.ts b/src/api/types/ResolveAssignmentByDetailsResponseBodyResponseBody.ts new file mode 100644 index 0000000..b3ddd46 --- /dev/null +++ b/src/api/types/ResolveAssignmentByDetailsResponseBodyResponseBody.ts @@ -0,0 +1,11 @@ +// This file was auto-generated by Fern from our API Definition. + +/** + * Response body containing the resolved driver information. + */ +export interface ResolveAssignmentByDetailsResponseBodyResponseBody { + /** The resolved Samsara driver ID. */ + driverId: string; + /** The matched driver name. */ + driverName: string; +} diff --git a/src/api/types/index.ts b/src/api/types/index.ts index f064673..0354520 100644 --- a/src/api/types/index.ts +++ b/src/api/types/index.ts @@ -1882,6 +1882,17 @@ export * from "./ReportsGetReportRunsResponseBody.js"; export * from "./ReportsGetReportRunsServiceUnavailableErrorResponseBody.js"; export * from "./ReportsGetReportRunsTooManyRequestsErrorResponseBody.js"; export * from "./ReportsGetReportRunsUnauthorizedErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsBadGatewayErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsGatewayTimeoutErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsInternalServerErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsMethodNotAllowedErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsNotFoundErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsNotImplementedErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsServiceUnavailableErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsTooManyRequestsErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResolveAssignmentByDetailsUnauthorizedErrorResponseBody.js"; +export * from "./ResolveAssignmentByDetailsResponseBodyResponseBody.js"; export * from "./ResolvedBy.js"; export * from "./ReverseGeo.js"; export * from "./ReverseGeoObjectResponseBody.js"; diff --git a/src/version.ts b/src/version.ts index 07bfe91..bce628b 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = "7.1.0"; +export const SDK_VERSION = "7.2.0"; diff --git a/tests/wire/betaApIs.test.ts b/tests/wire/betaApIs.test.ts index 891e978..fe411ec 100644 --- a/tests/wire/betaApIs.test.ts +++ b/tests/wire/betaApIs.test.ts @@ -5181,9 +5181,9 @@ describe("BetaApIsClient", () => { user_id: 1234, }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, ], pagination: { endCursor: "MjkY", hasNextPage: true }, @@ -5211,9 +5211,9 @@ describe("BetaApIsClient", () => { user_id: 1234, }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, ], pagination: { @@ -5447,9 +5447,9 @@ describe("BetaApIsClient", () => { notification_recipients: [ { email: "jane.doe@example.com", name: "Jane Doe", notification_types: ["email"], user_id: 1234 }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, }; server @@ -5477,9 +5477,9 @@ describe("BetaApIsClient", () => { user_id: 1234, }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, }); }); @@ -5743,9 +5743,9 @@ describe("BetaApIsClient", () => { url_expires_at_ms: 1609462800000, }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, }; server @@ -5784,9 +5784,9 @@ describe("BetaApIsClient", () => { url_expires_at_ms: 1609462800000, }, ], + update_source: "dashboard", updated_at_ms: 1609459200000, updated_by_user_id: 1234, - uuid: "550e8400-e29b-41d4-a716-446655440000", }, }); }); @@ -6586,6 +6586,280 @@ describe("BetaApIsClient", () => { }).rejects.toThrow(Samsara.GatewayTimeoutError); }); + test("resolveAssignmentByDetails (1)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "Jane Doe", vehicleId: "281474978683353" }; + const rawResponseBody = { data: { driverId: "1234567", driverName: "Jane Doe" } }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.betaApIs.resolveAssignmentByDetails({ + driverName: "Jane Doe", + vehicleId: "281474978683353", + }); + expect(response).toEqual({ + data: { + driverId: "1234567", + driverName: "Jane Doe", + }, + }); + }); + + test("resolveAssignmentByDetails (2)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.UnauthorizedError); + }); + + test("resolveAssignmentByDetails (3)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.NotFoundError); + }); + + test("resolveAssignmentByDetails (4)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(405) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.MethodNotAllowedError); + }); + + test("resolveAssignmentByDetails (5)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.TooManyRequestsError); + }); + + test("resolveAssignmentByDetails (6)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(500) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.InternalServerError); + }); + + test("resolveAssignmentByDetails (7)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(501) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.NotImplementedError); + }); + + test("resolveAssignmentByDetails (8)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(502) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.BadGatewayError); + }); + + test("resolveAssignmentByDetails (9)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(503) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.ServiceUnavailableError); + }); + + test("resolveAssignmentByDetails (10)", async () => { + const server = mockServerPool.createServer(); + const client = new SamsaraClient({ + maxRetries: 0, + token: "test", + version: "2025-06-11", + environment: server.baseUrl, + }); + const rawRequestBody = { driverName: "driverName", vehicleId: "vehicleId" }; + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .post("/fleet/drivers/voice-sign-in/resolve-assignment") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(504) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.betaApIs.resolveAssignmentByDetails({ + driverName: "driverName", + vehicleId: "vehicleId", + }); + }).rejects.toThrow(Samsara.GatewayTimeoutError); + }); + test("listVendorCategories (1)", async () => { const server = mockServerPool.createServer(); const client = new SamsaraClient({