4824 lines
120 KiB
YAML
4824 lines
120 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Fleet Ops API
|
|
description: Generated contract for Fleet Ops. The visible product name is Fleet
|
|
Ops; MobilityOps remains the technical repository and service identifier.
|
|
version: 0.1.0
|
|
servers:
|
|
- url: http://localhost:8128
|
|
paths:
|
|
/health:
|
|
get:
|
|
summary: Health
|
|
operationId: health_health_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Health Health Get
|
|
/health/live:
|
|
get:
|
|
summary: Liveness
|
|
description: Process liveness only; external dependencies deliberately do not
|
|
affect it.
|
|
operationId: liveness_health_live_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Liveness Health Live Get
|
|
/health/ready:
|
|
get:
|
|
summary: Readiness
|
|
description: 'Traffic readiness: the API is useful only while its canonical
|
|
database responds.'
|
|
operationId: readiness_health_ready_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/api/v1/system/status:
|
|
get:
|
|
summary: System Status
|
|
operationId: system_status_api_v1_system_status_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Response System Status Api V1 System Status Get
|
|
/api/v1/demo/manifest:
|
|
get:
|
|
tags:
|
|
- demo
|
|
summary: Demo Manifest
|
|
operationId: demo_manifest_api_v1_demo_manifest_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DemoManifestOut'
|
|
/api/v1/demo/login:
|
|
post:
|
|
tags:
|
|
- demo
|
|
summary: Demo Login
|
|
operationId: demo_login_api_v1_demo_login_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DemoLoginRequest'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CurrentUser'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/demo/session:
|
|
get:
|
|
tags:
|
|
- demo
|
|
summary: Get Session
|
|
operationId: get_session_api_v1_demo_session_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CurrentUser'
|
|
/api/v1/demo/logout:
|
|
post:
|
|
tags:
|
|
- demo
|
|
summary: Demo Logout
|
|
operationId: demo_logout_api_v1_demo_logout_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Response Demo Logout Api V1 Demo Logout Post
|
|
/api/v1/demo/reset:
|
|
post:
|
|
tags:
|
|
- demo
|
|
summary: Demo Reset
|
|
operationId: demo_reset_api_v1_demo_reset_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Response Demo Reset Api V1 Demo Reset Post
|
|
/api/v1/auth/oidc/status:
|
|
get:
|
|
tags:
|
|
- auth
|
|
summary: Oidc Status
|
|
operationId: oidc_status_api_v1_auth_oidc_status_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OidcStatusOut'
|
|
/api/v1/auth/oidc/login:
|
|
get:
|
|
tags:
|
|
- auth
|
|
summary: Oidc Login
|
|
operationId: oidc_login_api_v1_auth_oidc_login_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/api/v1/auth/oidc/callback:
|
|
get:
|
|
tags:
|
|
- auth
|
|
summary: Oidc Callback
|
|
operationId: oidc_callback_api_v1_auth_oidc_callback_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/api/v1/auth/login:
|
|
post:
|
|
tags:
|
|
- auth
|
|
summary: Password Login
|
|
operationId: password_login_api_v1_auth_login_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PasswordLoginRequest'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CurrentUser'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/auth/session:
|
|
get:
|
|
tags:
|
|
- auth
|
|
summary: Get Session
|
|
operationId: get_session_api_v1_auth_session_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CurrentUser'
|
|
/api/v1/auth/logout:
|
|
post:
|
|
tags:
|
|
- auth
|
|
summary: Logout
|
|
operationId: logout_api_v1_auth_logout_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Response Logout Api V1 Auth Logout Post
|
|
/api/v1/dashboard:
|
|
get:
|
|
tags:
|
|
- dashboard
|
|
summary: Get Dashboard
|
|
operationId: get_dashboard_api_v1_dashboard_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DashboardOut'
|
|
/api/v1/vehicles:
|
|
get:
|
|
tags:
|
|
- vehicles
|
|
summary: List Vehicles
|
|
operationId: list_vehicles_api_v1_vehicles_get
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
- name: attention_only
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Attention Only
|
|
- name: location
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: Location
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: Query
|
|
- name: page
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 1
|
|
- type: 'null'
|
|
title: Page
|
|
- name: page_size
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 25
|
|
minimum: 1
|
|
default: 25
|
|
title: Page Size
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/VehicleOut'
|
|
- $ref: '#/components/schemas/VehiclePageOut'
|
|
title: Response List Vehicles Api V1 Vehicles Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/vehicles/{public_ref}:
|
|
get:
|
|
tags:
|
|
- vehicles
|
|
summary: Get Vehicle
|
|
operationId: get_vehicle_api_v1_vehicles__public_ref__get
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VehicleDetailOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/vehicles/{public_ref}/maintenance:
|
|
post:
|
|
tags:
|
|
- vehicles
|
|
summary: Create Maintenance Record
|
|
operationId: create_maintenance_record_api_v1_vehicles__public_ref__maintenance_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateMaintenanceRequest'
|
|
responses:
|
|
'201':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MaintenanceOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/vehicles/{public_ref}/release:
|
|
post:
|
|
tags:
|
|
- vehicles
|
|
summary: Release Vehicle
|
|
operationId: release_vehicle_api_v1_vehicles__public_ref__release_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReleaseVehicleRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VehicleOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings:
|
|
get:
|
|
tags:
|
|
- bookings
|
|
summary: List Bookings
|
|
operationId: list_bookings_api_v1_bookings_get
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
- name: vehicle_ref
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Vehicle Ref
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: Query
|
|
- name: starts_from
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Starts From
|
|
- name: starts_to
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Starts To
|
|
- name: location
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: Location
|
|
- name: sort
|
|
in: query
|
|
required: false
|
|
schema:
|
|
enum:
|
|
- operational
|
|
- starts_asc
|
|
- starts_desc
|
|
type: string
|
|
default: operational
|
|
title: Sort
|
|
- name: page
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 1
|
|
- type: 'null'
|
|
title: Page
|
|
- name: page_size
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 25
|
|
minimum: 1
|
|
default: 25
|
|
title: Page Size
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
- $ref: '#/components/schemas/BookingPageOut'
|
|
title: Response List Bookings Api V1 Bookings Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Create Booking
|
|
operationId: create_booking_api_v1_bookings_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateBookingRequest'
|
|
responses:
|
|
'201':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/checkout:
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Checkout Booking
|
|
operationId: checkout_booking_api_v1_bookings__public_ref__checkout_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CheckoutBookingRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CheckoutBookingResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/availability:
|
|
get:
|
|
tags:
|
|
- bookings
|
|
summary: List Available Vehicles
|
|
operationId: list_available_vehicles_api_v1_bookings_availability_get
|
|
parameters:
|
|
- name: starts_at
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
- name: ends_at
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
title: Ends At
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: Query
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 50
|
|
minimum: 1
|
|
default: 25
|
|
title: Limit
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AvailableVehicleOut'
|
|
title: Response List Available Vehicles Api V1 Bookings Availability
|
|
Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}:
|
|
get:
|
|
tags:
|
|
- bookings
|
|
summary: Get Booking
|
|
operationId: get_booking_api_v1_bookings__public_ref__get
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/complete-requirements:
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Complete Booking Requirements
|
|
operationId: complete_booking_requirements_api_v1_bookings__public_ref__complete_requirements_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CompleteBookingRequirementsRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/schedule:
|
|
patch:
|
|
tags:
|
|
- bookings
|
|
summary: Reschedule Booking
|
|
operationId: reschedule_booking_api_v1_bookings__public_ref__schedule_patch
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RescheduleBookingRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/cancel:
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Cancel Booking
|
|
operationId: cancel_booking_api_v1_bookings__public_ref__cancel_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CancelBookingRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/return-preview:
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Preview Return
|
|
operationId: preview_return_api_v1_bookings__public_ref__return_preview_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterReturnRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReturnPreviewResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/bookings/{public_ref}/return:
|
|
post:
|
|
tags:
|
|
- bookings
|
|
summary: Register Return
|
|
operationId: register_return_api_v1_bookings__public_ref__return_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
- name: Idempotency-Key
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 8
|
|
maxLength: 128
|
|
title: Idempotency-Key
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterReturnRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterReturnResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/customers:
|
|
get:
|
|
tags:
|
|
- customers
|
|
summary: Search Customers
|
|
operationId: search_customers_api_v1_customers_get
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 2
|
|
maxLength: 100
|
|
title: Query
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 50
|
|
minimum: 1
|
|
default: 20
|
|
title: Limit
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CustomerOptionOut'
|
|
title: Response Search Customers Api V1 Customers Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/audit/export.csv:
|
|
get:
|
|
tags:
|
|
- audit
|
|
summary: Export Audit Csv
|
|
operationId: export_audit_csv_api_v1_audit_export_csv_get
|
|
parameters:
|
|
- name: occurred_from
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Occurred From
|
|
- name: occurred_to
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Occurred To
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/audit:
|
|
get:
|
|
tags:
|
|
- audit
|
|
summary: List Audit Events
|
|
operationId: list_audit_events_api_v1_audit_get
|
|
parameters:
|
|
- name: actor_label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Actor Label
|
|
- name: action
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Action
|
|
- name: entity_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Entity Type
|
|
- name: entity_ref
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: Entity Ref
|
|
- name: correlation_id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: uuid
|
|
- type: 'null'
|
|
title: Correlation Id
|
|
- name: occurred_from
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Occurred From
|
|
- name: occurred_to
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Occurred To
|
|
- name: page
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 1
|
|
- type: 'null'
|
|
title: Page
|
|
- name: page_size
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 25
|
|
minimum: 1
|
|
default: 25
|
|
title: Page Size
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/AuditEventOut'
|
|
- $ref: '#/components/schemas/AuditEventPageOut'
|
|
title: Response List Audit Events Api V1 Audit Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues:
|
|
get:
|
|
tags:
|
|
- data-quality
|
|
summary: List Issues
|
|
operationId: list_issues_api_v1_data_quality_issues_get
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
- name: rule_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Rule Type
|
|
- name: severity
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Severity
|
|
- name: assigned_to_ref
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Assigned To Ref
|
|
- name: overdue
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Overdue
|
|
- name: demo_only
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Demo Only
|
|
- name: page
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 1
|
|
- type: 'null'
|
|
title: Page
|
|
- name: page_size
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 25
|
|
minimum: 1
|
|
default: 25
|
|
title: Page Size
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
- $ref: '#/components/schemas/DataQualityIssuePageOut'
|
|
title: Response List Issues Api V1 Data Quality Issues Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/bulk-work:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Update Issue Work Queue
|
|
operationId: update_issue_work_queue_api_v1_data_quality_issues_bulk_work_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BulkDataQualityWorkRequest'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BulkDataQualityWorkResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}:
|
|
get:
|
|
tags:
|
|
- data-quality
|
|
summary: Get Issue
|
|
operationId: get_issue_api_v1_data_quality_issues__public_ref__get
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueDetailOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/defer:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Defer
|
|
operationId: defer_api_v1_data_quality_issues__public_ref__defer_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/reject:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Reject
|
|
operationId: reject_api_v1_data_quality_issues__public_ref__reject_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/merge-customers:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Merge
|
|
operationId: merge_api_v1_data_quality_issues__public_ref__merge_customers_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MergeCustomersRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MergeCustomersResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/provide-fields:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Provide Fields
|
|
operationId: provide_fields_api_v1_data_quality_issues__public_ref__provide_fields_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProvideFieldsRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/resolve-odometer-regression:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Resolve Odometer
|
|
operationId: resolve_odometer_api_v1_data_quality_issues__public_ref__resolve_odometer_regression_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ResolveOdometerRegressionRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/resolve-overlap:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Resolve Overlap
|
|
operationId: resolve_overlap_api_v1_data_quality_issues__public_ref__resolve_overlap_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ResolveOverlapRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/status-recommendation:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Status Recommendation
|
|
description: 'Non-mutating preview: computes the recommendation without changing
|
|
anything,
|
|
|
|
resolving no issue and writing no audit event. Safe to call repeatedly.'
|
|
operationId: status_recommendation_api_v1_data_quality_issues__public_ref__status_recommendation_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StatusRecommendationOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/issues/{public_ref}/apply-recommended-status:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Apply Status
|
|
operationId: apply_status_api_v1_data_quality_issues__public_ref__apply_recommended_status_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ApplyRecommendedStatusRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ApplyRecommendedStatusResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/data-quality/scan:
|
|
post:
|
|
tags:
|
|
- data-quality
|
|
summary: Scan
|
|
operationId: scan_api_v1_data_quality_scan_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ScanResultOut'
|
|
/api/v1/workflows:
|
|
get:
|
|
tags:
|
|
- workflows
|
|
summary: List Workflows
|
|
operationId: list_workflows_api_v1_workflows_get
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AutomationRunOut'
|
|
title: Response List Workflows Api V1 Workflows Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/workflows/{event_id}/retry:
|
|
post:
|
|
tags:
|
|
- workflows
|
|
summary: Retry Workflow
|
|
operationId: retry_workflow_api_v1_workflows__event_id__retry_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AutomationRunOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/heartbeat:
|
|
post:
|
|
tags:
|
|
- integrations
|
|
summary: Workflow Heartbeat
|
|
description: Authenticated, idempotent execution evidence from a canonical n8n
|
|
workflow.
|
|
operationId: workflow_heartbeat_api_v1_integrations_n8n_heartbeat_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/N8nHeartbeatIn'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/N8nHeartbeatResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/return-callback:
|
|
post:
|
|
tags:
|
|
- integrations
|
|
summary: Return Callback
|
|
operationId: return_callback_api_v1_integrations_n8n_return_callback_post
|
|
parameters:
|
|
- name: Idempotency-Key
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Idempotency-Key
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReturnCallbackIn'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Return Callback Api V1 Integrations N8N Return Callback
|
|
Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/scheduled-scan:
|
|
post:
|
|
tags:
|
|
- integrations
|
|
summary: Scheduled Scan
|
|
description: 'Triggered by the scheduled n8n quality-scan workflow. Narrow,
|
|
read-mostly, and
|
|
|
|
safe to call repeatedly: run_scan() only ever creates an issue for a condition
|
|
that
|
|
|
|
doesn''t already have one open, so a duplicate or overlapping trigger does
|
|
no
|
|
|
|
duplicate domain work -- it just reports zero new issues for anything already
|
|
known.'
|
|
operationId: scheduled_scan_api_v1_integrations_n8n_scheduled_scan_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ScanResultOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/workflow-error:
|
|
post:
|
|
tags:
|
|
- integrations
|
|
summary: Workflow Error
|
|
description: 'Receives a bounded, secret-free failure report from the central
|
|
n8n "Fleet Ops --
|
|
|
|
Workflow Error Handler" workflow, which is attached as the Error Workflow
|
|
on every
|
|
|
|
other Fleet Ops n8n workflow. Idempotent on execution_id: n8n may redeliver
|
|
the same
|
|
|
|
error report (e.g. after a timed-out response), so this must not double-record.'
|
|
operationId: workflow_error_api_v1_integrations_n8n_workflow_error_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowErrorReportIn'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowErrorReportResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/procedures:
|
|
get:
|
|
tags:
|
|
- integrations
|
|
summary: List Procedures
|
|
description: 'Read-only source list for the RAGcore Procedure Sync workflow:
|
|
every procedure
|
|
|
|
Markdown file Fleet Ops ships, across every supported language, with a stable
|
|
|
|
per-document id (source_id) and a content hash so the caller can detect changes
|
|
|
|
without re-fetching content it already has.'
|
|
operationId: list_procedures_api_v1_integrations_n8n_procedures_get
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProcedureListOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/n8n/procedures-sync-result:
|
|
post:
|
|
tags:
|
|
- integrations
|
|
summary: Procedures Sync Result
|
|
description: 'Receives a summary (counts only, no document content) from the
|
|
n8n "Fleet Ops --
|
|
|
|
RAGcore Procedure Sync" workflow once it finishes uploading procedures to
|
|
RAGcore.
|
|
|
|
Idempotent on execution_id, matching the workflow-error and return-callback
|
|
pattern.'
|
|
operationId: procedures_sync_result_api_v1_integrations_n8n_procedures_sync_result_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProcedureSyncResultIn'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProcedureSyncResultResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/knowledge/questions:
|
|
post:
|
|
tags:
|
|
- knowledge
|
|
summary: Ask Question
|
|
operationId: ask_question_api_v1_knowledge_questions_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AskQuestionRequest'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GroundedAnswer'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/knowledge/feedback:
|
|
post:
|
|
tags:
|
|
- knowledge
|
|
summary: Record Feedback
|
|
operationId: record_feedback_api_v1_knowledge_feedback_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/KnowledgeFeedbackRequest'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Record Feedback Api V1 Knowledge Feedback Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/knowledge/status:
|
|
get:
|
|
tags:
|
|
- knowledge
|
|
summary: Knowledge Status
|
|
operationId: knowledge_status_api_v1_knowledge_status_get
|
|
parameters:
|
|
- name: language
|
|
in: query
|
|
required: false
|
|
schema:
|
|
enum:
|
|
- nl-BE
|
|
- en-GB
|
|
- fr-BE
|
|
type: string
|
|
default: en-GB
|
|
title: Language
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/KnowledgeHealth'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/mcp/operations-summary:
|
|
get:
|
|
tags:
|
|
- mcp
|
|
summary: Operations Summary
|
|
operationId: operations_summary_api_v1_integrations_mcp_operations_summary_get
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
- name: X-Client-Id
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 180
|
|
title: X-Client-Id
|
|
- name: X-Tenant-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: X-Tenant-Id
|
|
- name: X-Correlation-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: X-Correlation-Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OperationsSummaryOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/mcp/attention-vehicles:
|
|
get:
|
|
tags:
|
|
- mcp
|
|
summary: Attention Vehicles
|
|
operationId: attention_vehicles_api_v1_integrations_mcp_attention_vehicles_get
|
|
parameters:
|
|
- name: minimum_severity
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
pattern: ^(low|medium|high)$
|
|
default: medium
|
|
title: Minimum Severity
|
|
- name: date
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
format: date
|
|
- type: 'null'
|
|
title: Date
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
maximum: 50
|
|
minimum: 1
|
|
default: 20
|
|
title: Limit
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
- name: X-Client-Id
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 180
|
|
title: X-Client-Id
|
|
- name: X-Tenant-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: X-Tenant-Id
|
|
- name: X-Correlation-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: X-Correlation-Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AttentionVehicleOut'
|
|
title: Response Attention Vehicles Api V1 Integrations Mcp Attention
|
|
Vehicles Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/mcp/vehicles/{vehicle_ref}:
|
|
get:
|
|
tags:
|
|
- mcp
|
|
summary: Vehicle Details
|
|
operationId: vehicle_details_api_v1_integrations_mcp_vehicles__vehicle_ref__get
|
|
parameters:
|
|
- name: vehicle_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Vehicle Ref
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
- name: X-Client-Id
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 180
|
|
title: X-Client-Id
|
|
- name: X-Tenant-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: X-Tenant-Id
|
|
- name: X-Correlation-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: X-Correlation-Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/McpVehicleDetailOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/mcp/search-knowledge:
|
|
post:
|
|
tags:
|
|
- mcp
|
|
summary: Search Knowledge
|
|
operationId: search_knowledge_api_v1_integrations_mcp_search_knowledge_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
- name: X-Client-Id
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 180
|
|
title: X-Client-Id
|
|
- name: X-Tenant-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 120
|
|
- type: 'null'
|
|
title: X-Tenant-Id
|
|
- name: X-Correlation-Id
|
|
in: header
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: X-Correlation-Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/McpKnowledgeSearchRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GroundedAnswer'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/search:
|
|
get:
|
|
tags:
|
|
- search
|
|
summary: Search
|
|
operationId: search_api_v1_search_get
|
|
parameters:
|
|
- name: q
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 100
|
|
title: Q
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SearchResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/integrations/status:
|
|
get:
|
|
tags:
|
|
- integrations
|
|
summary: Integration Status
|
|
operationId: integration_status_api_v1_integrations_status_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/IntegrationStatusOut'
|
|
/api/v1/users:
|
|
get:
|
|
tags:
|
|
- users
|
|
summary: List Users
|
|
operationId: list_users_api_v1_users_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
items:
|
|
$ref: '#/components/schemas/UserOut'
|
|
type: array
|
|
title: Response List Users Api V1 Users Get
|
|
post:
|
|
tags:
|
|
- users
|
|
summary: Create User
|
|
operationId: create_user_api_v1_users_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateUserRequest'
|
|
required: true
|
|
responses:
|
|
'201':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/users/{public_ref}:
|
|
patch:
|
|
tags:
|
|
- users
|
|
summary: Update User
|
|
operationId: update_user_api_v1_users__public_ref__patch
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateUserRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserOut'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/privacy/retention:
|
|
get:
|
|
tags:
|
|
- privacy
|
|
summary: Retention Status
|
|
operationId: retention_status_api_v1_privacy_retention_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PrivacyRetentionOut'
|
|
/api/v1/privacy/customers/{public_ref}/export:
|
|
get:
|
|
tags:
|
|
- privacy
|
|
summary: Export Customer Data
|
|
operationId: export_customer_data_api_v1_privacy_customers__public_ref__export_get
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/api/v1/privacy/customers/{public_ref}/anonymize:
|
|
post:
|
|
tags:
|
|
- privacy
|
|
summary: Anonymize Customer
|
|
operationId: anonymize_customer_api_v1_privacy_customers__public_ref__anonymize_post
|
|
parameters:
|
|
- name: public_ref
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Public Ref
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CustomerAnonymizeRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CustomerAnonymizeResult'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
components:
|
|
schemas:
|
|
ApplyRecommendedStatusRequest:
|
|
properties:
|
|
recommendation_token:
|
|
type: string
|
|
title: Recommendation Token
|
|
type: object
|
|
required:
|
|
- recommendation_token
|
|
title: ApplyRecommendedStatusRequest
|
|
ApplyRecommendedStatusResult:
|
|
properties:
|
|
issue:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
applied_status:
|
|
type: string
|
|
title: Applied Status
|
|
reason_code:
|
|
type: string
|
|
title: Reason Code
|
|
type: object
|
|
required:
|
|
- issue
|
|
- applied_status
|
|
- reason_code
|
|
title: ApplyRecommendedStatusResult
|
|
AskQuestionRequest:
|
|
properties:
|
|
question:
|
|
type: string
|
|
maxLength: 1000
|
|
minLength: 3
|
|
title: Question
|
|
language:
|
|
type: string
|
|
enum:
|
|
- nl-BE
|
|
- en-GB
|
|
- fr-BE
|
|
title: Language
|
|
default: en-GB
|
|
type: object
|
|
required:
|
|
- question
|
|
title: AskQuestionRequest
|
|
AttentionItem:
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- quality_issue
|
|
- vehicle
|
|
title: Kind
|
|
severity:
|
|
type: string
|
|
title: Severity
|
|
rule_type:
|
|
type: string
|
|
title: Rule Type
|
|
evidence_signals:
|
|
items:
|
|
$ref: '#/components/schemas/EvidenceSignalOut'
|
|
type: array
|
|
title: Evidence Signals
|
|
link_type:
|
|
type: string
|
|
enum:
|
|
- vehicle
|
|
- booking
|
|
- customer
|
|
title: Link Type
|
|
link_ref:
|
|
type: string
|
|
title: Link Ref
|
|
issue_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Issue Ref
|
|
type: object
|
|
required:
|
|
- kind
|
|
- severity
|
|
- rule_type
|
|
- link_type
|
|
- link_ref
|
|
title: AttentionItem
|
|
AttentionVehicleOut:
|
|
properties:
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
severity:
|
|
type: string
|
|
enum:
|
|
- low
|
|
- medium
|
|
- high
|
|
title: Severity
|
|
rule_type:
|
|
type: string
|
|
title: Rule Type
|
|
summary:
|
|
type: string
|
|
title: Summary
|
|
detected_at:
|
|
type: string
|
|
format: date-time
|
|
title: Detected At
|
|
type: object
|
|
required:
|
|
- vehicle_ref
|
|
- severity
|
|
- rule_type
|
|
- summary
|
|
- detected_at
|
|
title: AttentionVehicleOut
|
|
AuditEventOut:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
actor_type:
|
|
type: string
|
|
title: Actor Type
|
|
actor_label:
|
|
type: string
|
|
title: Actor Label
|
|
action:
|
|
type: string
|
|
title: Action
|
|
entity_type:
|
|
type: string
|
|
title: Entity Type
|
|
entity_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Entity Id
|
|
entity_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Entity Ref
|
|
entity_link:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Entity Link
|
|
correlation_id:
|
|
type: string
|
|
title: Correlation Id
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
before:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Before
|
|
after:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: After
|
|
metadata:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Metadata
|
|
type: object
|
|
required:
|
|
- id
|
|
- actor_type
|
|
- actor_label
|
|
- action
|
|
- entity_type
|
|
- entity_id
|
|
- correlation_id
|
|
- occurred_at
|
|
title: AuditEventOut
|
|
AuditEventPageOut:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/AuditEventOut'
|
|
type: array
|
|
title: Items
|
|
page:
|
|
type: integer
|
|
title: Page
|
|
page_size:
|
|
type: integer
|
|
title: Page Size
|
|
total:
|
|
type: integer
|
|
title: Total
|
|
total_pages:
|
|
type: integer
|
|
title: Total Pages
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
- page_size
|
|
- total
|
|
- total_pages
|
|
title: AuditEventPageOut
|
|
AutomationRunOut:
|
|
properties:
|
|
event_id:
|
|
type: string
|
|
title: Event Id
|
|
event_type:
|
|
type: string
|
|
title: Event Type
|
|
aggregate_ref:
|
|
type: string
|
|
title: Aggregate Ref
|
|
status:
|
|
type: string
|
|
title: Status
|
|
attempts:
|
|
type: integer
|
|
title: Attempts
|
|
last_error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Last Error
|
|
last_error_code:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Last Error Code
|
|
is_demo_scenario:
|
|
type: boolean
|
|
title: Is Demo Scenario
|
|
default: false
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
type: object
|
|
required:
|
|
- event_id
|
|
- event_type
|
|
- aggregate_ref
|
|
- status
|
|
- attempts
|
|
- last_error
|
|
- last_error_code
|
|
- occurred_at
|
|
title: AutomationRunOut
|
|
AvailableVehicleOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
make:
|
|
type: string
|
|
title: Make
|
|
model:
|
|
type: string
|
|
title: Model
|
|
registration_number:
|
|
type: string
|
|
title: Registration Number
|
|
location:
|
|
type: string
|
|
title: Location
|
|
operational_status:
|
|
type: string
|
|
title: Operational Status
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- make
|
|
- model
|
|
- registration_number
|
|
- location
|
|
- operational_status
|
|
title: AvailableVehicleOut
|
|
BookingOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
customer_ref:
|
|
type: string
|
|
title: Customer Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
starts_at:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
ends_at:
|
|
type: string
|
|
format: date-time
|
|
title: Ends At
|
|
status:
|
|
type: string
|
|
title: Status
|
|
start_odometer_km:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Start Odometer Km
|
|
end_odometer_km:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: End Odometer Km
|
|
requirements_complete:
|
|
type: boolean
|
|
title: Requirements Complete
|
|
customer_name:
|
|
type: string
|
|
title: Customer Name
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- customer_ref
|
|
- vehicle_ref
|
|
- starts_at
|
|
- ends_at
|
|
- status
|
|
- start_odometer_km
|
|
- end_odometer_km
|
|
- requirements_complete
|
|
- customer_name
|
|
title: BookingOut
|
|
BookingPageOut:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/BookingOut'
|
|
type: array
|
|
title: Items
|
|
page:
|
|
type: integer
|
|
title: Page
|
|
page_size:
|
|
type: integer
|
|
title: Page Size
|
|
total:
|
|
type: integer
|
|
title: Total
|
|
total_pages:
|
|
type: integer
|
|
title: Total Pages
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
- page_size
|
|
- total
|
|
- total_pages
|
|
title: BookingPageOut
|
|
BookingSummaryOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
customer_ref:
|
|
type: string
|
|
title: Customer Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
starts_at:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
ends_at:
|
|
type: string
|
|
format: date-time
|
|
title: Ends At
|
|
status:
|
|
type: string
|
|
title: Status
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- customer_ref
|
|
- vehicle_ref
|
|
- starts_at
|
|
- ends_at
|
|
- status
|
|
title: BookingSummaryOut
|
|
BulkDataQualityWorkRequest:
|
|
properties:
|
|
issue_refs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
maxItems: 25
|
|
minItems: 1
|
|
title: Issue Refs
|
|
assigned_to_ref:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 20
|
|
minLength: 3
|
|
- type: 'null'
|
|
title: Assigned To Ref
|
|
clear_assignment:
|
|
type: boolean
|
|
title: Clear Assignment
|
|
default: false
|
|
due_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Due At
|
|
clear_due_at:
|
|
type: boolean
|
|
title: Clear Due At
|
|
default: false
|
|
type: object
|
|
required:
|
|
- issue_refs
|
|
title: BulkDataQualityWorkRequest
|
|
BulkDataQualityWorkResult:
|
|
properties:
|
|
updated:
|
|
items:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
type: array
|
|
title: Updated
|
|
type: object
|
|
required:
|
|
- updated
|
|
title: BulkDataQualityWorkResult
|
|
CancelBookingRequest:
|
|
properties:
|
|
reason:
|
|
type: string
|
|
maxLength: 500
|
|
minLength: 3
|
|
title: Reason
|
|
type: object
|
|
required:
|
|
- reason
|
|
title: CancelBookingRequest
|
|
CheckoutBookingRequest:
|
|
properties:
|
|
start_odometer_km:
|
|
type: integer
|
|
minimum: 0.0
|
|
title: Start Odometer Km
|
|
fuel_level_percent:
|
|
type: integer
|
|
maximum: 100.0
|
|
minimum: 0.0
|
|
title: Fuel Level Percent
|
|
cleanliness_ok:
|
|
type: boolean
|
|
title: Cleanliness Ok
|
|
damage_reported:
|
|
type: boolean
|
|
title: Damage Reported
|
|
default: false
|
|
technical_warning:
|
|
type: boolean
|
|
title: Technical Warning
|
|
default: false
|
|
notes:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 2000
|
|
- type: 'null'
|
|
title: Notes
|
|
type: object
|
|
required:
|
|
- start_odometer_km
|
|
- fuel_level_percent
|
|
- cleanliness_ok
|
|
title: CheckoutBookingRequest
|
|
CheckoutBookingResult:
|
|
properties:
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
inspection_ref:
|
|
type: string
|
|
title: Inspection Ref
|
|
booking_status:
|
|
type: string
|
|
title: Booking Status
|
|
resulting_vehicle_status:
|
|
type: string
|
|
title: Resulting Vehicle Status
|
|
activated:
|
|
type: boolean
|
|
title: Activated
|
|
attention_reasons:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Attention Reasons
|
|
type: object
|
|
required:
|
|
- booking_ref
|
|
- vehicle_ref
|
|
- inspection_ref
|
|
- booking_status
|
|
- resulting_vehicle_status
|
|
- activated
|
|
- attention_reasons
|
|
title: CheckoutBookingResult
|
|
CompleteBookingRequirementsRequest:
|
|
properties:
|
|
confirmation:
|
|
type: string
|
|
maxLength: 500
|
|
minLength: 3
|
|
title: Confirmation
|
|
type: object
|
|
required:
|
|
- confirmation
|
|
title: CompleteBookingRequirementsRequest
|
|
CreateBookingRequest:
|
|
properties:
|
|
customer_ref:
|
|
type: string
|
|
maxLength: 20
|
|
minLength: 3
|
|
title: Customer Ref
|
|
vehicle_ref:
|
|
type: string
|
|
maxLength: 20
|
|
minLength: 3
|
|
title: Vehicle Ref
|
|
starts_at:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
ends_at:
|
|
type: string
|
|
format: date-time
|
|
title: Ends At
|
|
requirements_complete:
|
|
type: boolean
|
|
title: Requirements Complete
|
|
default: false
|
|
type: object
|
|
required:
|
|
- customer_ref
|
|
- vehicle_ref
|
|
- starts_at
|
|
- ends_at
|
|
title: CreateBookingRequest
|
|
CreateMaintenanceRequest:
|
|
properties:
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
odometer_km:
|
|
type: integer
|
|
minimum: 0.0
|
|
title: Odometer Km
|
|
category:
|
|
type: string
|
|
enum:
|
|
- periodic_service
|
|
- repair
|
|
- inspection
|
|
- tyres
|
|
- other
|
|
title: Category
|
|
summary:
|
|
type: string
|
|
maxLength: 2000
|
|
minLength: 3
|
|
title: Summary
|
|
next_service_km:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 0.0
|
|
- type: 'null'
|
|
title: Next Service Km
|
|
mark_maintenance:
|
|
type: boolean
|
|
title: Mark Maintenance
|
|
default: true
|
|
type: object
|
|
required:
|
|
- occurred_at
|
|
- odometer_km
|
|
- category
|
|
- summary
|
|
title: CreateMaintenanceRequest
|
|
CreateUserRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
maxLength: 320
|
|
minLength: 3
|
|
title: Email
|
|
display_name:
|
|
type: string
|
|
maxLength: 120
|
|
minLength: 2
|
|
title: Display Name
|
|
role:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
title: Role
|
|
password:
|
|
type: string
|
|
maxLength: 256
|
|
minLength: 8
|
|
title: Password
|
|
type: object
|
|
required:
|
|
- email
|
|
- display_name
|
|
- role
|
|
- password
|
|
title: CreateUserRequest
|
|
CurrentUser:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
display_name:
|
|
type: string
|
|
title: Display Name
|
|
role:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
title: Role
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- display_name
|
|
- role
|
|
title: CurrentUser
|
|
CustomerAnonymizeRequest:
|
|
properties:
|
|
confirmation:
|
|
type: string
|
|
maxLength: 20
|
|
minLength: 1
|
|
title: Confirmation
|
|
reason:
|
|
type: string
|
|
maxLength: 500
|
|
minLength: 8
|
|
title: Reason
|
|
type: object
|
|
required:
|
|
- confirmation
|
|
- reason
|
|
title: CustomerAnonymizeRequest
|
|
CustomerAnonymizeResult:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
anonymized_at:
|
|
type: string
|
|
format: date-time
|
|
title: Anonymized At
|
|
status:
|
|
type: string
|
|
enum:
|
|
- anonymized
|
|
- already_anonymized
|
|
title: Status
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- anonymized_at
|
|
- status
|
|
title: CustomerAnonymizeResult
|
|
CustomerOptionOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
display_name:
|
|
type: string
|
|
title: Display Name
|
|
email:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Email
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- display_name
|
|
- email
|
|
title: CustomerOptionOut
|
|
DashboardMetrics:
|
|
properties:
|
|
available:
|
|
type: integer
|
|
title: Available
|
|
rented:
|
|
type: integer
|
|
title: Rented
|
|
cleaning:
|
|
type: integer
|
|
title: Cleaning
|
|
maintenance:
|
|
type: integer
|
|
title: Maintenance
|
|
blocked:
|
|
type: integer
|
|
title: Blocked
|
|
open_quality_issues:
|
|
type: integer
|
|
title: Open Quality Issues
|
|
pending_or_failed_workflows:
|
|
type: integer
|
|
title: Pending Or Failed Workflows
|
|
type: object
|
|
required:
|
|
- available
|
|
- rented
|
|
- cleaning
|
|
- maintenance
|
|
- blocked
|
|
- open_quality_issues
|
|
- pending_or_failed_workflows
|
|
title: DashboardMetrics
|
|
DashboardOut:
|
|
properties:
|
|
metrics:
|
|
$ref: '#/components/schemas/DashboardMetrics'
|
|
attention_items:
|
|
items:
|
|
$ref: '#/components/schemas/AttentionItem'
|
|
type: array
|
|
title: Attention Items
|
|
today:
|
|
items:
|
|
$ref: '#/components/schemas/TodayItem'
|
|
type: array
|
|
title: Today
|
|
recent_automation:
|
|
items:
|
|
$ref: '#/components/schemas/AutomationRunOut'
|
|
type: array
|
|
title: Recent Automation
|
|
type: object
|
|
required:
|
|
- metrics
|
|
- attention_items
|
|
- today
|
|
- recent_automation
|
|
title: DashboardOut
|
|
DataQualityIssueDetailOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
rule_type:
|
|
type: string
|
|
title: Rule Type
|
|
entity_type:
|
|
type: string
|
|
title: Entity Type
|
|
entity_ref:
|
|
type: string
|
|
title: Entity Ref
|
|
severity:
|
|
type: string
|
|
title: Severity
|
|
status:
|
|
type: string
|
|
title: Status
|
|
evidence:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Evidence
|
|
detected_at:
|
|
type: string
|
|
format: date-time
|
|
title: Detected At
|
|
due_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Due At
|
|
assigned_to_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Assigned To Ref
|
|
assigned_to_name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Assigned To Name
|
|
overdue:
|
|
type: boolean
|
|
title: Overdue
|
|
default: false
|
|
resolved_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Resolved At
|
|
entity_snapshot:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Entity Snapshot
|
|
related_snapshots:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
title: Related Snapshots
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- rule_type
|
|
- entity_type
|
|
- entity_ref
|
|
- severity
|
|
- status
|
|
- evidence
|
|
- detected_at
|
|
title: DataQualityIssueDetailOut
|
|
DataQualityIssueOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
rule_type:
|
|
type: string
|
|
title: Rule Type
|
|
entity_type:
|
|
type: string
|
|
title: Entity Type
|
|
entity_ref:
|
|
type: string
|
|
title: Entity Ref
|
|
severity:
|
|
type: string
|
|
title: Severity
|
|
status:
|
|
type: string
|
|
title: Status
|
|
evidence:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Evidence
|
|
detected_at:
|
|
type: string
|
|
format: date-time
|
|
title: Detected At
|
|
due_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Due At
|
|
assigned_to_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Assigned To Ref
|
|
assigned_to_name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Assigned To Name
|
|
overdue:
|
|
type: boolean
|
|
title: Overdue
|
|
default: false
|
|
resolved_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Resolved At
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- rule_type
|
|
- entity_type
|
|
- entity_ref
|
|
- severity
|
|
- status
|
|
- evidence
|
|
- detected_at
|
|
title: DataQualityIssueOut
|
|
DataQualityIssuePageOut:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
type: array
|
|
title: Items
|
|
page:
|
|
type: integer
|
|
title: Page
|
|
page_size:
|
|
type: integer
|
|
title: Page Size
|
|
total:
|
|
type: integer
|
|
title: Total
|
|
total_pages:
|
|
type: integer
|
|
title: Total Pages
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
- page_size
|
|
- total
|
|
- total_pages
|
|
title: DataQualityIssuePageOut
|
|
DemoIntegrationSummaryOut:
|
|
properties:
|
|
key:
|
|
type: string
|
|
enum:
|
|
- n8n
|
|
- ragcore
|
|
- mcp_hub
|
|
title: Key
|
|
status_code:
|
|
type: string
|
|
title: Status Code
|
|
detail_code:
|
|
type: string
|
|
title: Detail Code
|
|
detail_params:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: object
|
|
title: Detail Params
|
|
default: {}
|
|
type: object
|
|
required:
|
|
- key
|
|
- status_code
|
|
- detail_code
|
|
title: DemoIntegrationSummaryOut
|
|
DemoLoginRequest:
|
|
properties:
|
|
role:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
title: Role
|
|
type: object
|
|
required:
|
|
- role
|
|
title: DemoLoginRequest
|
|
DemoManifestOut:
|
|
properties:
|
|
demo_mode:
|
|
type: boolean
|
|
title: Demo Mode
|
|
organization_name:
|
|
type: string
|
|
title: Organization Name
|
|
timezone:
|
|
type: string
|
|
title: Timezone
|
|
synthetic_data:
|
|
type: boolean
|
|
title: Synthetic Data
|
|
allow_reset:
|
|
type: boolean
|
|
title: Allow Reset
|
|
last_reset_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Last Reset At
|
|
anchor_date:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Anchor Date
|
|
guide_available:
|
|
type: boolean
|
|
title: Guide Available
|
|
required_roles:
|
|
items:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
type: array
|
|
title: Required Roles
|
|
scenarios:
|
|
items:
|
|
$ref: '#/components/schemas/DemoScenarioOut'
|
|
type: array
|
|
title: Scenarios
|
|
integrations:
|
|
items:
|
|
$ref: '#/components/schemas/DemoIntegrationSummaryOut'
|
|
type: array
|
|
title: Integrations
|
|
type: object
|
|
required:
|
|
- demo_mode
|
|
- organization_name
|
|
- timezone
|
|
- synthetic_data
|
|
- allow_reset
|
|
- last_reset_at
|
|
- anchor_date
|
|
- guide_available
|
|
- required_roles
|
|
- scenarios
|
|
- integrations
|
|
title: DemoManifestOut
|
|
DemoScenarioOut:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
estimated_minutes:
|
|
type: integer
|
|
title: Estimated Minutes
|
|
required_roles:
|
|
items:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
type: array
|
|
title: Required Roles
|
|
start_path:
|
|
type: string
|
|
title: Start Path
|
|
ready:
|
|
type: boolean
|
|
title: Ready
|
|
blocked_reason_code:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Blocked Reason Code
|
|
blocked_reason_params:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Blocked Reason Params
|
|
default: {}
|
|
type: object
|
|
required:
|
|
- id
|
|
- estimated_minutes
|
|
- required_roles
|
|
- start_path
|
|
- ready
|
|
title: DemoScenarioOut
|
|
EvidenceSignalOut:
|
|
properties:
|
|
code:
|
|
type: string
|
|
title: Code
|
|
params:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Params
|
|
type: object
|
|
required:
|
|
- code
|
|
title: EvidenceSignalOut
|
|
GroundedAnswer:
|
|
properties:
|
|
answer:
|
|
type: string
|
|
title: Answer
|
|
evidence_state:
|
|
type: string
|
|
enum:
|
|
- grounded
|
|
- insufficient
|
|
- unavailable
|
|
title: Evidence State
|
|
sources:
|
|
items:
|
|
$ref: '#/components/schemas/SourceCard'
|
|
type: array
|
|
title: Sources
|
|
provider:
|
|
type: string
|
|
title: Provider
|
|
correlation_id:
|
|
type: string
|
|
title: Correlation Id
|
|
type: object
|
|
required:
|
|
- answer
|
|
- evidence_state
|
|
- sources
|
|
- provider
|
|
- correlation_id
|
|
title: GroundedAnswer
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
InspectionOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
type:
|
|
type: string
|
|
title: Type
|
|
fuel_level_percent:
|
|
type: integer
|
|
title: Fuel Level Percent
|
|
cleanliness_ok:
|
|
type: boolean
|
|
title: Cleanliness Ok
|
|
damage_reported:
|
|
type: boolean
|
|
title: Damage Reported
|
|
technical_warning:
|
|
type: boolean
|
|
title: Technical Warning
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
title: Completed At
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- booking_ref
|
|
- type
|
|
- fuel_level_percent
|
|
- cleanliness_ok
|
|
- damage_reported
|
|
- technical_warning
|
|
- odometer_km
|
|
- completed_at
|
|
title: InspectionOut
|
|
IntegrationStatusOut:
|
|
properties:
|
|
n8n:
|
|
$ref: '#/components/schemas/N8nIntegrationStatus'
|
|
mcp_hub:
|
|
$ref: '#/components/schemas/McpHubIntegrationStatus'
|
|
type: object
|
|
required:
|
|
- n8n
|
|
- mcp_hub
|
|
title: IntegrationStatusOut
|
|
KnowledgeFeedbackRequest:
|
|
properties:
|
|
correlation_id:
|
|
type: string
|
|
format: uuid
|
|
title: Correlation Id
|
|
helpful:
|
|
type: boolean
|
|
title: Helpful
|
|
type: object
|
|
required:
|
|
- correlation_id
|
|
- helpful
|
|
title: KnowledgeFeedbackRequest
|
|
KnowledgeHealth:
|
|
properties:
|
|
provider:
|
|
type: string
|
|
title: Provider
|
|
available:
|
|
type: boolean
|
|
title: Available
|
|
detail:
|
|
type: string
|
|
title: Detail
|
|
tenant:
|
|
type: string
|
|
title: Tenant
|
|
workspace:
|
|
type: string
|
|
title: Workspace
|
|
collection:
|
|
type: string
|
|
title: Collection
|
|
document_count:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Document Count
|
|
source_document_count:
|
|
type: integer
|
|
title: Source Document Count
|
|
reported_synced_document_count:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Reported Synced Document Count
|
|
reported_failed_document_count:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Reported Failed Document Count
|
|
last_sync_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Last Sync At
|
|
statistics_state:
|
|
type: string
|
|
enum:
|
|
- verified
|
|
- sync_reported
|
|
- not_reported
|
|
title: Statistics State
|
|
type: object
|
|
required:
|
|
- provider
|
|
- available
|
|
- detail
|
|
- tenant
|
|
- workspace
|
|
- collection
|
|
- document_count
|
|
- source_document_count
|
|
- reported_synced_document_count
|
|
- reported_failed_document_count
|
|
- last_sync_at
|
|
- statistics_state
|
|
title: KnowledgeHealth
|
|
MaintenanceOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
category:
|
|
type: string
|
|
title: Category
|
|
summary:
|
|
type: string
|
|
title: Summary
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- occurred_at
|
|
- odometer_km
|
|
- category
|
|
- summary
|
|
title: MaintenanceOut
|
|
McpHubIntegrationStatus:
|
|
properties:
|
|
registration_enabled:
|
|
type: boolean
|
|
title: Registration Enabled
|
|
state:
|
|
type: string
|
|
enum:
|
|
- not_configured
|
|
- no_evidence
|
|
- operational
|
|
title: State
|
|
total_calls:
|
|
type: integer
|
|
title: Total Calls
|
|
last_tool:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Last Tool
|
|
last_client:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Last Client
|
|
last_called_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Last Called At
|
|
hub_reachable:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Hub Reachable
|
|
type: object
|
|
required:
|
|
- registration_enabled
|
|
- state
|
|
- total_calls
|
|
title: McpHubIntegrationStatus
|
|
McpKnowledgeSearchRequest:
|
|
properties:
|
|
question:
|
|
type: string
|
|
maxLength: 1000
|
|
minLength: 3
|
|
title: Question
|
|
max_sources:
|
|
type: integer
|
|
maximum: 8.0
|
|
minimum: 1.0
|
|
title: Max Sources
|
|
default: 4
|
|
locale:
|
|
type: string
|
|
enum:
|
|
- nl-BE
|
|
- en-GB
|
|
- fr-BE
|
|
title: Locale
|
|
default: en-GB
|
|
type: object
|
|
required:
|
|
- question
|
|
title: McpKnowledgeSearchRequest
|
|
McpVehicleDetailOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
make:
|
|
type: string
|
|
title: Make
|
|
model:
|
|
type: string
|
|
title: Model
|
|
model_year:
|
|
type: integer
|
|
title: Model Year
|
|
location:
|
|
type: string
|
|
title: Location
|
|
operational_status:
|
|
type: string
|
|
title: Operational Status
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
next_service_km:
|
|
type: integer
|
|
title: Next Service Km
|
|
open_quality_issue_count:
|
|
type: integer
|
|
title: Open Quality Issue Count
|
|
current_booking_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Current Booking Ref
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- make
|
|
- model
|
|
- model_year
|
|
- location
|
|
- operational_status
|
|
- odometer_km
|
|
- next_service_km
|
|
- open_quality_issue_count
|
|
- current_booking_ref
|
|
title: McpVehicleDetailOut
|
|
MergeCustomersRequest:
|
|
properties:
|
|
survivor_ref:
|
|
type: string
|
|
title: Survivor Ref
|
|
field_overrides:
|
|
anyOf:
|
|
- additionalProperties:
|
|
type: string
|
|
type: object
|
|
- type: 'null'
|
|
title: Field Overrides
|
|
type: object
|
|
required:
|
|
- survivor_ref
|
|
title: MergeCustomersRequest
|
|
MergeCustomersResult:
|
|
properties:
|
|
issue_ref:
|
|
type: string
|
|
title: Issue Ref
|
|
survivor_ref:
|
|
type: string
|
|
title: Survivor Ref
|
|
loser_ref:
|
|
type: string
|
|
title: Loser Ref
|
|
rewired_bookings:
|
|
type: integer
|
|
title: Rewired Bookings
|
|
type: object
|
|
required:
|
|
- issue_ref
|
|
- survivor_ref
|
|
- loser_ref
|
|
- rewired_bookings
|
|
title: MergeCustomersResult
|
|
N8nErrorHandlerStatus:
|
|
properties:
|
|
total_failures_registered:
|
|
type: integer
|
|
title: Total Failures Registered
|
|
latest_failure_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Latest Failure At
|
|
latest_failure_workflow:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Latest Failure Workflow
|
|
type: object
|
|
required:
|
|
- total_failures_registered
|
|
- latest_failure_at
|
|
- latest_failure_workflow
|
|
title: N8nErrorHandlerStatus
|
|
N8nHeartbeatIn:
|
|
properties:
|
|
workflow_id:
|
|
type: string
|
|
maxLength: 120
|
|
minLength: 1
|
|
title: Workflow Id
|
|
workflow_name:
|
|
type: string
|
|
maxLength: 200
|
|
minLength: 1
|
|
title: Workflow Name
|
|
execution_id:
|
|
type: string
|
|
maxLength: 120
|
|
minLength: 1
|
|
title: Execution Id
|
|
status:
|
|
type: string
|
|
enum:
|
|
- succeeded
|
|
- failed
|
|
title: Status
|
|
type: object
|
|
required:
|
|
- workflow_id
|
|
- workflow_name
|
|
- execution_id
|
|
- status
|
|
title: N8nHeartbeatIn
|
|
N8nHeartbeatResult:
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- registered
|
|
- already_registered
|
|
title: Status
|
|
execution_id:
|
|
type: string
|
|
title: Execution Id
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
type: object
|
|
required:
|
|
- status
|
|
- execution_id
|
|
- occurred_at
|
|
title: N8nHeartbeatResult
|
|
N8nIntegrationStatus:
|
|
properties:
|
|
configured:
|
|
type: boolean
|
|
title: Configured
|
|
dispatch_enabled:
|
|
type: boolean
|
|
title: Dispatch Enabled
|
|
state:
|
|
type: string
|
|
enum:
|
|
- disabled
|
|
- unavailable
|
|
- degraded
|
|
- operational
|
|
- no_evidence
|
|
title: State
|
|
pending:
|
|
type: integer
|
|
title: Pending
|
|
failed:
|
|
type: integer
|
|
title: Failed
|
|
unexpected_failed:
|
|
type: integer
|
|
title: Unexpected Failed
|
|
default: 0
|
|
demo_scenario_failed:
|
|
type: integer
|
|
title: Demo Scenario Failed
|
|
default: 0
|
|
delivering:
|
|
type: integer
|
|
title: Delivering
|
|
succeeded:
|
|
type: integer
|
|
title: Succeeded
|
|
latest_success_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Latest Success At
|
|
latest_failure_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Latest Failure At
|
|
latest_demo_scenario_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Latest Demo Scenario At
|
|
expected_workflow_count:
|
|
type: integer
|
|
title: Expected Workflow Count
|
|
known_workflow_count:
|
|
type: integer
|
|
title: Known Workflow Count
|
|
workflows:
|
|
items:
|
|
$ref: '#/components/schemas/N8nWorkflowEvidence'
|
|
type: array
|
|
title: Workflows
|
|
error_handler:
|
|
$ref: '#/components/schemas/N8nErrorHandlerStatus'
|
|
type: object
|
|
required:
|
|
- configured
|
|
- dispatch_enabled
|
|
- state
|
|
- pending
|
|
- failed
|
|
- delivering
|
|
- succeeded
|
|
- latest_success_at
|
|
- latest_failure_at
|
|
- expected_workflow_count
|
|
- known_workflow_count
|
|
- workflows
|
|
- error_handler
|
|
title: N8nIntegrationStatus
|
|
N8nWorkflowEvidence:
|
|
properties:
|
|
name:
|
|
type: string
|
|
title: Name
|
|
built:
|
|
type: boolean
|
|
title: Built
|
|
last_seen_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Last Seen At
|
|
state:
|
|
type: string
|
|
enum:
|
|
- no_evidence
|
|
- healthy
|
|
- stale
|
|
- failed
|
|
title: State
|
|
default: no_evidence
|
|
last_status:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- succeeded
|
|
- failed
|
|
- type: 'null'
|
|
title: Last Status
|
|
last_execution_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Last Execution Id
|
|
type: object
|
|
required:
|
|
- name
|
|
- built
|
|
- last_seen_at
|
|
title: N8nWorkflowEvidence
|
|
NextBookingRisk:
|
|
properties:
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
starts_at:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
at_risk:
|
|
type: boolean
|
|
title: At Risk
|
|
type: object
|
|
required:
|
|
- booking_ref
|
|
- starts_at
|
|
- at_risk
|
|
title: NextBookingRisk
|
|
OidcStatusOut:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
title: Enabled
|
|
provider_name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Provider Name
|
|
type: object
|
|
required:
|
|
- enabled
|
|
title: OidcStatusOut
|
|
OperationsSummaryOut:
|
|
properties:
|
|
tenant:
|
|
type: string
|
|
title: Tenant
|
|
metrics:
|
|
$ref: '#/components/schemas/DashboardMetrics'
|
|
type: object
|
|
required:
|
|
- tenant
|
|
- metrics
|
|
title: OperationsSummaryOut
|
|
PasswordLoginRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
maxLength: 320
|
|
minLength: 3
|
|
title: Email
|
|
password:
|
|
type: string
|
|
maxLength: 256
|
|
minLength: 8
|
|
title: Password
|
|
type: object
|
|
required:
|
|
- email
|
|
- password
|
|
title: PasswordLoginRequest
|
|
PrivacyRetentionOut:
|
|
properties:
|
|
minimum_booking_retention_days:
|
|
type: integer
|
|
title: Minimum Booking Retention Days
|
|
audit_retention_days:
|
|
type: integer
|
|
title: Audit Retention Days
|
|
customers_total:
|
|
type: integer
|
|
title: Customers Total
|
|
customers_anonymized:
|
|
type: integer
|
|
title: Customers Anonymized
|
|
customers_eligible:
|
|
type: integer
|
|
title: Customers Eligible
|
|
type: object
|
|
required:
|
|
- minimum_booking_retention_days
|
|
- audit_retention_days
|
|
- customers_total
|
|
- customers_anonymized
|
|
- customers_eligible
|
|
title: PrivacyRetentionOut
|
|
ProcedureDocumentOut:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
language:
|
|
type: string
|
|
title: Language
|
|
document_id:
|
|
type: string
|
|
title: Document Id
|
|
title:
|
|
type: string
|
|
title: Title
|
|
version:
|
|
type: string
|
|
title: Version
|
|
content:
|
|
type: string
|
|
title: Content
|
|
content_hash:
|
|
type: string
|
|
title: Content Hash
|
|
type: object
|
|
required:
|
|
- id
|
|
- language
|
|
- document_id
|
|
- title
|
|
- version
|
|
- content
|
|
- content_hash
|
|
title: ProcedureDocumentOut
|
|
ProcedureListOut:
|
|
properties:
|
|
documents:
|
|
items:
|
|
$ref: '#/components/schemas/ProcedureDocumentOut'
|
|
type: array
|
|
title: Documents
|
|
type: object
|
|
required:
|
|
- documents
|
|
title: ProcedureListOut
|
|
ProcedureSyncResultIn:
|
|
properties:
|
|
execution_id:
|
|
type: string
|
|
maxLength: 120
|
|
title: Execution Id
|
|
synced:
|
|
type: integer
|
|
minimum: 0.0
|
|
title: Synced
|
|
failed:
|
|
type: integer
|
|
minimum: 0.0
|
|
title: Failed
|
|
default: 0
|
|
type: object
|
|
required:
|
|
- execution_id
|
|
- synced
|
|
title: ProcedureSyncResultIn
|
|
ProcedureSyncResultResult:
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- registered
|
|
- already_registered
|
|
title: Status
|
|
execution_id:
|
|
type: string
|
|
title: Execution Id
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
type: object
|
|
required:
|
|
- status
|
|
- execution_id
|
|
- occurred_at
|
|
title: ProcedureSyncResultResult
|
|
ProvideFieldsRequest:
|
|
properties:
|
|
fields:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Fields
|
|
type: object
|
|
required:
|
|
- fields
|
|
title: ProvideFieldsRequest
|
|
RegisterReturnRequest:
|
|
properties:
|
|
end_odometer_km:
|
|
type: integer
|
|
minimum: 0.0
|
|
title: End Odometer Km
|
|
fuel_level_percent:
|
|
type: integer
|
|
maximum: 100.0
|
|
minimum: 0.0
|
|
title: Fuel Level Percent
|
|
cleanliness_ok:
|
|
type: boolean
|
|
title: Cleanliness Ok
|
|
damage_reported:
|
|
type: boolean
|
|
title: Damage Reported
|
|
technical_warning:
|
|
type: boolean
|
|
title: Technical Warning
|
|
notes:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 2000
|
|
- type: 'null'
|
|
title: Notes
|
|
type: object
|
|
required:
|
|
- end_odometer_km
|
|
- fuel_level_percent
|
|
- cleanliness_ok
|
|
- damage_reported
|
|
- technical_warning
|
|
title: RegisterReturnRequest
|
|
RegisterReturnResult:
|
|
properties:
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
inspection_ref:
|
|
type: string
|
|
title: Inspection Ref
|
|
resulting_vehicle_status:
|
|
type: string
|
|
title: Resulting Vehicle Status
|
|
odometer_regression:
|
|
type: boolean
|
|
title: Odometer Regression
|
|
quality_issue_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Quality Issue Ref
|
|
workflow_event_id:
|
|
type: string
|
|
title: Workflow Event Id
|
|
correlation_id:
|
|
type: string
|
|
title: Correlation Id
|
|
next_booking_risk:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/NextBookingRisk'
|
|
- type: 'null'
|
|
type: object
|
|
required:
|
|
- booking_ref
|
|
- vehicle_ref
|
|
- inspection_ref
|
|
- resulting_vehicle_status
|
|
- odometer_regression
|
|
- quality_issue_ref
|
|
- workflow_event_id
|
|
- correlation_id
|
|
- next_booking_risk
|
|
title: RegisterReturnResult
|
|
ReleaseVehicleRequest:
|
|
properties:
|
|
reason:
|
|
type: string
|
|
maxLength: 500
|
|
minLength: 3
|
|
title: Reason
|
|
type: object
|
|
required:
|
|
- reason
|
|
title: ReleaseVehicleRequest
|
|
RescheduleBookingRequest:
|
|
properties:
|
|
starts_at:
|
|
type: string
|
|
format: date-time
|
|
title: Starts At
|
|
ends_at:
|
|
type: string
|
|
format: date-time
|
|
title: Ends At
|
|
reason:
|
|
type: string
|
|
maxLength: 500
|
|
minLength: 3
|
|
title: Reason
|
|
type: object
|
|
required:
|
|
- starts_at
|
|
- ends_at
|
|
- reason
|
|
title: RescheduleBookingRequest
|
|
ResolveOdometerRegressionRequest:
|
|
properties:
|
|
decision:
|
|
type: string
|
|
enum:
|
|
- retain_canonical
|
|
- correct_reading
|
|
title: Decision
|
|
booking_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Booking Ref
|
|
corrected_odometer_km:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 0.0
|
|
- type: 'null'
|
|
title: Corrected Odometer Km
|
|
note:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 500
|
|
- type: 'null'
|
|
title: Note
|
|
type: object
|
|
required:
|
|
- decision
|
|
title: ResolveOdometerRegressionRequest
|
|
ResolveOverlapRequest:
|
|
properties:
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
note:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 500
|
|
- type: 'null'
|
|
title: Note
|
|
type: object
|
|
required:
|
|
- booking_ref
|
|
title: ResolveOverlapRequest
|
|
ReturnCallbackIn:
|
|
properties:
|
|
correlation_id:
|
|
anyOf:
|
|
- type: string
|
|
format: uuid
|
|
- type: 'null'
|
|
title: Correlation Id
|
|
follow_up:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 200
|
|
- type: 'null'
|
|
title: Follow Up
|
|
summary:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 2000
|
|
- type: 'null'
|
|
title: Summary
|
|
type: object
|
|
title: ReturnCallbackIn
|
|
description: 'Body of the n8n return follow-up callback.
|
|
|
|
|
|
n8n forwards its whole item (``JSON.stringify($json)``), so unknown keys are
|
|
ignored;
|
|
|
|
only the fields we persist are validated and bounded.'
|
|
ReturnPreviewResult:
|
|
properties:
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
canonical_odometer_km:
|
|
type: integer
|
|
title: Canonical Odometer Km
|
|
submitted_odometer_km:
|
|
type: integer
|
|
title: Submitted Odometer Km
|
|
odometer_regression:
|
|
type: boolean
|
|
title: Odometer Regression
|
|
resulting_odometer_km:
|
|
type: integer
|
|
title: Resulting Odometer Km
|
|
resulting_vehicle_status:
|
|
type: string
|
|
title: Resulting Vehicle Status
|
|
status_reason:
|
|
type: string
|
|
title: Status Reason
|
|
status_reason_code:
|
|
type: string
|
|
title: Status Reason Code
|
|
status_reason_params:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: object
|
|
title: Status Reason Params
|
|
default: {}
|
|
would_create_quality_issue:
|
|
type: boolean
|
|
title: Would Create Quality Issue
|
|
attention_reasons:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Attention Reasons
|
|
next_booking_risk:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/NextBookingRisk'
|
|
- type: 'null'
|
|
type: object
|
|
required:
|
|
- booking_ref
|
|
- vehicle_ref
|
|
- canonical_odometer_km
|
|
- submitted_odometer_km
|
|
- odometer_regression
|
|
- resulting_odometer_km
|
|
- resulting_vehicle_status
|
|
- status_reason
|
|
- status_reason_code
|
|
- would_create_quality_issue
|
|
- attention_reasons
|
|
- next_booking_risk
|
|
title: ReturnPreviewResult
|
|
ScanResultOut:
|
|
properties:
|
|
created:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
title: Created
|
|
type: object
|
|
required:
|
|
- created
|
|
title: ScanResultOut
|
|
SearchResponse:
|
|
properties:
|
|
query:
|
|
type: string
|
|
title: Query
|
|
results:
|
|
items:
|
|
$ref: '#/components/schemas/SearchResultItem'
|
|
type: array
|
|
title: Results
|
|
type: object
|
|
required:
|
|
- query
|
|
- results
|
|
title: SearchResponse
|
|
SearchResultItem:
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- vehicle
|
|
- booking
|
|
- data_quality_issue
|
|
- section
|
|
title: Type
|
|
label:
|
|
type: string
|
|
title: Label
|
|
detail_code:
|
|
type: string
|
|
title: Detail Code
|
|
detail_params:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Detail Params
|
|
default: {}
|
|
link:
|
|
type: string
|
|
title: Link
|
|
type: object
|
|
required:
|
|
- type
|
|
- label
|
|
- detail_code
|
|
- link
|
|
title: SearchResultItem
|
|
SourceCard:
|
|
properties:
|
|
document_id:
|
|
type: string
|
|
title: Document Id
|
|
title:
|
|
type: string
|
|
title: Title
|
|
version:
|
|
type: string
|
|
title: Version
|
|
section:
|
|
type: string
|
|
title: Section
|
|
excerpt:
|
|
type: string
|
|
title: Excerpt
|
|
type: object
|
|
required:
|
|
- document_id
|
|
- title
|
|
- version
|
|
- section
|
|
- excerpt
|
|
title: SourceCard
|
|
StatusRecommendationOut:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
title: Current Status
|
|
recommended_status:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Recommended Status
|
|
recommendation_code:
|
|
type: string
|
|
title: Recommendation Code
|
|
safe_to_apply:
|
|
type: boolean
|
|
title: Safe To Apply
|
|
manual_review_required:
|
|
type: boolean
|
|
title: Manual Review Required
|
|
facts:
|
|
$ref: '#/components/schemas/VehicleStatusFactsOut'
|
|
blocking_reasons:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Blocking Reasons
|
|
recommendation_token:
|
|
type: string
|
|
title: Recommendation Token
|
|
type: object
|
|
required:
|
|
- current_status
|
|
- recommended_status
|
|
- recommendation_code
|
|
- safe_to_apply
|
|
- manual_review_required
|
|
- facts
|
|
- blocking_reasons
|
|
- recommendation_token
|
|
title: StatusRecommendationOut
|
|
TodayItem:
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- departure
|
|
- return
|
|
title: Kind
|
|
booking_ref:
|
|
type: string
|
|
title: Booking Ref
|
|
vehicle_ref:
|
|
type: string
|
|
title: Vehicle Ref
|
|
scheduled_at:
|
|
type: string
|
|
format: date-time
|
|
title: Scheduled At
|
|
type: object
|
|
required:
|
|
- kind
|
|
- booking_ref
|
|
- vehicle_ref
|
|
- scheduled_at
|
|
title: TodayItem
|
|
UpdateUserRequest:
|
|
properties:
|
|
display_name:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 120
|
|
minLength: 2
|
|
- type: 'null'
|
|
title: Display Name
|
|
role:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
- type: 'null'
|
|
title: Role
|
|
active:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Active
|
|
password:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 256
|
|
minLength: 8
|
|
- type: 'null'
|
|
title: Password
|
|
type: object
|
|
title: UpdateUserRequest
|
|
UserOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
email:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Email
|
|
display_name:
|
|
type: string
|
|
title: Display Name
|
|
role:
|
|
type: string
|
|
enum:
|
|
- operations_manager
|
|
- rental_employee
|
|
title: Role
|
|
active:
|
|
type: boolean
|
|
title: Active
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- email
|
|
- display_name
|
|
- role
|
|
- active
|
|
title: UserOut
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
input:
|
|
title: Input
|
|
ctx:
|
|
type: object
|
|
title: Context
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
VehicleDetailOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
make:
|
|
type: string
|
|
title: Make
|
|
model:
|
|
type: string
|
|
title: Model
|
|
model_year:
|
|
type: integer
|
|
title: Model Year
|
|
registration_number:
|
|
type: string
|
|
title: Registration Number
|
|
location:
|
|
type: string
|
|
title: Location
|
|
operational_status:
|
|
type: string
|
|
title: Operational Status
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
next_service_km:
|
|
type: integer
|
|
title: Next Service Km
|
|
active:
|
|
type: boolean
|
|
title: Active
|
|
attention:
|
|
type: boolean
|
|
title: Attention
|
|
default: false
|
|
attention_reason:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Attention Reason
|
|
service_remaining_km:
|
|
type: integer
|
|
title: Service Remaining Km
|
|
next_booking_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Next Booking Ref
|
|
next_booking_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Next Booking At
|
|
bookings:
|
|
items:
|
|
$ref: '#/components/schemas/BookingSummaryOut'
|
|
type: array
|
|
title: Bookings
|
|
inspections:
|
|
items:
|
|
$ref: '#/components/schemas/InspectionOut'
|
|
type: array
|
|
title: Inspections
|
|
maintenance:
|
|
items:
|
|
$ref: '#/components/schemas/MaintenanceOut'
|
|
type: array
|
|
title: Maintenance
|
|
quality_issues:
|
|
items:
|
|
$ref: '#/components/schemas/DataQualityIssueOut'
|
|
type: array
|
|
title: Quality Issues
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- make
|
|
- model
|
|
- model_year
|
|
- registration_number
|
|
- location
|
|
- operational_status
|
|
- odometer_km
|
|
- next_service_km
|
|
- active
|
|
- service_remaining_km
|
|
title: VehicleDetailOut
|
|
VehicleOut:
|
|
properties:
|
|
public_ref:
|
|
type: string
|
|
title: Public Ref
|
|
make:
|
|
type: string
|
|
title: Make
|
|
model:
|
|
type: string
|
|
title: Model
|
|
model_year:
|
|
type: integer
|
|
title: Model Year
|
|
registration_number:
|
|
type: string
|
|
title: Registration Number
|
|
location:
|
|
type: string
|
|
title: Location
|
|
operational_status:
|
|
type: string
|
|
title: Operational Status
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
next_service_km:
|
|
type: integer
|
|
title: Next Service Km
|
|
active:
|
|
type: boolean
|
|
title: Active
|
|
attention:
|
|
type: boolean
|
|
title: Attention
|
|
default: false
|
|
attention_reason:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Attention Reason
|
|
service_remaining_km:
|
|
type: integer
|
|
title: Service Remaining Km
|
|
next_booking_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Next Booking Ref
|
|
next_booking_at:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
- type: 'null'
|
|
title: Next Booking At
|
|
type: object
|
|
required:
|
|
- public_ref
|
|
- make
|
|
- model
|
|
- model_year
|
|
- registration_number
|
|
- location
|
|
- operational_status
|
|
- odometer_km
|
|
- next_service_km
|
|
- active
|
|
- service_remaining_km
|
|
title: VehicleOut
|
|
VehiclePageOut:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/VehicleOut'
|
|
type: array
|
|
title: Items
|
|
page:
|
|
type: integer
|
|
title: Page
|
|
page_size:
|
|
type: integer
|
|
title: Page Size
|
|
total:
|
|
type: integer
|
|
title: Total
|
|
total_pages:
|
|
type: integer
|
|
title: Total Pages
|
|
type: object
|
|
required:
|
|
- items
|
|
- page
|
|
- page_size
|
|
- total
|
|
- total_pages
|
|
title: VehiclePageOut
|
|
VehicleStatusFactsOut:
|
|
properties:
|
|
active_booking_refs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Active Booking Refs
|
|
overlapping_booking_pairs:
|
|
items:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
title: Overlapping Booking Pairs
|
|
service_threshold_reached:
|
|
type: boolean
|
|
title: Service Threshold Reached
|
|
odometer_km:
|
|
type: integer
|
|
title: Odometer Km
|
|
next_service_km:
|
|
type: integer
|
|
title: Next Service Km
|
|
open_booking_overlap_issue_ref:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Open Booking Overlap Issue Ref
|
|
type: object
|
|
required:
|
|
- active_booking_refs
|
|
- overlapping_booking_pairs
|
|
- service_threshold_reached
|
|
- odometer_km
|
|
- next_service_km
|
|
title: VehicleStatusFactsOut
|
|
WorkflowErrorReportIn:
|
|
properties:
|
|
workflow_id:
|
|
type: string
|
|
maxLength: 120
|
|
title: Workflow Id
|
|
workflow_name:
|
|
type: string
|
|
maxLength: 200
|
|
title: Workflow Name
|
|
execution_id:
|
|
type: string
|
|
maxLength: 120
|
|
title: Execution Id
|
|
failed_at:
|
|
type: string
|
|
format: date-time
|
|
title: Failed At
|
|
error_category:
|
|
type: string
|
|
enum:
|
|
- timeout
|
|
- authError
|
|
- connectionError
|
|
- httpError
|
|
- validationError
|
|
- unknown
|
|
title: Error Category
|
|
error_summary:
|
|
type: string
|
|
maxLength: 500
|
|
title: Error Summary
|
|
trigger_context:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 200
|
|
- type: 'null'
|
|
title: Trigger Context
|
|
correlation_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Correlation Id
|
|
attempt:
|
|
type: integer
|
|
maximum: 1000.0
|
|
minimum: 1.0
|
|
title: Attempt
|
|
default: 1
|
|
retry_action:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 200
|
|
- type: 'null'
|
|
title: Retry Action
|
|
type: object
|
|
required:
|
|
- workflow_id
|
|
- workflow_name
|
|
- execution_id
|
|
- failed_at
|
|
- error_category
|
|
- error_summary
|
|
title: WorkflowErrorReportIn
|
|
WorkflowErrorReportResult:
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- registered
|
|
- already_registered
|
|
title: Status
|
|
execution_id:
|
|
type: string
|
|
title: Execution Id
|
|
occurred_at:
|
|
type: string
|
|
format: date-time
|
|
title: Occurred At
|
|
type: object
|
|
required:
|
|
- status
|
|
- execution_id
|
|
- occurred_at
|
|
title: WorkflowErrorReportResult
|