@truepic/vision-api-types 3.85.0 → 3.87.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 (2) hide show
  1. package/index.d.ts +419 -7
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -329,7 +329,7 @@ export interface paths {
329
329
  put?: never;
330
330
  /**
331
331
  * Complete an inspection
332
- * @description Finish an inspection request and set it to Ready for Review. The inspection request must be In Progress, otherwise a `400` error will be returned.
332
+ * @description Submit an inspection. The inspection must be Started or In Progress, otherwise a `400` error will be returned. Submitting moves the inspection to Processing while photo/AI processing runs in the background. If no processing is needed, the inspection will be pushed to Ready-for-Review after a short delay. A Ready-for-Review, Closed, or already-Processing inspection is a no-op that returns `200` without changing status.
333
333
  */
334
334
  post: {
335
335
  parameters: {
@@ -343,7 +343,7 @@ export interface paths {
343
343
  };
344
344
  requestBody?: never;
345
345
  responses: {
346
- /** @description The inspection request was successfully finished and set to Ready for Review. */
346
+ /** @description The inspection was successfully submitted or the request was a no-op because the inspection was already Processing, Ready for Review, or Closed. */
347
347
  200: {
348
348
  headers: {
349
349
  [name: string]: unknown;
@@ -3327,6 +3327,8 @@ export interface components {
3327
3327
  * Independent of `disposition`, which reports only whether the answer is wrong or missing and never warns for low confidence alone — so `disposition: 'pass'` with `is_low_confidence: true` means "the answer looks fine but the model was unsure", and the inspection's `ai_status` and alert still flag it for review. A field can be both.
3328
3328
  */
3329
3329
  is_low_confidence: boolean;
3330
+ /** @description True when the model answered a `found` field by selecting its configured "not present" option (VISION-2692) — the row REPORTS ABSENCE, and clients must not render it as a positive finding. Mirrors `SerializedAIItemFieldResult.not_captured_option_selected` in `serializers/ai-inspection-items.ts`. */
3331
+ not_captured_option_selected: boolean;
3330
3332
  reasoning: string | null;
3331
3333
  sources: components["schemas"]["Source"][];
3332
3334
  status: components["schemas"]["FieldStatus"];
@@ -4464,7 +4466,7 @@ export interface components {
4464
4466
  /** @enum {string} */
4465
4467
  DeviceFlagType: "rooted_device" | "spoofed_location" | "falsified_time" | "incorrect_location" | "picture_of_photo" | "bad_photo" | "deleted_photos" | "bad_answer" | "other";
4466
4468
  /** @enum {string} */
4467
- DeviceValidationStatus: "VALID" | "REQUEST_ID_MISMATCH" | "REQUEST_ID_MISSING" | "FETCH_FROM_FINGERPRINT_FAILED" | "TIMESTAMP_TOO_FAR_IN_PAST" | "TIMESTAMP_TOO_FAR_IN_FUTURE" | "TIMESTAMP_MISSING" | "TIMESTAMP_INVALID" | "NO_FINGERPRINT_DATA" | "INVALID_FINGERPRINT_DATA" | "DECRYPT_FINGERPRINT_FAIL" | "FINGERPRINT_CONFIDENCE_LOW";
4469
+ DeviceValidationStatus: "VALID" | "REQUEST_ID_MISMATCH" | "REQUEST_ID_MISSING" | "FETCH_FROM_FINGERPRINT_FAILED" | "TIMESTAMP_TOO_FAR_IN_PAST" | "TIMESTAMP_TOO_FAR_IN_FUTURE" | "TIMESTAMP_MISSING" | "TIMESTAMP_INVALID" | "NO_FINGERPRINT_DATA" | "FINGERPRINT_NOT_COLLECTED" | "FINGERPRINT_SKIPPED" | "FINGERPRINT_NO_API_KEY" | "FINGERPRINT_NO_INSPECTION_ID" | "FINGERPRINT_BLOCKED" | "FINGERPRINT_REQUEST_FAILED" | "INVALID_FINGERPRINT_DATA" | "DECRYPT_FINGERPRINT_FAIL" | "FINGERPRINT_CONFIDENCE_LOW";
4468
4470
  DiscrepanciesOutputParams: {
4469
4471
  issue_description: string;
4470
4472
  related_item_ids: number[];
@@ -4707,6 +4709,12 @@ export interface components {
4707
4709
  * @example 2020-05-01T21:44:40.000Z
4708
4710
  */
4709
4711
  expires_at?: string | null;
4712
+ /**
4713
+ * Format: date-time
4714
+ * @description The date/time the inspection entered Processing (was submitted). Stamped on every entry into Processing (app-user submit, request-more resubmit, or request expiry), so it repopulates on resubmit. A non-null value is the durable "already submitted" signal consumed by vision-web and the mobile apps. Reset to `null` whenever a request-more moves the inspection back to In-Progress.
4715
+ * @example 2020-05-01T21:44:40.000Z
4716
+ */
4717
+ finished_at?: string | null;
4710
4718
  /**
4711
4719
  * @description The id of the group this inspection is for.
4712
4720
  * @example 23
@@ -4782,6 +4790,30 @@ export interface components {
4782
4790
  photo_uploaded_at?: string;
4783
4791
  /** @description The platform of our app that the inspection will be / has been performed on. */
4784
4792
  platform?: components["schemas"]["InspectionPlatform"];
4793
+ /**
4794
+ * Format: date-time
4795
+ * @description The date/time the inspection last entered Processing. Per-round token: the finalizer carries the round it was enqueued for and only transitions while this still matches, so a stale finalizer can't finalize a newer round. `null` for legacy inspections. VISION-2718.
4796
+ * @example 2020-05-01T21:44:40.000Z
4797
+ */
4798
+ processing_started_at?: string | null;
4799
+ /**
4800
+ * Format: date-time
4801
+ * @description The date/time the inspection moved to Ready for Review (processing completed, terminally failed, or timed out), written by the finalizer's transition. Reset to `null` whenever a request-more moves the inspection back to In-Progress and repopulated at the next finalization.
4802
+ * @example 2020-05-01T21:44:40.000Z
4803
+ */
4804
+ ready_at?: string | null;
4805
+ /**
4806
+ * Format: date-time
4807
+ * @description The date/time the Ready-for-Review assignee email was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
4808
+ * @example 2020-05-01T21:44:40.000Z
4809
+ */
4810
+ ready_for_review_email_sent_at?: string | null;
4811
+ /**
4812
+ * Format: date-time
4813
+ * @description The date/time the Ready-for-Review status webhook was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
4814
+ * @example 2020-05-01T21:44:40.000Z
4815
+ */
4816
+ ready_for_review_webhook_sent_at?: string | null;
4785
4817
  /**
4786
4818
  * Format: date-time
4787
4819
  * @description The date/time (in UTC) the inspection is scheduled to be sent to the customer
@@ -6040,6 +6072,13 @@ export interface components {
6040
6072
  * @example 2020-05-01T21:44:40.000Z
6041
6073
  */
6042
6074
  updated_at: string;
6075
+ /** @description The use case assigned to this inspection type (populated for super admins only). */
6076
+ use_case?: components["schemas"]["UseCase"];
6077
+ /**
6078
+ * @description The use case assigned to this inspection type by a super admin. References `use_cases.id`.
6079
+ * @default null
6080
+ */
6081
+ use_case_id: number | null;
6043
6082
  /**
6044
6083
  * @description When true, there is only one name for the user to fill out rather than a separate first name and last name field
6045
6084
  * @example true
@@ -6730,6 +6769,12 @@ export interface components {
6730
6769
  * @example 2020-05-01T21:44:40.000Z
6731
6770
  */
6732
6771
  expires_at?: string | null;
6772
+ /**
6773
+ * Format: date-time
6774
+ * @description The date/time the inspection entered Processing (was submitted). Stamped on every entry into Processing (app-user submit, request-more resubmit, or request expiry), so it repopulates on resubmit. A non-null value is the durable "already submitted" signal consumed by vision-web and the mobile apps. Reset to `null` whenever a request-more moves the inspection back to In-Progress.
6775
+ * @example 2020-05-01T21:44:40.000Z
6776
+ */
6777
+ finished_at?: string | null;
6733
6778
  /**
6734
6779
  * @description The id of the group this inspection is for.
6735
6780
  * @example 23
@@ -6805,6 +6850,30 @@ export interface components {
6805
6850
  photo_uploaded_at?: string;
6806
6851
  /** @description The platform of our app that the inspection will be / has been performed on. */
6807
6852
  platform?: components["schemas"]["InspectionPlatform"];
6853
+ /**
6854
+ * Format: date-time
6855
+ * @description The date/time the inspection last entered Processing. Per-round token: the finalizer carries the round it was enqueued for and only transitions while this still matches, so a stale finalizer can't finalize a newer round. `null` for legacy inspections. VISION-2718.
6856
+ * @example 2020-05-01T21:44:40.000Z
6857
+ */
6858
+ processing_started_at?: string | null;
6859
+ /**
6860
+ * Format: date-time
6861
+ * @description The date/time the inspection moved to Ready for Review (processing completed, terminally failed, or timed out), written by the finalizer's transition. Reset to `null` whenever a request-more moves the inspection back to In-Progress and repopulated at the next finalization.
6862
+ * @example 2020-05-01T21:44:40.000Z
6863
+ */
6864
+ ready_at?: string | null;
6865
+ /**
6866
+ * Format: date-time
6867
+ * @description The date/time the Ready-for-Review assignee email was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
6868
+ * @example 2020-05-01T21:44:40.000Z
6869
+ */
6870
+ ready_for_review_email_sent_at?: string | null;
6871
+ /**
6872
+ * Format: date-time
6873
+ * @description The date/time the Ready-for-Review status webhook was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
6874
+ * @example 2020-05-01T21:44:40.000Z
6875
+ */
6876
+ ready_for_review_webhook_sent_at?: string | null;
6808
6877
  /**
6809
6878
  * Format: date-time
6810
6879
  * @description The date/time (in UTC) the inspection is scheduled to be sent to the customer
@@ -7019,7 +7088,8 @@ export interface components {
7019
7088
  */
7020
7089
  test_pop: boolean;
7021
7090
  /**
7022
- * @description Whether or not to include the ris test in this alert.
7091
+ * @deprecated
7092
+ * @description Whether or not to include the ris test in this alert. Reverse Image Search is deprecated and no longer runs.
7023
7093
  * @example true
7024
7094
  */
7025
7095
  test_ris: boolean;
@@ -7306,7 +7376,7 @@ export interface components {
7306
7376
  * @description The possible statuses for an inspection.
7307
7377
  * @enum {number}
7308
7378
  */
7309
- InspectionStatusId: 1 | 2 | 3 | 4 | 5 | 6 | 7;
7379
+ InspectionStatusId: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
7310
7380
  InspectionTruepic: {
7311
7381
  /**
7312
7382
  * @description The accuracy of the GPS coordinates in meters.
@@ -7605,7 +7675,8 @@ export interface components {
7605
7675
  */
7606
7676
  processing_completed_at?: string;
7607
7677
  /**
7608
- * @description The status of a reverse-image-search test on this Truepic.
7678
+ * @deprecated
7679
+ * @description The status of a reverse-image-search test on this Truepic. Reverse Image Search is deprecated and no longer runs. New captures will have ris_status 'N' (not applicable).
7609
7680
  * @example P
7610
7681
  */
7611
7682
  ris_status: components["schemas"]["TestResult"];
@@ -7771,6 +7842,11 @@ export interface components {
7771
7842
  * @example 2020-05-01T21:44:40.000Z
7772
7843
  */
7773
7844
  updated_at: string;
7845
+ /**
7846
+ * @description The use case assigned to this inspection type by a super admin. References `use_cases.id`.
7847
+ * @default null
7848
+ */
7849
+ use_case_id: number | null;
7774
7850
  /**
7775
7851
  * @description When true, there is only one name for the user to fill out rather than a separate first name and last name field
7776
7852
  * @example true
@@ -8525,6 +8601,68 @@ export interface components {
8525
8601
  */
8526
8602
  updated_at: string;
8527
8603
  };
8604
+ /**
8605
+ * @description Evidence about the device taking an action, collected by the inspection app and recorded against the resulting activity log entry.
8606
+ *
8607
+ * Sent as the `metadata` property of the request body, with `fp.request_id` and `fp.sealed_result` always sent together. Endpoints without a request body instead accept the Fingerprint request ID on its own, via the `truepic-fp-request-id` header — one or the other, never both.
8608
+ */
8609
+ Metadata: {
8610
+ /** @description The Fingerprint identification result for the device. */
8611
+ fp?: {
8612
+ /**
8613
+ * @description The ID of the Fingerprint request the sealed result was issued for.
8614
+ * @example 1712345678901.AbCdEf
8615
+ */
8616
+ request_id: string;
8617
+ /** @description The sealed (encrypted) Fingerprint identification result, as issued by the Fingerprint client. Opaque to the caller. */
8618
+ sealed_result: string;
8619
+ };
8620
+ /**
8621
+ * @description The reason the client couldn't collect Fingerprint data, sent instead of `fp`. Known values are `skipped`, `no_api_key`, `no_inspection_id`, `blocked`, and `request_failed`; anything else is recorded as if no reason was sent. Endpoints without a request body instead accept it via the `truepic-fp-reason` header.
8622
+ * @example request_failed
8623
+ */
8624
+ fp_reason?: string;
8625
+ /** @description The location the device reported when the action was taken. */
8626
+ gps?: {
8627
+ /**
8628
+ * @description The radius of uncertainty around the location, in meters.
8629
+ * @example 5
8630
+ */
8631
+ accuracy: number;
8632
+ /**
8633
+ * @description The altitude of the location, in meters above sea level.
8634
+ * @example 17
8635
+ */
8636
+ altitude: number;
8637
+ /**
8638
+ * @description The latitude of the location, in degrees.
8639
+ * @example 43.0502488
8640
+ */
8641
+ latitude: number;
8642
+ /**
8643
+ * @description The longitude of the location, in degrees.
8644
+ * @example -77.5873941
8645
+ */
8646
+ longitude: number;
8647
+ /**
8648
+ * @description The reason the location is considered spoofed. `0` means the location is not spoofed.
8649
+ * @example 0
8650
+ */
8651
+ reason: number;
8652
+ /**
8653
+ * @description Where the location came from. `system` is the operating system and is most typical, `accessory` is a connected device such as Apple CarPlay, and `software` means it was mocked or simulated.
8654
+ * @example system
8655
+ * @enum {string|null}
8656
+ */
8657
+ source?: "accessory" | "software" | "system" | null;
8658
+ /**
8659
+ * Format: datetime
8660
+ * @description When the device reported the location.
8661
+ * @example 2025-04-14T12:05:51.007Z
8662
+ */
8663
+ timestamp: string;
8664
+ };
8665
+ };
8528
8666
  /** @enum {string} */
8529
8667
  ObjectDetectionAutomotiveObject: "tire" | "vin_plate" | "dashboard" | "license_plate" | "odometer" | "document";
8530
8668
  /**
@@ -8661,6 +8799,11 @@ export interface components {
8661
8799
  * @example 1413
8662
8800
  */
8663
8801
  created_by_user_id: number;
8802
+ /**
8803
+ * @description The default use case assigned to this organization by a super admin.
8804
+ * @default null
8805
+ */
8806
+ default_use_case_id: number | null;
8664
8807
  /**
8665
8808
  * @description The id of the resource.
8666
8809
  * @example 1843
@@ -8746,7 +8889,7 @@ export interface components {
8746
8889
  updated_by_user_id: number | null;
8747
8890
  };
8748
8891
  /** @enum {string} */
8749
- OrganizationEnabledFeatureType: "ai_analysis" | "ask_for_app_review" | "inspection_device_insights" | "device_details" | "risk_network" | "external_risk_network" | "content_analysis_odometer" | "content_analysis_text_matching" | "content_analysis_vin" | "content_analysis_dot_tin" | "object_detection_auto" | "object_detection_jewelry" | "object_detection_real_estate" | "landing_pages" | "dashboard_user_feedback_forms" | "member_homepage" | "reuse_detection" | "restrict_members_to_inspection_details" | "ai_analysis_configuration" | "guided_capture" | "verisk_sso";
8892
+ OrganizationEnabledFeatureType: "ai_analysis" | "ask_for_app_review" | "inspection_device_insights" | "device_details" | "risk_network" | "external_risk_network" | "content_analysis_odometer" | "content_analysis_text_matching" | "content_analysis_vin" | "content_analysis_dot_tin" | "object_detection_auto" | "object_detection_jewelry" | "object_detection_real_estate" | "landing_pages" | "dashboard_user_feedback_forms" | "member_homepage" | "reuse_detection" | "restrict_members_to_inspection_details" | "ai_analysis_configuration" | "guided_capture" | "verisk_sso" | "enable_processing_status_for_inspections";
8750
8893
  /** @description A possible outcome for an inspection */
8751
8894
  Outcome: {
8752
8895
  /**
@@ -9473,6 +9616,13 @@ export interface components {
9473
9616
  * @example 2020-05-01T21:44:40.000Z
9474
9617
  */
9475
9618
  updated_at: string;
9619
+ /** @description The use case assigned to this inspection type (populated for super admins only). */
9620
+ use_case?: components["schemas"]["UseCase"];
9621
+ /**
9622
+ * @description The use case assigned to this inspection type by a super admin. References `use_cases.id`.
9623
+ * @default null
9624
+ */
9625
+ use_case_id: number | null;
9476
9626
  /**
9477
9627
  * @description When true, there is only one name for the user to fill out rather than a separate first name and last name field
9478
9628
  * @example true
@@ -10059,6 +10209,12 @@ export interface components {
10059
10209
  * @example 2020-05-01T21:44:40.000Z
10060
10210
  */
10061
10211
  expires_at?: string | null;
10212
+ /**
10213
+ * Format: date-time
10214
+ * @description The date/time the inspection entered Processing (was submitted). Stamped on every entry into Processing (app-user submit, request-more resubmit, or request expiry), so it repopulates on resubmit. A non-null value is the durable "already submitted" signal consumed by vision-web and the mobile apps. Reset to `null` whenever a request-more moves the inspection back to In-Progress.
10215
+ * @example 2020-05-01T21:44:40.000Z
10216
+ */
10217
+ finished_at?: string | null;
10062
10218
  group?: components["schemas"]["Group"];
10063
10219
  /**
10064
10220
  * @description The id of the group this inspection is for.
@@ -10292,6 +10448,13 @@ export interface components {
10292
10448
  * @example 2020-05-01T21:44:40.000Z
10293
10449
  */
10294
10450
  updated_at: string;
10451
+ /** @description The use case assigned to this inspection type (populated for super admins only). */
10452
+ use_case?: components["schemas"]["UseCase"];
10453
+ /**
10454
+ * @description The use case assigned to this inspection type by a super admin. References `use_cases.id`.
10455
+ * @default null
10456
+ */
10457
+ use_case_id: number | null;
10295
10458
  /**
10296
10459
  * @description When true, there is only one name for the user to fill out rather than a separate first name and last name field
10297
10460
  * @example true
@@ -10377,6 +10540,30 @@ export interface components {
10377
10540
  photos: components["schemas"]["InspectionTruepic"][];
10378
10541
  /** @description The platform of our app that the inspection will be / has been performed on. */
10379
10542
  platform?: components["schemas"]["InspectionPlatform"];
10543
+ /**
10544
+ * Format: date-time
10545
+ * @description The date/time the inspection last entered Processing. Per-round token: the finalizer carries the round it was enqueued for and only transitions while this still matches, so a stale finalizer can't finalize a newer round. `null` for legacy inspections. VISION-2718.
10546
+ * @example 2020-05-01T21:44:40.000Z
10547
+ */
10548
+ processing_started_at?: string | null;
10549
+ /**
10550
+ * Format: date-time
10551
+ * @description The date/time the inspection moved to Ready for Review (processing completed, terminally failed, or timed out), written by the finalizer's transition. Reset to `null` whenever a request-more moves the inspection back to In-Progress and repopulated at the next finalization.
10552
+ * @example 2020-05-01T21:44:40.000Z
10553
+ */
10554
+ ready_at?: string | null;
10555
+ /**
10556
+ * Format: date-time
10557
+ * @description The date/time the Ready-for-Review assignee email was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
10558
+ * @example 2020-05-01T21:44:40.000Z
10559
+ */
10560
+ ready_for_review_email_sent_at?: string | null;
10561
+ /**
10562
+ * Format: date-time
10563
+ * @description The date/time the Ready-for-Review status webhook was enqueued by the finalizer. Durable per-channel idempotency marker: `null` means not yet sent. Reset to `null` whenever the inspection (re-)enters Processing.
10564
+ * @example 2020-05-01T21:44:40.000Z
10565
+ */
10566
+ ready_for_review_webhook_sent_at?: string | null;
10380
10567
  /**
10381
10568
  * Format: date-time
10382
10569
  * @description The date/time (in UTC) the inspection is scheduled to be sent to the customer
@@ -11197,6 +11384,17 @@ export interface components {
11197
11384
  * @example false
11198
11385
  */
11199
11386
  mutual_tls: boolean;
11387
+ /**
11388
+ * @description The OAuth `client_secret` Vision presents when requesting an access token from `oauth_config.token_url`. Write-only: it is stored encrypted and is never returned by this API. To set or rotate it, provide the new secret. To remove it, set this to null. To leave it unchanged, omit this field.
11389
+ * @example some-oauth-client-secret
11390
+ */
11391
+ oauth_client_secret?: string | null;
11392
+ /**
11393
+ * @description OAuth 2.0 client credentials configuration. When set, Vision obtains an access token from the configured token endpoint and presents it on the webhook request. Null means the webhook is delivered without OAuth.
11394
+ *
11395
+ * This is independent of the `truepic-signature` payload signature and of mutual TLS — any combination of the three can be used together.
11396
+ */
11397
+ oauth_config?: components["schemas"]["TeamWebhookOAuthConfig"] | unknown;
11200
11398
  /**
11201
11399
  * @description The id of the organization.
11202
11400
  * @example 1
@@ -11246,6 +11444,11 @@ export interface components {
11246
11444
  * @example 2023-06-01 17:12:20.097233+00
11247
11445
  */
11248
11446
  disabled_at?: string | null;
11447
+ /**
11448
+ * @description Whether or not the webhook has an OAuth `client_secret` stored.
11449
+ * @example true
11450
+ */
11451
+ has_oauth_client_secret?: boolean;
11249
11452
  /**
11250
11453
  * @description Whether or not the webhook has a secret.
11251
11454
  * @example true
@@ -11267,6 +11470,22 @@ export interface components {
11267
11470
  * @example false
11268
11471
  */
11269
11472
  mutual_tls: boolean;
11473
+ /**
11474
+ * @description The OAuth `client_secret` Vision presents when requesting an access token from `oauth_config.token_url`. Write-only: it is stored encrypted and is never returned by this API. To set or rotate it, provide the new secret. To remove it, set this to null. To leave it unchanged, omit this field.
11475
+ * @example some-oauth-client-secret
11476
+ */
11477
+ oauth_client_secret?: string | null;
11478
+ /**
11479
+ * @description The encrypted OAuth `client_secret` used when requesting an access token.
11480
+ * @example WMHadsfgYQ+348BEPcoyucKSaerwgq34gq34grstXp62P0Svn5VyEAGCKXM+CKcaw==
11481
+ */
11482
+ oauth_client_secret_encrypted?: string | null;
11483
+ /**
11484
+ * @description OAuth 2.0 client credentials configuration. When set, Vision obtains an access token from the configured token endpoint and presents it on the webhook request. Null means the webhook is delivered without OAuth.
11485
+ *
11486
+ * This is independent of the `truepic-signature` payload signature and of mutual TLS — any combination of the three can be used together.
11487
+ */
11488
+ oauth_config?: components["schemas"]["TeamWebhookOAuthConfig"] | unknown;
11270
11489
  /**
11271
11490
  * @description The id of the organization.
11272
11491
  * @example 1
@@ -11306,6 +11525,118 @@ export interface components {
11306
11525
  */
11307
11526
  vision_api_version: components["schemas"]["VisionAPIVersion"];
11308
11527
  };
11528
+ /**
11529
+ * @description OAuth 2.0 client credentials configuration for an outbound webhook.
11530
+ *
11531
+ * When present, Vision exchanges the configured credentials for a short-lived access token before delivering a webhook, and presents that token on the webhook request. The webhook payload itself is unaffected.
11532
+ *
11533
+ * The `client_secret` is not part of this object — it is supplied through the separate write-only `oauth_client_secret` field on the webhook, stored encrypted, and never returned.
11534
+ *
11535
+ * Every field other than `token_url` and `client_id` is optional; the defaults describe a standard RFC 6749 §4.4 exchange against an authorization server that returns a standard token response.
11536
+ */
11537
+ TeamWebhookOAuthConfig: {
11538
+ /**
11539
+ * @description The field in the token response that holds the access token, for authorization servers that use a non-standard name.
11540
+ * @default access_token
11541
+ * @example access_token
11542
+ */
11543
+ access_token_field: string;
11544
+ /**
11545
+ * @description Any additional parameters the token endpoint requires beyond the standard set. Sent alongside `grant_type` in the request body.
11546
+ *
11547
+ * `grant_type`, `client_id`, `client_secret`, `scope`, `audience`, and `resource` are rejected here — they are built from their own configuration fields, and a duplicate would silently replace the configured value.
11548
+ * @example {
11549
+ * "tenant": "cotality-prod"
11550
+ * }
11551
+ */
11552
+ additional_token_parameters?: {
11553
+ [key: string]: string;
11554
+ } | unknown;
11555
+ /**
11556
+ * @description The `audience` parameter, if the authorization server requires one.
11557
+ * @example https://your-gateway.example.com/
11558
+ */
11559
+ audience?: string | null;
11560
+ /**
11561
+ * @description The header the access token is presented in on the webhook request, for gateways that expect something other than `Authorization`.
11562
+ * @default Authorization
11563
+ * @example Authorization
11564
+ */
11565
+ authorization_header_name: string;
11566
+ /**
11567
+ * @description The prefix placed before the token in the authorization header. A single space separates it from the token. Set to an empty string to send the bare token with no prefix.
11568
+ * @default Bearer
11569
+ * @example Bearer
11570
+ */
11571
+ authorization_header_prefix: string;
11572
+ /**
11573
+ * @description Whether Vision caches the access token and reuses it across deliveries until shortly before it expires. Set to false to request a fresh token for every delivery — this makes token endpoint load proportional to event volume rather than to token lifetime.
11574
+ * @default true
11575
+ * @example true
11576
+ */
11577
+ cache_tokens: boolean;
11578
+ /**
11579
+ * @description How the client credentials are presented on the token request: in the request body (`client_secret_post`) or as an HTTP Basic authorization header (`client_secret_basic`).
11580
+ * @default client_secret_post
11581
+ * @example client_secret_post
11582
+ */
11583
+ client_auth_method: components["schemas"]["WebhookOAuthClientAuthMethod"];
11584
+ /**
11585
+ * @description The OAuth client identifier issued to Truepic.
11586
+ * @example truepic-vision-webhooks
11587
+ */
11588
+ client_id: string;
11589
+ /**
11590
+ * @description The lifetime Vision assumes when the token response carries no expiry at all. Required in that case — without an expiry and without this, Vision cannot know when to refresh.
11591
+ * @example 3600
11592
+ */
11593
+ default_token_lifetime_seconds?: number | null;
11594
+ /**
11595
+ * @description The field in the token response that holds the expiry as an absolute timestamp (epoch seconds, epoch milliseconds, or an ISO 8601 string) rather than a duration. Takes precedence over `expires_in_field` when set.
11596
+ * @example expires_at
11597
+ */
11598
+ expires_at_field?: string | null;
11599
+ /**
11600
+ * @description The field in the token response that holds the token lifetime as a duration. Read as either a number or a numeric string.
11601
+ * @default expires_in
11602
+ * @example expires_in
11603
+ */
11604
+ expires_in_field: string;
11605
+ /**
11606
+ * @description The unit of the duration in `expires_in_field`.
11607
+ * @default seconds
11608
+ * @example seconds
11609
+ */
11610
+ expires_in_unit: components["schemas"]["WebhookOAuthExpiresInUnit"];
11611
+ /**
11612
+ * @description Whether `grant_type` is sent in the request body (per RFC 6749) or as a query parameter on the token endpoint URL.
11613
+ * @default body
11614
+ * @example body
11615
+ */
11616
+ grant_type_placement: components["schemas"]["WebhookOAuthGrantTypePlacement"];
11617
+ /**
11618
+ * @description The `resource` parameter, if the authorization server requires one.
11619
+ * @example https://your-gateway.example.com/webhooks
11620
+ */
11621
+ resource?: string | null;
11622
+ /**
11623
+ * @description Space-delimited scopes, if the authorization server requires them.
11624
+ * @example webhooks:write
11625
+ */
11626
+ scope?: string | null;
11627
+ /**
11628
+ * @description How long Vision waits for the token endpoint to respond, in milliseconds.
11629
+ * @default 10000
11630
+ * @example 10000
11631
+ */
11632
+ token_request_timeout_ms: number;
11633
+ /**
11634
+ * Format: url
11635
+ * @description The token endpoint Vision exchanges the client credentials at. Must be HTTPS outside of local development.
11636
+ * @example https://your-gateway.example.com/oauth/token
11637
+ */
11638
+ token_url: string;
11639
+ };
11309
11640
  TeamWebhookPayload: {
11310
11641
  /**
11311
11642
  * @description An object containing any custom headers that should be sent in the webhook POST request. If you want a unique request id header to be sent, create a header with a value of "{{ UUID }}". When the webhook is sent, this will be replaced with a unique UUID for each request.
@@ -11326,6 +11657,17 @@ export interface components {
11326
11657
  * @example false
11327
11658
  */
11328
11659
  mutual_tls: boolean;
11660
+ /**
11661
+ * @description The OAuth `client_secret` Vision presents when requesting an access token from `oauth_config.token_url`. Write-only: it is stored encrypted and is never returned by this API. To set or rotate it, provide the new secret. To remove it, set this to null. To leave it unchanged, omit this field.
11662
+ * @example some-oauth-client-secret
11663
+ */
11664
+ oauth_client_secret?: string | null;
11665
+ /**
11666
+ * @description OAuth 2.0 client credentials configuration. When set, Vision obtains an access token from the configured token endpoint and presents it on the webhook request. Null means the webhook is delivered without OAuth.
11667
+ *
11668
+ * This is independent of the `truepic-signature` payload signature and of mutual TLS — any combination of the three can be used together.
11669
+ */
11670
+ oauth_config?: components["schemas"]["TeamWebhookOAuthConfig"] | unknown;
11329
11671
  /**
11330
11672
  * @description The secret used for authenticating the webhooks. When we send webhooks to your endpoint, we will add a truepic-signature header to those requests that we generate using this secret. When your endpoint receives a webhook POST request, you can then verify that the request was signed with this secret to ensure that the request is from us. If you want to remove the secret, set this to null. If you want to set a new secret, provide the new secret string. If you don't want to change the secret, omit this field.
11331
11673
  * @example some-secret-string
@@ -11370,6 +11712,11 @@ export interface components {
11370
11712
  * @example 2023-06-01 17:12:20.097233+00
11371
11713
  */
11372
11714
  disabled_at?: string | null;
11715
+ /**
11716
+ * @description Whether or not the webhook has an OAuth `client_secret` stored.
11717
+ * @example true
11718
+ */
11719
+ has_oauth_client_secret?: boolean;
11373
11720
  /**
11374
11721
  * @description Whether or not the webhook has a secret.
11375
11722
  * @example true
@@ -11391,6 +11738,12 @@ export interface components {
11391
11738
  * @example false
11392
11739
  */
11393
11740
  mutual_tls: boolean;
11741
+ /**
11742
+ * @description OAuth 2.0 client credentials configuration. When set, Vision obtains an access token from the configured token endpoint and presents it on the webhook request. Null means the webhook is delivered without OAuth.
11743
+ *
11744
+ * This is independent of the `truepic-signature` payload signature and of mutual TLS — any combination of the three can be used together.
11745
+ */
11746
+ oauth_config?: components["schemas"]["TeamWebhookOAuthConfig"] | unknown;
11394
11747
  /**
11395
11748
  * @description The id of the organization.
11396
11749
  * @example 1
@@ -12024,6 +12377,36 @@ export interface components {
12024
12377
  */
12025
12378
  team_id?: number;
12026
12379
  };
12380
+ /** @description A seeded use case belonging to an industry. */
12381
+ UseCase: {
12382
+ /**
12383
+ * Format: date-time
12384
+ * @description The date/time the resource was created
12385
+ * @example 2020-05-01T21:44:40.000Z
12386
+ */
12387
+ created_at: string;
12388
+ /**
12389
+ * @description The id of the resource.
12390
+ * @example 1
12391
+ */
12392
+ id: number;
12393
+ /**
12394
+ * @description The id of the industry this use case belongs to.
12395
+ * @example 3
12396
+ */
12397
+ industry_id: number;
12398
+ /**
12399
+ * @description The name of the use case.
12400
+ * @example Claims Processing
12401
+ */
12402
+ name: string;
12403
+ /**
12404
+ * Format: date-time
12405
+ * @description The date/time the resource was last updated
12406
+ * @example 2020-05-01T21:44:40.000Z
12407
+ */
12408
+ updated_at: string;
12409
+ };
12027
12410
  /** @description A user of Vision. This could be a Vision website user or mobile app user. */
12028
12411
  User: {
12029
12412
  /**
@@ -12124,6 +12507,23 @@ export interface components {
12124
12507
  /** @description URI of the page or document the model relied on. One URI per source — multiple supporting URIs become multiple `web_lookup` entries. */
12125
12508
  uri: string;
12126
12509
  };
12510
+ /**
12511
+ * @description How Vision presents the client credentials on the token request.
12512
+ *
12513
+ * Named after the RFC 6749 §2.3.1 client authentication methods so the value maps directly onto what an authorization server's documentation calls it.
12514
+ * @enum {string}
12515
+ */
12516
+ WebhookOAuthClientAuthMethod: "client_secret_post" | "client_secret_basic";
12517
+ /**
12518
+ * @description The unit the authorization server uses for the token expiry field.
12519
+ * @enum {string}
12520
+ */
12521
+ WebhookOAuthExpiresInUnit: "seconds" | "milliseconds";
12522
+ /**
12523
+ * @description Where Vision places `grant_type` on the token request.
12524
+ * @enum {string}
12525
+ */
12526
+ WebhookOAuthGrantTypePlacement: "body" | "query";
12127
12527
  WebsiteFormBearerSerialized: {
12128
12528
  inspection_types: {
12129
12529
  /** @description An array of custom fields that are used by this inspection type */
@@ -12427,6 +12827,18 @@ export interface components {
12427
12827
  userId: number;
12428
12828
  /** @description The unique alphanumeric identifier of the photo/video. */
12429
12829
  verificationCode: string;
12830
+ /**
12831
+ * @description The ID of the Fingerprint request identifying the device taking the action.
12832
+ *
12833
+ * Used by endpoints that have no request body to carry a `metadata` property. Recorded against the resulting activity log entry.
12834
+ */
12835
+ metadataFingerprintRequestId: string;
12836
+ /**
12837
+ * @description The reason the client could not collect Fingerprint data, sent instead of `truepic-fp-request-id`.
12838
+ *
12839
+ * Used by endpoints that have no request body to carry a `metadata` property. Recorded against the resulting activity log entry.
12840
+ */
12841
+ metadataFingerprintReason: string;
12430
12842
  /**
12431
12843
  * @description Pagination to limit the number of results returned.
12432
12844
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truepic/vision-api-types",
3
- "version": "3.85.0",
3
+ "version": "3.87.0",
4
4
  "description": "TypeScript type declarations for Truepic Vision API v3",
5
5
  "license": "MIT",
6
6
  "types": "index.d.ts",