Files
fm_be/docs/swagger.yaml
2026-07-16 22:16:45 +07:00

26516 lines
792 KiB
YAML

basePath: /
definitions:
internal_transport_http_handlers.loginBrandingContentAttrsDTO:
properties:
subtitle:
type: string
title:
type: string
updated_at:
type: string
version:
type: string
type: object
internal_transport_http_handlers.loginBrandingContentData:
properties:
attributes:
$ref: '#/definitions/internal_transport_http_handlers.loginBrandingContentAttrsDTO'
type:
type: string
type: object
internal_transport_http_handlers.loginBrandingContentDocument:
properties:
data:
$ref: '#/definitions/internal_transport_http_handlers.loginBrandingContentData'
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionAttributes:
properties:
completed:
example: 1
type: integer
created_at:
example: "2026-04-09T05:00:00Z"
type: string
done_file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem'
type: array
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem'
type: array
flight_data_count:
example: 2
type: integer
flight_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource'
flight_inspection_id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
flight_time_seconds:
example: 9000
type: integer
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource'
hydraulic_lh_checked:
example: "1"
type: string
hydraulic_rh_checked:
example: "1"
type: string
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
mission_code:
example: M-2026-001
type: string
mission_type:
items:
type: string
type: array
note:
example: All checks completed
type: string
oil_engine_nr1_checked:
example: "1"
type: string
oil_engine_nr2_checked:
example: "1"
type: string
oil_transmission_igb_checked:
example: "1"
type: string
oil_transmission_mgb_checked:
example: "1"
type: string
oil_transmission_tgb_checked:
example: "1"
type: string
route:
items:
type: string
type: array
total:
example: 3
type: integer
total_flight:
example: 3
type: integer
updated_at:
example: "2026-04-09T05:00:00Z"
type: string
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem:
properties:
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
file_name:
example: After Flight Checklist.pdf
type: string
helicopter_file_id:
example: 019d7000-aaaa-7bbb-8ccc-111111111111
type: string
is_done:
example: false
type: boolean
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionAttributes'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
type:
example: after_flight_inspection
type: string
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResource'
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionUpsertAttributes:
properties:
hydraulic_lh_checked:
type: string
hydraulic_rh_checked:
type: string
note:
type: string
oil_engine_nr1_checked:
type: string
oil_engine_nr2_checked:
type: string
oil_transmission_igb_checked:
type: string
oil_transmission_mgb_checked:
type: string
oil_transmission_tgb_checked:
type: string
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionUpsertData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionUpsertAttributes'
type:
enum:
- after_flight_inspection_upsert
- after_flight_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.AfterFlightInspectionUpsertRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionUpsertData'
required:
- data
type: object
wucher_internal_transport_http_dto.AirRescuerProfileAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
responsible_flight_rescuer:
type: boolean
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.AirRescuerProfileUpdateAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
responsible_flight_rescuer:
type: boolean
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.AuthCurrentUserAttributes:
properties:
auth_provider:
example: email
type: string
dul_bases:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULBase'
type: array
email:
example: user@example.com
type: string
email_sso:
example: user.sso@example.com
type: string
email_verified_at:
example: "2026-02-05T10:00:00Z"
type: string
first_name:
example: John
type: string
foto:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserFoto'
is_previously_configured:
example: false
type: boolean
last_name:
example: Doe
type: string
linked_sso:
example: false
type: boolean
login_method:
example: email
type: string
microsoft_scope:
example: openid profile email offline_access User.Read
type: string
mobile_phone:
example: "+628123456789"
type: string
permission_modules:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionGroupResource'
type: array
permissions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionMini'
type: array
pin_blocked:
example: false
type: boolean
pin_configured:
example: false
type: boolean
roles:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleMini'
type: array
timezone:
example: Asia/Jakarta
type: string
totp_enabled:
example: false
type: boolean
webauthn_configured:
example: false
type: boolean
type: object
wucher_internal_transport_http_dto.AuthCurrentUserResponse:
properties:
data:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: user
type: string
type: object
type: object
wucher_internal_transport_http_dto.AuthSessionDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: auth_session_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto.AuthSessionItem:
properties:
active_now:
example: true
type: boolean
created_at:
example: "2026-03-13T12:00:00Z"
type: string
device_name:
example: Chrome on macOS
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
ip_address:
example: 127.0.0.1
type: string
last_active_at:
example: "2026-03-13T12:10:00Z"
type: string
user_agent:
example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...
type: string
type: object
wucher_internal_transport_http_dto.AuthSessionsResponse:
properties:
data:
properties:
attributes:
properties:
sessions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionItem'
type: array
type: object
type:
example: auth_sessions
type: string
type: object
type: object
wucher_internal_transport_http_dto.BaseAttributes:
properties:
address:
example: Lude Airfield
type: string
base:
example: Lude
type: string
base_abbreviation:
example: LOIG
type: string
base_category:
enum:
- regular
- hems
example: regular
type: string
checklist:
example: false
type: boolean
control_center:
example: false
type: boolean
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
default_end_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
default_start_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
dry:
example: false
type: boolean
dul:
example: false
type: boolean
email:
example: lude@wucher.local
type: string
foto:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseFoto'
hems_edc:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseContact'
type: array
hems_edc_contact_ids:
items:
type: string
type: array
is_active:
example: true
type: boolean
landline_number:
example: +62-21-1234
type: string
latitude:
example: 47.3769
type: number
leg_time:
example: "00:20"
type: string
longitude:
example: 8.5417
type: number
med_pax:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseContact'
type: array
med_pax_contact_ids:
items:
type: string
type: array
mobile_number:
example: +62-812-1234
type: string
notes:
example: Main base
type: string
operational_shift_times:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime'
type: array
responsible_pilot_contact_ids:
items:
type: string
type: array
responsible_pilots:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseContact'
type: array
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseShiftTime'
sms_alert:
example: false
type: boolean
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
utc:
example: "0"
type: string
type: object
wucher_internal_transport_http_dto.BaseContact:
properties:
first_name:
type: string
id:
type: string
last_name:
type: string
type: object
wucher_internal_transport_http_dto.BaseCreateAttributes:
properties:
address:
example: Lude Airfield
type: string
base:
example: Lude
type: string
base_abbreviation:
example: LOIG
type: string
base_category:
enum:
- regular
- hems
example: regular
type: string
checklist:
example: false
type: boolean
control_center:
example: false
type: boolean
default_end_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
default_shift_end:
example: "21:00:00"
type: string
default_shift_start:
example: "06:00:00"
type: string
default_shift_time:
example: "12:00"
type: string
default_start_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
dry:
example: false
type: boolean
dul:
example: false
type: boolean
email:
example: lude@wucher.local
type: string
file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
hems_edc_contact_ids:
items:
type: string
type: array
is_active:
example: true
type: boolean
landline_number:
example: +62-21-1234
type: string
latitude:
example: 47.3769
maximum: 90
minimum: -90
type: number
leg_time:
example: "00:20"
type: string
longitude:
example: 8.5417
maximum: 180
minimum: -180
type: number
med_pax_contact_ids:
items:
type: string
type: array
mobile_number:
example: +62-812-1234
type: string
notes:
example: Main base
type: string
operational_shift_times:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime'
type: array
responsible_pilot_contact_ids:
items:
type: string
type: array
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseShiftTime'
sms_alert:
example: false
type: boolean
sortkey:
example: 1
type: integer
utc:
example: "0"
type: string
required:
- base
- latitude
- longitude
type: object
wucher_internal_transport_http_dto.BaseCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseCreateAttributes'
type:
enum:
- base
example: base
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.BaseCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.BaseDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.BaseDeleteAttributes:
properties:
deleted:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto.BaseDeleteResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseDeleteAttributes'
id:
example: 019d6b10-a385-7e9e-a553-8e892bcec0ef
type: string
type:
example: base_delete
type: string
type: object
wucher_internal_transport_http_dto.BaseDeleteResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseDeleteResource'
type: object
wucher_internal_transport_http_dto.BaseFoto:
properties:
download_url:
example: https://storage.example.com/base/lude.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
original_size_bytes:
example: 1024000
type: integer
thumbnail_download_url:
example: https://storage.example.com/base/lude.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.BaseListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.BaseOperationalShiftTime:
properties:
date_end:
example: "2026-04-12"
type: string
date_start:
example: "2026-04-12"
type: string
end_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseShiftTime'
start_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
type: object
wucher_internal_transport_http_dto.BaseResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: base
type: string
type: object
wucher_internal_transport_http_dto.BaseResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResource'
type: object
wucher_internal_transport_http_dto.BaseShiftTime:
properties:
end:
example: "21:00"
type: string
start:
example: "06:00"
type: string
type: object
wucher_internal_transport_http_dto.BaseUpdateAttributes:
properties:
address:
example: Lude Airfield
type: string
base:
example: Lude
type: string
base_abbreviation:
example: LOIG
type: string
base_category:
enum:
- regular
- hems
example: regular
type: string
checklist:
example: false
type: boolean
control_center:
example: false
type: boolean
default_end_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
default_shift_end:
example: "21:00:00"
type: string
default_shift_start:
example: "06:00:00"
type: string
default_shift_time:
example: "12:00"
type: string
default_start_time_type:
enum:
- FIXED
- BMCT
- ECET
example: FIXED
type: string
dry:
example: false
type: boolean
dul:
example: false
type: boolean
email:
example: lude@wucher.local
type: string
file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
hems_edc_contact_ids:
items:
type: string
type: array
is_active:
example: true
type: boolean
landline_number:
example: +62-21-1234
type: string
latitude:
example: 47.3769
maximum: 90
minimum: -90
type: number
leg_time:
example: "00:20"
type: string
longitude:
example: 8.5417
maximum: 180
minimum: -180
type: number
med_pax_contact_ids:
items:
type: string
type: array
mobile_number:
example: +62-812-1234
type: string
notes:
example: Main base
type: string
operational_shift_times:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime'
type: array
responsible_pilot_contact_ids:
items:
type: string
type: array
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseShiftTime'
sms_alert:
example: false
type: boolean
sortkey:
example: 1
type: integer
utc:
example: "0"
type: string
type: object
wucher_internal_transport_http_dto.BaseUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- base_update
example: base_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.BaseUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactBaseRole:
properties:
base_id:
type: string
base_name:
type: string
role_code:
type: string
type: object
wucher_internal_transport_http_dto.ContactBulkUpdateData:
properties:
attributes:
properties:
is_active:
example: true
type: boolean
user_ids:
example:
- 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1
items:
type: string
minItems: 1
type: array
required:
- user_ids
type: object
type:
example: contact_bulk_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactBulkUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactBulkUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactChiefFlagsUpdateData:
properties:
attributes:
properties:
is_chief_physician:
type: boolean
is_chief_pilot:
type: boolean
is_chief_technician:
type: boolean
type: object
type:
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactChiefFlagsUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactChiefFlagsUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactCreateAttributes:
properties:
air_rescuer:
$ref: '#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileAttributes'
doctor:
$ref: '#/definitions/wucher_internal_transport_http_dto.DoctorProfileAttributes'
email:
type: string
file_uuid:
maxLength: 64
type: string
first_name:
maxLength: 100
type: string
flight_assistant:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileAttributes'
is_active:
type: boolean
is_admin:
type: boolean
last_name:
maxLength: 100
type: string
mobile_phone:
maxLength: 32
type: string
pilot:
$ref: '#/definitions/wucher_internal_transport_http_dto.PilotProfileAttributes'
role_id:
example: 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1
type: string
role_ids:
example:
- 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1
- 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d2
items:
type: string
type: array
sortkey:
type: integer
sso_email:
type: string
staff:
$ref: '#/definitions/wucher_internal_transport_http_dto.StaffProfileAttributes'
technician:
$ref: '#/definitions/wucher_internal_transport_http_dto.TechnicianProfileAttributes'
timezone:
maxLength: 64
type: string
username:
maxLength: 100
type: string
type: object
wucher_internal_transport_http_dto.ContactCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactCreateAttributes'
type:
example: contact_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListItem'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ContactLicenseUpdateData:
properties:
attributes:
properties:
license_no:
type: string
type: object
type:
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactLicenseUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactLicenseUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactListAttributes:
properties:
air_rescuer:
$ref: '#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileAttributes'
base_roles:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactBaseRole'
type: array
created_at:
type: string
created_by:
type: string
doctor:
$ref: '#/definitions/wucher_internal_transport_http_dto.DoctorProfileAttributes'
email:
type: string
first_name:
type: string
flight_assistant:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileAttributes'
is_active:
type: boolean
is_admin:
type: boolean
last_name:
type: string
license_no:
type: string
location:
type: string
mobile_phone:
type: string
note:
type: string
pilot:
$ref: '#/definitions/wucher_internal_transport_http_dto.PilotProfileAttributes'
pilot_category:
type: string
role_code:
type: string
role_name:
type: string
roles:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactRole'
type: array
set_password:
type: boolean
short_name:
type: string
sortkey:
type: integer
sso_email:
type: string
staff:
$ref: '#/definitions/wucher_internal_transport_http_dto.StaffProfileAttributes'
technician:
$ref: '#/definitions/wucher_internal_transport_http_dto.TechnicianProfileAttributes'
updated_at:
type: string
updated_by:
type: string
username:
type: string
type: object
wucher_internal_transport_http_dto.ContactListItem:
properties:
created_at:
type: string
created_by:
type: string
email:
type: string
first_name:
type: string
id:
type: string
is_active:
type: boolean
is_admin:
type: boolean
last_name:
type: string
license_no:
type: string
location:
type: string
mobile_phone:
type: string
note:
type: string
pilot_category:
type: string
role_code:
type: string
role_name:
type: string
set_password:
type: boolean
short_name:
type: string
sortkey:
type: integer
updated_at:
type: string
updated_by:
type: string
username:
type: string
type: object
wucher_internal_transport_http_dto.ContactListResponse:
properties:
data:
items:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListAttributes'
id:
example: 019dcce4-f15e-7685-8e4c-76f8ad20594b
type: string
type:
example: contact
type: string
type: object
type: array
meta:
properties:
limit:
type: integer
offset:
type: integer
total:
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ContactPilotCategoryUpdateData:
properties:
attributes:
properties:
pilot_category:
enum:
- regular
- freelance
- dry_lease
type: string
required:
- pilot_category
type: object
type:
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactPilotCategoryUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactPilotCategoryUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactRole:
properties:
id:
type: string
role_code:
type: string
role_name:
type: string
type: object
wucher_internal_transport_http_dto.ContactRoleUpdateData:
properties:
attributes:
properties:
role_code:
enum:
- pilot
- doctor
- air_rescuer
- technician
- flight_assistant
- staff
type: string
required:
- role_code
type: object
type:
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactRoleUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactRoleUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactSimpleSuccessResponse:
properties:
data:
properties:
attributes:
properties:
count:
type: integer
deleted:
type: boolean
updated:
type: boolean
type: object
type:
type: string
type: object
type: object
wucher_internal_transport_http_dto.ContactStatusUpdateData:
properties:
attributes:
properties:
is_active:
type: boolean
type: object
type:
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactStatusUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactStatusUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ContactUpdateAttributes:
properties:
air_rescuer:
$ref: '#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileUpdateAttributes'
doctor:
$ref: '#/definitions/wucher_internal_transport_http_dto.DoctorProfileUpdateAttributes'
email:
type: string
file_uuid:
maxLength: 64
type: string
first_name:
maxLength: 100
type: string
flight_assistant:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileUpdateAttributes'
is_active:
type: boolean
is_admin:
type: boolean
last_name:
maxLength: 100
type: string
mobile_phone:
maxLength: 32
type: string
pilot:
$ref: '#/definitions/wucher_internal_transport_http_dto.PilotProfileUpdateAttributes'
role_id:
example: 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1
type: string
role_ids:
example:
- 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1
- 0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d2
items:
type: string
type: array
sortkey:
type: integer
sso_email:
type: string
staff:
$ref: '#/definitions/wucher_internal_transport_http_dto.StaffProfileUpdateAttributes'
technician:
$ref: '#/definitions/wucher_internal_transport_http_dto.TechnicianProfileUpdateAttributes'
timezone:
maxLength: 64
type: string
username:
maxLength: 100
type: string
type: object
wucher_internal_transport_http_dto.ContactUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactUpdateAttributes'
type:
example: contact_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ContactUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.DULAttributes:
properties:
base:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULBaseRef'
created_at:
type: string
created_by:
type: string
date:
example: "2026-05-25"
type: string
images:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULImage'
type: array
info:
type: string
name:
type: string
"no":
type: integer
updated_at:
type: string
updated_by:
type: string
type: object
wucher_internal_transport_http_dto.DULBase:
properties:
category:
example: hems
type: string
id:
example: 0197f3b2-c4d8-4b12-a1f9-c1de23456789
type: string
name:
example: Halim Base
type: string
type: object
wucher_internal_transport_http_dto.DULBaseRef:
properties:
category:
type: string
id:
type: string
name:
type: string
type: object
wucher_internal_transport_http_dto.DULCreateAttributes:
properties:
base_id:
example: 019e3ec1-94f6-7b6b-9cc5-1b5d05f46d74
type: string
date:
example: "2026-05-25"
type: string
file_uuid:
items:
type: string
type: array
info:
type: string
name:
maxLength: 128
type: string
required:
- base_id
- date
- name
type: object
wucher_internal_transport_http_dto.DULCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULCreateAttributes'
type:
enum:
- dul_create
- dul
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.DULCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.DULDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULGroup'
type: array
meta:
properties:
draw:
example: 1
type: integer
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
records_filtered:
example: 120
type: integer
records_total:
example: 120
type: integer
total:
example: 120
type: integer
total_bases:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto.DULDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: dul_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto.DULGroup:
properties:
base:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULBaseRef'
duls:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULResource'
type: array
type: object
wucher_internal_transport_http_dto.DULImage:
properties:
download_url:
type: string
original_size_bytes:
type: integer
thumbnail_download_url:
type: string
uuid:
type: string
type: object
wucher_internal_transport_http_dto.DULListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULGroup'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
total_bases:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto.DULResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULAttributes'
id:
type: string
type:
type: string
type: object
wucher_internal_transport_http_dto.DULResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULResource'
type: object
wucher_internal_transport_http_dto.DULUpdateAttributes:
properties:
base_id:
type: string
date:
example: "2026-05-25"
type: string
file_uuid:
items:
type: string
type: array
info:
type: string
name:
type: string
type: object
wucher_internal_transport_http_dto.DULUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULUpdateAttributes'
type:
enum:
- dul_update
- dul
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.DULUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.DoctorProfileAttributes:
properties:
is_chief_physician:
type: boolean
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
specialization:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
sub_specialization:
maxLength: 120
type: string
type: object
wucher_internal_transport_http_dto.DoctorProfileUpdateAttributes:
properties:
is_chief_physician:
type: boolean
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
specialization:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
sub_specialization:
maxLength: 120
type: string
type: object
wucher_internal_transport_http_dto.EmailOTPSendAttributes:
properties:
challenge_token:
example: kP8k2...
type: string
required:
- challenge_token
type: object
wucher_internal_transport_http_dto.EmailOTPSendData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPSendAttributes'
type:
example: auth_email_otp_send
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.EmailOTPSendRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPSendData'
required:
- data
type: object
wucher_internal_transport_http_dto.EmailOTPSendResponse:
properties:
data:
properties:
attributes:
properties:
sent:
example: true
type: boolean
type: object
type:
example: auth_email_otp_send
type: string
type: object
type: object
wucher_internal_transport_http_dto.EmailOTPVerifyAttributes:
properties:
challenge_token:
example: kP8k2...
type: string
code:
example: "123456"
type: string
required:
- challenge_token
- code
type: object
wucher_internal_transport_http_dto.EmailOTPVerifyData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyAttributes'
type:
example: auth_email_otp_verify
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.EmailOTPVerifyRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyData'
required:
- data
type: object
wucher_internal_transport_http_dto.EmailOTPVerifyResponse:
properties:
data:
properties:
attributes:
properties:
requires_totp_setup:
example: true
type: boolean
verified:
example: true
type: boolean
type: object
type:
example: auth_email_otp_verify
type: string
type: object
type: object
wucher_internal_transport_http_dto.ErrorResponse:
properties:
errors:
items:
properties:
detail:
example: email is required
type: string
source:
properties:
pointer:
example: /data/attributes/email
type: string
type: object
status:
example: "422"
type: string
title:
example: Validation error
type: string
type: object
type: array
type: object
wucher_internal_transport_http_dto.ExchangeAttributes:
properties:
access_token:
example: eyJ0eXAiOiJKV1Qi...
type: string
id_token:
example: eyJ0eXAiOiJKV1Qi...
type: string
id_token_claims:
$ref: '#/definitions/wucher_internal_transport_http_dto.ExchangeIDTokenClaims'
required:
- access_token
- id_token
type: object
wucher_internal_transport_http_dto.ExchangeData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ExchangeAttributes'
type:
example: auth_exchange
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ExchangeIDTokenClaims:
properties:
aud:
example: 12345678-1234-1234-1234-123456789012
type: string
email:
example: andrio@mybit-innovation.com
type: string
exp:
example: 1715603600
type: integer
iat:
example: 1715600000
type: integer
iss:
example: https://login.microsoftonline.com/abc-tenant-id/v2.0
type: string
name:
example: Andrio Effendi
type: string
nbf:
example: 1715600000
type: integer
oid:
example: 00000000-0000-0000-1234-567890abcdef
type: string
preferred_username:
example: andrio@mybit-innovation.com
type: string
sub:
example: AbCdEfGhIjKlMnOpQrStUvWxYz
type: string
tid:
example: abc-tenant-id
type: string
ver:
example: "2.0"
type: string
type: object
wucher_internal_transport_http_dto.ExchangeRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ExchangeData'
required:
- data
type: object
wucher_internal_transport_http_dto.FMReportAirframeValues:
properties:
cycles:
example: 320
type: number
hours:
example: 1523.5
type: number
type: object
wucher_internal_transport_http_dto.FMReportAttachmentItem:
properties:
download_url:
type: string
file_id:
type: string
id:
type: string
type: object
wucher_internal_transport_http_dto.FMReportAttachments:
properties:
additional_fm_report:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem'
type: array
briefing:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem'
type: array
ofp:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem'
type: array
weight_balance:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem'
type: array
type: object
wucher_internal_transport_http_dto.FMReportAttributes:
properties:
after_flight_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResource'
completed_at:
example: "2026-04-20T10:15:00Z"
type: string
completed_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
created_at:
example: "2026-04-20T08:00:00Z"
type: string
engine1_gpc_n1:
example: GPC/N1 63.2
type: string
engine1_ptc_n2:
example: PTC/N2 61.8
type: string
engine2_gpc_n1:
example: GPC/N1 62.9
type: string
engine2_ptc_n2:
example: PTC/N2 61.5
type: string
fleet_status:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource'
flight:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightResource'
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
flight_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource'
flight_inspection_id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
fm_report_attachments:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttachments'
helicopter_identifier:
example: OE-TEST
type: string
helicopter_usage:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
missions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResource'
type: array
pilot_name:
example: John Doe
type: string
report_code:
example: EC-135-1
type: string
takeover_files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileResource'
type: array
takeover_id:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
updated_at:
example: "2026-04-20T08:00:00Z"
type: string
usage_breakdown:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportUsageBreakdown'
type: object
wucher_internal_transport_http_dto.FMReportCountersValues:
properties:
flight_reports:
example: 80
type: number
hook_releases:
example: 10
type: number
landings:
example: 120
type: number
rotor_brake_cycles:
example: 8
type: number
type: object
wucher_internal_transport_http_dto.FMReportEngineValues:
properties:
ccc:
example: 44
type: number
gpc_ng_n1:
example: 63.2
type: number
hours:
example: 1523.5
type: number
ptc_nf_n2:
example: 61.8
type: number
type: object
wucher_internal_transport_http_dto.FMReportListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FMReportResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAttributes'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
type:
example: fm_report
type: string
type: object
wucher_internal_transport_http_dto.FMReportResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportResource'
type: object
wucher_internal_transport_http_dto.FMReportUsageBreakdown:
properties:
prev:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot'
today:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot'
total:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot'
type: object
wucher_internal_transport_http_dto.FMReportUsageSnapshot:
properties:
airframe:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportAirframeValues'
counters:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportCountersValues'
engine_1:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportEngineValues'
engine_2:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportEngineValues'
type: object
wucher_internal_transport_http_dto.FacilityAttributes:
properties:
category:
example: heslo-rope-label
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
electric:
example: available
type: string
is_active:
example: true
type: boolean
length:
example: 10m
type: string
name:
example: Fuel Truck Rope Label
type: string
note:
example: Dry lease fuel truck
type: string
sortkey:
example: 1
type: integer
type:
example: Sling
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
weight:
example: 10kg
type: string
type: object
wucher_internal_transport_http_dto.FacilityCreateAttributes:
properties:
category:
example: heslo-rope-label
type: string
electric:
example: available
type: string
is_active:
example: true
type: boolean
length:
example: 10m
type: string
name:
example: Fuel Truck Rope Label
type: string
note:
example: Dry lease fuel truck
type: string
sortkey:
example: 1
type: integer
type:
example: Sling
type: string
weight:
example: 10kg
type: string
required:
- category
- name
type: object
wucher_internal_transport_http_dto.FacilityCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityCreateAttributes'
type:
enum:
- facility_create
- facility
example: facility_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FacilityCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.FacilityDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FacilityDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: facility_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto.FacilityListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FacilityResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: facility
type: string
type: object
wucher_internal_transport_http_dto.FacilityResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResource'
type: object
wucher_internal_transport_http_dto.FacilityUpdateAttributes:
properties:
category:
example: heslo-rope-label
type: string
electric:
example: available
type: string
is_active:
example: true
type: boolean
length:
example: 10m
type: string
name:
example: Fuel Truck Rope Label
type: string
note:
example: Dry lease fuel truck
type: string
sortkey:
example: 1
type: integer
type:
example: Sling
type: string
weight:
example: 10kg
type: string
type: object
wucher_internal_transport_http_dto.FacilityUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- facility_update
- facility
example: facility_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FacilityUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.FederalStateAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
land_iso_code:
example: DE
type: string
land_name:
example: Germany
type: string
name:
example: Bayern
type: string
note:
example: Central region
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.FederalStateCreateAttributes:
properties:
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Bayern
type: string
note:
example: Central region
type: string
sortkey:
example: 1
type: integer
required:
- land_id
- name
type: object
wucher_internal_transport_http_dto.FederalStateCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateCreateAttributes'
type:
enum:
- federal_state_create
- federal_state
example: federal_state_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FederalStateCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.FederalStateDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FederalStateDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: federal_state_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto.FederalStateListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FederalStateResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: federal_state
type: string
type: object
wucher_internal_transport_http_dto.FederalStateResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateResource'
type: object
wucher_internal_transport_http_dto.FederalStateUpdateAttributes:
properties:
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Bayern
type: string
note:
example: Central region
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.FederalStateUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- federal_state_update
- federal_state
example: federal_state_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FederalStateUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.FlightAssistantProfileAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.FlightAssistantProfileUpdateAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.FlightInspectionAttributes:
properties:
created_at:
example: "2026-04-09T05:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
inspection_date:
example: "2026-04-09"
type: string
status:
example: Draft
type: string
updated_at:
example: "2026-04-09T05:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto.FlightInspectionCreateAttributes:
properties:
inspection_date:
example: "2026-04-09"
type: string
required:
- inspection_date
type: object
wucher_internal_transport_http_dto.FlightInspectionCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionCreateAttributes'
type:
enum:
- flight_inspection_create
- flight_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FlightInspectionCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.FlightInspectionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto.FlightInspectionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionAttributes'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
type:
example: flight_inspection
type: string
type: object
wucher_internal_transport_http_dto.FlightInspectionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource'
type: object
wucher_internal_transport_http_dto.FlightInspectionUpdateAttributes:
properties:
inspection_date:
example: "2026-04-09"
type: string
status:
example: InProgress
type: string
type: object
wucher_internal_transport_http_dto.FlightInspectionUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionUpdateAttributes'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
type:
enum:
- flight_inspection_update
- flight_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.FlightInspectionUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.FlightInspectionUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ForcesPresentAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
name:
example: Firefighter Team A
type: string
note:
example: On-site responders
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.ForcesPresentCreateAttributes:
properties:
is_active:
example: true
type: boolean
name:
example: Firefighter Team A
type: string
note:
example: On-site responders
type: string
sortkey:
example: 1
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto.ForcesPresentCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateAttributes'
type:
enum:
- forces_present_create
- forces_present
example: forces_present_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ForcesPresentCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ForcesPresentDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ForcesPresentListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ForcesPresentResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: forces_present
type: string
type: object
wucher_internal_transport_http_dto.ForcesPresentResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource'
type: object
wucher_internal_transport_http_dto.ForcesPresentUpdateAttributes:
properties:
is_active:
example: true
type: boolean
name:
example: Firefighter Team A
type: string
note:
example: On-site responders
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.ForcesPresentUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- forces_present_update
- forces_present
example: forces_present_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ForcesPresentUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ForgotPasswordAttributes:
properties:
email:
example: user@example.com
type: string
required:
- email
type: object
wucher_internal_transport_http_dto.ForgotPasswordData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotPasswordAttributes'
type:
example: auth_forgot_password
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ForgotPasswordRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotPasswordData'
required:
- data
type: object
wucher_internal_transport_http_dto.ForgotSecurityPINAttributes:
properties:
email:
example: user@example.com
type: string
required:
- email
type: object
wucher_internal_transport_http_dto.ForgotSecurityPINData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINAttributes'
type:
example: auth_forgot_pin
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ForgotSecurityPINRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINData'
required:
- data
type: object
wucher_internal_transport_http_dto.GenericDeleteAttributes:
properties:
deleted:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto.GenericDeleteResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponseData'
type: object
wucher_internal_transport_http_dto.GenericDeleteResponseData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteAttributes'
type:
example: delete_result
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
date:
example: "2026-03-12T03:04:05Z"
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
hems_operation_category:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryRef'
hems_operation_category_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mission:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationMissionRef'
mission_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
operational_data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationOperationalDataRef'
operational_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Firefighting
type: string
type:
example: first
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryCreateAttributes:
properties:
name:
example: Firefighting
type: string
type:
enum:
- first
- secondary
- misuse
example: first
type: string
required:
- name
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateAttributes'
type:
enum:
- hems_operation_category_create
- hems_operation_category
example: hems_operation_category_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryRef:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Firefighting
type: string
type:
example: first
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: hems_operation_category
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource'
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateAttributes:
properties:
name:
example: Firefighting
type: string
type:
enum:
- first
- secondary
- misuse
example: first
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateAttributes'
type:
enum:
- hems_operation_category_update
- hems_operation_category
example: hems_operation_category_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HEMSOperationCreateAttributes:
properties:
date:
example: "2026-03-12T03:04:05Z"
type: string
hems_operation_category_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mission_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
operational_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- date
type: object
wucher_internal_transport_http_dto.HEMSOperationCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateAttributes'
type:
enum:
- hems_operation_create
- hems_operation
example: hems_operation_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HEMSOperationDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationMissionRef:
properties:
flight_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: HEMS
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationOperationalDataRef:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: hems_operation
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource'
type: object
wucher_internal_transport_http_dto.HEMSOperationUpdateAttributes:
properties:
date:
example: "2026-03-12T03:04:05Z"
type: string
hems_operation_category_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mission_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
operational_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateAttributes'
type:
enum:
- hems_operation_update
- hems_operation
example: hems_operation_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataAttributes:
properties:
additional_info:
example: Additional information about the operational data
type: string
altitude:
example: 5.2
type: number
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
darkness:
type: boolean
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
false_information:
type: boolean
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataFileAttributes'
type: array
fog:
type: boolean
force_present_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
instrument_flight:
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
landing_site_search:
type: boolean
location:
example: 123 Main St, Anytown, USA
type: string
mountain_use:
type: boolean
nfo_search:
type: boolean
night_flight:
type: boolean
notes:
example: Notes about the operational data
type: string
postcode:
example: "12345"
type: string
precipitation:
type: boolean
rope_recovery:
type: boolean
state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
temperature:
example: 23.5
type: number
terrain_index:
example: Only helicopter landing
type: string
time:
example: "2026-03-12T03:04:05Z"
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
vocation_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
wind:
type: boolean
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataCreateAttributes:
properties:
additional_info:
example: Additional information about the operational data
type: string
altitude:
example: 5.2
type: number
darkness:
type: boolean
false_information:
type: boolean
file_attachment_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
fog:
type: boolean
force_present_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
instrument_flight:
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
landing_site_search:
type: boolean
location:
example: 123 Main St, Anytown, USA
type: string
mountain_use:
type: boolean
nfo_search:
type: boolean
night_flight:
type: boolean
notes:
example: Notes about the operational data
type: string
postcode:
example: "12345"
type: string
precipitation:
type: boolean
rope_recovery:
type: boolean
state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
temperature:
example: 23.5
type: number
terrain_index:
example: Only helicopter landing
type: string
time:
example: "2026-03-12T03:04:05Z"
type: string
vocation_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
wind:
type: boolean
required:
- location
- time
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateAttributes'
type:
enum:
- hems_operational_data_create
- hems_operational_data
example: hems_operational_data_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataFileAttributes:
properties:
file_attachment_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: hems_operational_data
type: string
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource'
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataUpdateAttributes:
properties:
additional_info:
example: Additional information about the operational data
type: string
altitude:
example: 5.2
type: number
darkness:
type: boolean
false_information:
type: boolean
file_attachment_ids:
items:
type: string
type: array
fog:
type: boolean
force_present_ids:
items:
type: string
type: array
instrument_flight:
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
landing_site_search:
type: boolean
location:
example: 123 Main St, Anytown, USA
type: string
mountain_use:
type: boolean
nfo_search:
type: boolean
night_flight:
type: boolean
notes:
example: Notes about the operational data
type: string
postcode:
example: "12345"
type: string
precipitation:
type: boolean
rope_recovery:
type: boolean
state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
temperature:
example: 23.5
type: number
terrain_index:
example: Only helicopter landing
type: string
time:
example: "2026-03-12T03:04:05Z"
type: string
vocation_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
wind:
type: boolean
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateAttributes'
type:
enum:
- hems_operational_data_update
- hems_operational_data
example: hems_operational_data_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HEMSOperationalDataUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyAttributes:
properties:
address:
example: Main Street 10
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
email:
example: info@abc-insurance.local
type: string
federal_state:
example: Bayern
type: string
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
land_iso_code:
example: DE
type: string
land_name:
example: Germany
type: string
mobile_number:
example: "+4912345678"
type: string
name:
example: ABC Insurance
type: string
note:
example: Preferred insurance provider
type: string
sortkey:
example: 1
type: integer
state:
example: Berlin
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateAttributes:
properties:
address:
example: Main Street 10
type: string
email:
example: info@abc-insurance.local
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mobile_number:
example: "+4912345678"
type: string
name:
example: ABC Insurance
type: string
note:
example: Preferred insurance provider
type: string
sortkey:
example: 1
type: integer
state:
example: Berlin
type: string
required:
- name
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateAttributes'
type:
enum:
- health_insurance_company_create
- health_insurance_company
example: health_insurance_company_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: health_insurance_company
type: string
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource'
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateAttributes:
properties:
address:
example: Main Street 10
type: string
email:
example: info@abc-insurance.local
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mobile_number:
example: "+4912345678"
type: string
name:
example: ABC Insurance
type: string
note:
example: Preferred insurance provider
type: string
sortkey:
example: 1
type: integer
state:
example: Berlin
type: string
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- health_insurance_company_update
- health_insurance_company
example: health_insurance_company_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HelicopterUsageAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
helicopter_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
total_airframe_cycles:
example: 320
type: number
total_airframe_hours:
example: 1523.5
type: number
total_engine_1_ccc:
example: 44
type: number
total_engine_1_gpc_ng_n1:
example: 98.7
type: number
total_engine_1_hours:
example: 1523.5
type: number
total_engine_1_ptc_nf_n2:
example: 97.2
type: number
total_engine_2_ccc:
example: 44
type: number
total_engine_2_gpc_ng_n1:
example: 98.7
type: number
total_engine_2_hours:
example: 1523.5
type: number
total_engine_2_ptc_nf_n2:
example: 97.2
type: number
total_flight_report:
example: 80
type: number
total_hook_release:
example: 10
type: number
total_landing:
example: 120
type: number
total_rotor_brake_cycle:
example: 8
type: number
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HelicopterUsageCreateAttributes:
properties:
helicopter_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
total_airframe_cycles:
example: 320
type: number
total_airframe_hours:
example: 1523.5
type: number
total_engine_1_ccc:
example: 44
type: number
total_engine_1_gpc_ng_n1:
example: 98.7
type: number
total_engine_1_hours:
example: 1523.5
type: number
total_engine_1_ptc_nf_n2:
example: 97.2
type: number
total_engine_2_ccc:
example: 44
type: number
total_engine_2_gpc_ng_n1:
example: 98.7
type: number
total_engine_2_hours:
example: 1523.5
type: number
total_engine_2_ptc_nf_n2:
example: 97.2
type: number
total_flight_report:
example: 80
type: number
total_hook_release:
example: 10
type: number
total_landing:
example: 120
type: number
total_rotor_brake_cycle:
example: 8
type: number
required:
- helicopter_id
type: object
wucher_internal_transport_http_dto.HelicopterUsageCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateAttributes'
type:
enum:
- helicopter_usage_create
- helicopter_usage
example: helicopter_usage_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HelicopterUsageCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HelicopterUsageListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HelicopterUsageResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: helicopter_usage
type: string
type: object
wucher_internal_transport_http_dto.HelicopterUsageResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource'
type: object
wucher_internal_transport_http_dto.HelicopterUsageUpdateAttributes:
properties:
helicopter_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
total_airframe_cycles:
example: 320
type: number
total_airframe_hours:
example: 1523.5
type: number
total_engine_1_ccc:
example: 44
type: number
total_engine_1_gpc_ng_n1:
example: 98.7
type: number
total_engine_1_hours:
example: 1523.5
type: number
total_engine_1_ptc_nf_n2:
example: 97.2
type: number
total_engine_2_ccc:
example: 44
type: number
total_engine_2_gpc_ng_n1:
example: 98.7
type: number
total_engine_2_hours:
example: 1523.5
type: number
total_engine_2_ptc_nf_n2:
example: 97.2
type: number
total_flight_report:
example: 80
type: number
total_hook_release:
example: 10
type: number
total_landing:
example: 120
type: number
total_rotor_brake_cycle:
example: 8
type: number
type: object
wucher_internal_transport_http_dto.HelicopterUsageUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- helicopter_usage_update
- helicopter_usage
example: helicopter_usage_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HelicopterUsageUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HospitalAttributes:
properties:
address:
example: Jl. Merdeka No. 10
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
email:
example: info@hospital.local
type: string
is_active:
example: true
type: boolean
landline_number:
example: "0211234567"
type: string
mobile_number:
example: "08123456789"
type: string
name:
example: RSUD Kota
type: string
note:
example: Nearest trauma center
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.HospitalCreateAttributes:
properties:
address:
example: Jl. Merdeka No. 10
type: string
email:
example: info@hospital.local
type: string
is_active:
example: true
type: boolean
landline_number:
example: "0211234567"
type: string
mobile_number:
example: "08123456789"
type: string
name:
example: RSUD Kota
type: string
note:
example: Nearest trauma center
type: string
sortkey:
example: 1
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto.HospitalCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalCreateAttributes'
type:
enum:
- hospital_create
- hospital
example: hospital_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HospitalCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.HospitalDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HospitalListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.HospitalResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: hospital
type: string
type: object
wucher_internal_transport_http_dto.HospitalResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalResource'
type: object
wucher_internal_transport_http_dto.HospitalUpdateAttributes:
properties:
address:
example: Jl. Merdeka No. 10
type: string
email:
example: info@hospital.local
type: string
is_active:
example: true
type: boolean
landline_number:
example: "0211234567"
type: string
mobile_number:
example: "08123456789"
type: string
name:
example: RSUD Kota
type: string
note:
example: Nearest trauma center
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.HospitalUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- hospital_update
- hospital
example: hospital_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.HospitalUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ICAOAttributes:
properties:
address:
example: Muehlenstrasse 1
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
email:
example: ops@example.local
type: string
federal_state:
example: Bayern
type: string
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
icao_code:
example: EDDB
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
land_iso_code:
example: DE
type: string
land_name:
example: Germany
type: string
landline_number:
example: "030123456"
type: string
mobile_number:
example: "0170123456"
type: string
name:
example: Berlin Base
type: string
note:
example: Night operations supported
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.ICAOCreateAttributes:
properties:
address:
example: Muehlenstrasse 1
type: string
email:
example: ops@example.local
type: string
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
icao_code:
example: EDDB
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
landline_number:
example: "030123456"
type: string
mobile_number:
example: "0170123456"
type: string
name:
example: Berlin Base
type: string
note:
example: Night operations supported
type: string
sortkey:
example: 1
type: integer
required:
- icao_code
type: object
wucher_internal_transport_http_dto.ICAOCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOCreateAttributes'
type:
enum:
- icao_create
- icao
example: icao_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ICAOCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.ICAODataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ICAOListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.ICAOResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: icao
type: string
type: object
wucher_internal_transport_http_dto.ICAOResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOResource'
type: object
wucher_internal_transport_http_dto.ICAOUpdateAttributes:
properties:
address:
example: Muehlenstrasse 1
type: string
email:
example: ops@example.local
type: string
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
icao_code:
example: EDDB
type: string
is_active:
example: true
type: boolean
land_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
landline_number:
example: "030123456"
type: string
mobile_number:
example: "0170123456"
type: string
name:
example: Berlin Base
type: string
note:
example: Night operations supported
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.ICAOUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- icao_update
- icao
example: icao_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ICAOUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.InsurancePatientDataAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
federal_state:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataFederalState'
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_companies_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_company:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany'
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.InsurancePatientDataCreateAttributes:
properties:
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_companies_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- federal_state_id
- health_insurance_companies_id
type: object
wucher_internal_transport_http_dto.InsurancePatientDataCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateAttributes'
type:
enum:
- insurance_patient_data_create
- insurance_patient_data
example: insurance_patient_data_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.InsurancePatientDataCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.InsurancePatientDataDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.InsurancePatientDataFederalState:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Bayern
type: string
type: object
wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany:
properties:
address:
example: Main Street 10
type: string
email:
example: info@abc-insurance.local
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mobile_number:
example: "+4912345678"
type: string
name:
example: ABC Insurance
type: string
state:
example: Berlin
type: string
type: object
wucher_internal_transport_http_dto.InsurancePatientDataListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.InsurancePatientDataResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: insurance_patient_data
type: string
type: object
wucher_internal_transport_http_dto.InsurancePatientDataResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource'
type: object
wucher_internal_transport_http_dto.InsurancePatientDataUpdateAttributes:
properties:
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_companies_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.InsurancePatientDataUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- insurance_patient_data_update
- insurance_patient_data
example: insurance_patient_data_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.InsurancePatientDataUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.InviteAttributes:
properties:
email:
example: user@example.com
type: string
first_name:
example: John
type: string
last_name:
example: Doe
type: string
mobile_phone:
example: "+628123456789"
type: string
role_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
role_ids:
example:
- '["018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"'
- '"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e"]'
items:
type: string
type: array
username:
example: john.doe
maxLength: 100
minLength: 3
type: string
required:
- email
- first_name
- last_name
- role_id
- username
type: object
wucher_internal_transport_http_dto.InviteData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.InviteAttributes'
type:
example: auth_invite
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.InviteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.InviteData'
required:
- data
type: object
wucher_internal_transport_http_dto.LandAttributes:
properties:
bmd_export_id:
example: DE001
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
federal_state_list:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandFederalStateDTO'
type: array
federal_state_total:
example: 2
type: integer
is_active:
example: true
type: boolean
iso_code:
example: DE
type: string
name:
example: Germany
type: string
note:
example: Central Europe
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.LandCreateAttributes:
properties:
bmd_export_id:
example: DE001
type: string
is_active:
example: true
type: boolean
iso_code:
example: DE
type: string
name:
example: Germany
type: string
note:
example: Central Europe
type: string
sortkey:
example: 1
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto.LandCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandCreateAttributes'
type:
enum:
- land_create
- land
example: land_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.LandCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.LandDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.LandFederalStateDTO:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Bayern
type: string
type: object
wucher_internal_transport_http_dto.LandListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.LandResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: land
type: string
type: object
wucher_internal_transport_http_dto.LandResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandResource'
type: object
wucher_internal_transport_http_dto.LandUpdateAttributes:
properties:
bmd_export_id:
example: DE001
type: string
is_active:
example: true
type: boolean
iso_code:
example: DE
type: string
name:
example: Germany
type: string
note:
example: Central Europe
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.LandUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- land_update
- land
example: land_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.LandUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.LoginAttributes:
properties:
email:
example: user@example.com
type: string
password:
example: StrongP@ssw0rd
type: string
required:
- email
- password
type: object
wucher_internal_transport_http_dto.LoginData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.LoginAttributes'
type:
example: auth_login
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.LoginEmailOTPRequiredResponse:
properties:
data:
properties:
attributes:
properties:
challenge_token:
example: kP8k2...
type: string
linked_sso:
example: false
type: boolean
max_resend_per_hour:
example: 5
type: integer
pin_configured:
example: false
type: boolean
requires_email_otp:
example: true
type: boolean
requires_totp_setup:
example: true
type: boolean
resend_cooldown_seconds:
example: 60
type: integer
webauthn_configured:
example: false
type: boolean
type: object
type:
example: auth_email_otp_required
type: string
type: object
type: object
wucher_internal_transport_http_dto.LoginRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.LoginData'
required:
- data
type: object
wucher_internal_transport_http_dto.LoginTOTPRequiredResponse:
properties:
data:
properties:
attributes:
properties:
challenge_token:
example: kP8k2...
type: string
email_otp_challenge_token:
example: qA9j1...
type: string
email_otp_enabled:
example: false
type: boolean
email_otp_max_resend_per_hour:
example: 5
type: integer
email_otp_resend_cooldown_seconds:
example: 60
type: integer
linked_sso:
example: false
type: boolean
pin_configured:
example: false
type: boolean
requires_totp:
example: true
type: boolean
totp_enabled:
example: true
type: boolean
webauthn_configured:
example: false
type: boolean
type: object
type:
example: auth_totp_required
type: string
type: object
type: object
wucher_internal_transport_http_dto.MedicineAttributes:
properties:
column:
example: 1
type: integer
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
medicine_group:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource'
medicine_group_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResource'
motor_reaction_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
motor_reactions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResource'
type: array
name:
example: Paracetamol
type: string
note:
example: Main stock medicine
type: string
pack:
example: 500mg
type: string
sortkey:
example: 1
type: integer
unit:
example: tablet
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.MedicineCreateAttributes:
properties:
column:
example: 1
type: integer
is_active:
example: true
type: boolean
medicine_group_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
name:
example: Paracetamol
type: string
note:
example: Main stock medicine
type: string
pack:
example: 500mg
type: string
sortkey:
example: 1
type: integer
unit:
example: tablet
maxLength: 50
type: string
required:
- name
type: object
wucher_internal_transport_http_dto.MedicineCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineCreateAttributes'
type:
enum:
- medicine_create
- medicine
example: medicine_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MedicineCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.MedicineDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MedicineGroupAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Spritze
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.MedicineGroupCreateAttributes:
properties:
name:
example: Spritze
type: string
required:
- name
type: object
wucher_internal_transport_http_dto.MedicineGroupCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateAttributes'
type:
enum:
- medicine_group_create
- medicine_group
example: medicine_group_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MedicineGroupCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.MedicineGroupDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MedicineGroupListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MedicineGroupResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: medicine_group
type: string
type: object
wucher_internal_transport_http_dto.MedicineGroupResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource'
type: object
wucher_internal_transport_http_dto.MedicineGroupUpdateAttributes:
properties:
name:
example: Spritze
type: string
type: object
wucher_internal_transport_http_dto.MedicineGroupUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- medicine_group_update
- medicine_group
example: medicine_group_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MedicineGroupUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.MedicineListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MedicineResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: medicine
type: string
type: object
wucher_internal_transport_http_dto.MedicineResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineResource'
type: object
wucher_internal_transport_http_dto.MedicineUpdateAttributes:
properties:
column:
example: 1
type: integer
is_active:
example: true
type: boolean
medicine_group_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
motor_reaction_ids:
example:
- 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
items:
type: string
type: array
name:
example: Paracetamol
type: string
note:
example: Main stock medicine
type: string
pack:
example: 500mg
type: string
sortkey:
example: 1
type: integer
unit:
example: tablet
maxLength: 50
type: string
type: object
wucher_internal_transport_http_dto.MedicineUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- medicine_update
- medicine
example: medicine_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MedicineUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.MicrosoftCallbackResponse:
properties:
data:
properties:
attributes:
properties:
email:
example: user@example.com
type: string
provider:
example: microsoft
type: string
provider_subject:
example: 00000000-0000-0000-0000-000000000000
type: string
type: object
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: auth_identity
type: string
type: object
type: object
wucher_internal_transport_http_dto.MicrosoftLoginResponse:
properties:
data:
properties:
attributes:
properties:
redirect_url:
example: https://login.microsoftonline.com/...
type: string
url:
example: https://login.microsoftonline.com/...
type: string
type: object
type:
example: auth_microsoft_url
type: string
type: object
type: object
wucher_internal_transport_http_dto.MotorReactionAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: gezielt auf Schmerzreiz
type: string
score:
example: 5
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.MotorReactionCreateAttributes:
properties:
name:
example: gezielt auf Schmerzreiz
type: string
score:
example: 5
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto.MotorReactionCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateAttributes'
type:
enum:
- motor_reaction_create
- motor_reaction
example: motor_reaction_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MotorReactionCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.MotorReactionDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MotorReactionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.MotorReactionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: motor_reaction
type: string
type: object
wucher_internal_transport_http_dto.MotorReactionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResource'
type: object
wucher_internal_transport_http_dto.MotorReactionUpdateAttributes:
properties:
name:
example: gezielt auf Schmerzreiz
type: string
score:
example: 5
type: integer
type: object
wucher_internal_transport_http_dto.MotorReactionUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- motor_reaction_update
- motor_reaction
example: motor_reaction_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.MotorReactionUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.OpcAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
note:
example: Primary operation control center
type: string
sortkey:
example: 1
type: integer
title:
example: Main OPC Base
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.OpcCreateAttributes:
properties:
is_active:
example: true
type: boolean
note:
example: Primary operation control center
type: string
sortkey:
example: 1
type: integer
title:
example: Main OPC Base
type: string
required:
- title
type: object
wucher_internal_transport_http_dto.OpcCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcCreateAttributes'
type:
enum:
- opc_create
- opc
example: opc_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.OpcCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.OpcDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.OpcListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.OpcResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: opc
type: string
type: object
wucher_internal_transport_http_dto.OpcResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcResource'
type: object
wucher_internal_transport_http_dto.OpcUpdateAttributes:
properties:
is_active:
example: true
type: boolean
note:
example: Primary operation control center
type: string
sortkey:
example: 1
type: integer
title:
example: Main OPC Base
type: string
type: object
wucher_internal_transport_http_dto.OpcUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- opc_update
- opc
example: opc_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.OpcUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.PatientDataAttributes:
properties:
age:
example: 35
type: integer
birth_date:
example: "1990-01-15"
type: string
co_insured:
example: false
type: boolean
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
email:
example: max.muster@example.com
type: string
family_name:
example: Muster
type: string
first_name:
example: Max
type: string
gender:
example: male
type: string
insurance_patient_data:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataInsuranceDetail'
insurance_patient_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
opc:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataOPC'
opc_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
phone:
example: "+431234567"
type: string
street:
example: Hauptstraße 1
type: string
svnr:
example: "1234150190"
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.PatientDataCreateAttributes:
properties:
birth_date:
example: "1990-01-15"
type: string
co_insured:
example: false
type: boolean
email:
example: max.muster@example.com
type: string
family_name:
example: Muster
type: string
first_name:
example: Max
type: string
gender:
enum:
- male
- female
example: male
type: string
insurance_patient_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
opc_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
phone:
example: "+431234567"
type: string
street:
example: Hauptstraße 1
type: string
svnr:
example: "1234150190"
type: string
required:
- family_name
- first_name
- gender
type: object
wucher_internal_transport_http_dto.PatientDataCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataCreateAttributes'
type:
enum:
- patient_data_create
- patient_data
example: patient_data_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.PatientDataCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.PatientDataDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.PatientDataInsuranceDetail:
properties:
federal_state:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataFederalState'
federal_state_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_companies_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
health_insurance_company:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.PatientDataListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.PatientDataOPC:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
title:
example: Primary OPC
type: string
type: object
wucher_internal_transport_http_dto.PatientDataResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: patient_data
type: string
type: object
wucher_internal_transport_http_dto.PatientDataResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResource'
type: object
wucher_internal_transport_http_dto.PatientDataUpdateAttributes:
properties:
birth_date:
example: "1990-01-15"
type: string
co_insured:
example: false
type: boolean
email:
example: max.muster@example.com
type: string
family_name:
example: Muster
type: string
first_name:
example: Max
type: string
gender:
example: male
type: string
insurance_patient_data_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
opc_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
phone:
example: "+431234567"
type: string
street:
example: Hauptstraße 1
type: string
svnr:
example: "1234150190"
type: string
type: object
wucher_internal_transport_http_dto.PatientDataUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- patient_data_update
- patient_data
example: patient_data_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.PatientDataUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.PermissionAttributes:
properties:
created_at:
example: "2026-02-05T10:00:00Z"
type: string
description:
example: Allows managing users.
type: string
key:
example: user.manage
type: string
name:
example: User Management
type: string
requires_pin:
example: true
type: boolean
updated_at:
example: "2026-02-05T10:00:00Z"
type: string
type: object
wucher_internal_transport_http_dto.PermissionGroupResource:
properties:
module:
example: dul
type: string
module_label:
example: DUL
type: string
permissions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionResource'
type: array
type: object
wucher_internal_transport_http_dto.PermissionGroupedResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionGroupResource'
type: array
type: object
wucher_internal_transport_http_dto.PermissionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.PermissionMini:
properties:
description:
example: Permission to view users.
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9a
type: string
key:
example: users.read
type: string
name:
example: View Users
type: string
requires_pin:
example: false
type: boolean
type: object
wucher_internal_transport_http_dto.PermissionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: permission
type: string
type: object
wucher_internal_transport_http_dto.PermissionUpdateAttributes:
properties:
requires_pin:
example: true
type: boolean
required:
- requires_pin
type: object
wucher_internal_transport_http_dto.PermissionUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- permission_update
- permission
example: permission_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.PermissionUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.PilotProfileAttributes:
properties:
double_command_minutes:
type: integer
dul_base:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULBase'
type: array
flight_instructor_minutes:
type: integer
has_ifr_qualification:
type: boolean
ifr_flight_minutes:
type: integer
is_chief_pilot:
type: boolean
license_expired_at:
type: string
license_issued_at:
type: string
license_no:
maxLength: 120
type: string
location:
maxLength: 255
type: string
night_flight_minutes:
type: integer
note:
type: string
pilot_category:
enum:
- regular
- freelance
- dry_lease
type: string
postcode:
maxLength: 32
type: string
responsible_pilot_minutes:
type: integer
second_pilot_minutes:
type: integer
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
technician_license_no:
maxLength: 120
type: string
total_flight_minutes:
type: integer
weight_kg:
type: number
type: object
wucher_internal_transport_http_dto.PilotProfileUpdateAttributes:
properties:
double_command_minutes:
type: integer
dul_base:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULBase'
type: array
flight_instructor_minutes:
type: integer
has_ifr_qualification:
type: boolean
ifr_flight_minutes:
type: integer
is_chief_pilot:
type: boolean
license_expired_at:
type: string
license_issued_at:
type: string
license_no:
maxLength: 120
type: string
location:
maxLength: 255
type: string
night_flight_minutes:
type: integer
note:
type: string
pilot_category:
enum:
- regular
- freelance
- dry_lease
type: string
postcode:
maxLength: 32
type: string
responsible_pilot_minutes:
type: integer
second_pilot_minutes:
type: integer
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
technician_license_no:
maxLength: 120
type: string
total_flight_minutes:
type: integer
weight_kg:
type: number
type: object
wucher_internal_transport_http_dto.ReauthAttributes:
properties:
method:
enum:
- pin
- password
example: pin
type: string
password:
example: StrongP@ssw0rd
minLength: 1
type: string
required:
- method
type: object
wucher_internal_transport_http_dto.RegisterAttributes:
properties:
email:
example: user@example.com
type: string
first_name:
example: John
type: string
last_name:
example: Doe
type: string
mobile_phone:
example: "+628123456789"
type: string
password:
example: StrongP@ssw0rd
minLength: 8
type: string
username:
example: john.doe
maxLength: 100
minLength: 3
type: string
required:
- email
- first_name
- last_name
- password
- username
type: object
wucher_internal_transport_http_dto.RegisterData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RegisterAttributes'
type:
example: auth_register
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RegisterRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RegisterData'
required:
- data
type: object
wucher_internal_transport_http_dto.RequestSecurityPINAttributes:
properties:
method:
example: password
type: string
password:
example: StrongP@ssw0rd
type: string
reauth_token:
example: sso_reauth_1234567890abcdef
type: string
type: object
wucher_internal_transport_http_dto.RequestSecurityPINData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINAttributes'
type:
example: auth_pin_request_reset
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RequestSecurityPINRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINData'
required:
- data
type: object
wucher_internal_transport_http_dto.RequestSecurityPINResetResponse:
properties:
data:
properties:
attributes:
properties:
message:
example: If allowed, a security PIN reset link has been sent to your
email.
type: string
type: object
type:
example: auth_pin_request_reset
type: string
type: object
type: object
wucher_internal_transport_http_dto.ResendSetPasswordInviteAttributes:
properties:
user_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- user_id
type: object
wucher_internal_transport_http_dto.ResendSetPasswordInviteData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteAttributes'
type:
example: auth_resend_set_password
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ResendSetPasswordInviteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteData'
required:
- data
type: object
wucher_internal_transport_http_dto.ResetPasswordAttributes:
properties:
confirm_password:
example: StrongP@ssw0rd!LongPassphrase
minLength: 8
type: string
new_password:
example: StrongP@ssw0rd!LongPassphrase
minLength: 8
type: string
token:
example: kP8k2...
type: string
required:
- confirm_password
- new_password
- token
type: object
wucher_internal_transport_http_dto.ResetPasswordData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetPasswordAttributes'
type:
example: auth_reset_password
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ResetPasswordRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetPasswordData'
required:
- data
type: object
wucher_internal_transport_http_dto.ResetSecurityPINAttributes:
properties:
confirm_pin:
example: "123456"
type: string
method:
example: password
type: string
new_pin:
example: "123456"
type: string
password:
example: StrongP@ssw0rd
type: string
reauth_token:
example: sso_reauth_1234567890abcdef
type: string
token:
example: kP8k2...
type: string
required:
- confirm_pin
- new_pin
type: object
wucher_internal_transport_http_dto.ResetSecurityPINData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINAttributes'
type:
example: auth_reset_pin
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.ResetSecurityPINRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINData'
required:
- data
type: object
wucher_internal_transport_http_dto.RoleAttributes:
properties:
created_at:
example: "2026-02-05T10:00:00Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
description:
example: Full access to all resources.
type: string
name:
example: admin
type: string
updated_at:
example: "2026-02-05T10:00:00Z"
type: string
type: object
wucher_internal_transport_http_dto.RoleCreateAttributes:
properties:
description:
example: Full access to all resources.
type: string
name:
example: admin
type: string
required:
- name
type: object
wucher_internal_transport_http_dto.RoleCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleCreateAttributes'
type:
enum:
- role_create
- role
example: role_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RoleCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.RoleDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.RoleListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.RoleMini:
properties:
description:
example: Full access to all resources.
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: admin
type: string
type: object
wucher_internal_transport_http_dto.RolePermissionAssignAttributes:
properties:
permission_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e
type: string
required:
- permission_id
type: object
wucher_internal_transport_http_dto.RolePermissionAssignBulkData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionBulkAttributes'
type:
example: role_assign_permission_bulk
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RolePermissionAssignBulkRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignBulkData'
required:
- data
type: object
wucher_internal_transport_http_dto.RolePermissionAssignData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignAttributes'
type:
example: role_permission
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RolePermissionAssignRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignData'
required:
- data
type: object
wucher_internal_transport_http_dto.RolePermissionAttributes:
properties:
permission_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e
type: string
role_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.RolePermissionBulkAttributes:
properties:
permission_ids:
example:
- '["018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e"'
- '"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f"]'
items:
type: string
type: array
required:
- permission_ids
type: object
wucher_internal_transport_http_dto.RolePermissionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionResource'
type: array
type: object
wucher_internal_transport_http_dto.RolePermissionRemoveBulkData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionBulkAttributes'
type:
example: role_remove_permission_bulk
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RolePermissionRemoveBulkRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionRemoveBulkData'
required:
- data
type: object
wucher_internal_transport_http_dto.RolePermissionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f
type: string
type:
example: role_permission
type: string
type: object
wucher_internal_transport_http_dto.RolePermissionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionResource'
type: object
wucher_internal_transport_http_dto.RoleResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
permissions:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionResource'
type: array
type:
example: role
type: string
type: object
wucher_internal_transport_http_dto.RoleResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResource'
type: object
wucher_internal_transport_http_dto.RoleUpdateAttributes:
properties:
description:
example: Full access to all resources.
type: string
name:
example: admin
type: string
type: object
wucher_internal_transport_http_dto.RoleUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- role_update
- role
example: role_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.RoleUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.SSOLinkAttributes:
properties:
code:
example: 0.AXkA...
type: string
provider:
example: microsoft
type: string
required:
- code
- provider
type: object
wucher_internal_transport_http_dto.SSOLinkData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOLinkAttributes'
type:
example: auth_sso_link
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SSOLinkRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOLinkData'
required:
- data
type: object
wucher_internal_transport_http_dto.SSOLinkResponse:
properties:
data:
properties:
attributes:
properties:
email:
example: user@example.com
type: string
provider:
example: microsoft
type: string
provider_subject:
example: 00000000-0000-0000-0000-000000000000
type: string
type: object
type:
example: auth_sso_link
type: string
type: object
type: object
wucher_internal_transport_http_dto.SSOUnlinkAttributes:
properties:
provider:
example: microsoft
type: string
required:
- provider
type: object
wucher_internal_transport_http_dto.SSOUnlinkData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOUnlinkAttributes'
type:
example: auth_sso_unlink
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SSOUnlinkRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOUnlinkData'
required:
- data
type: object
wucher_internal_transport_http_dto.SSOUnlinkResponse:
properties:
data:
properties:
attributes:
properties:
provider:
example: microsoft
type: string
unlinked:
example: true
type: boolean
type: object
type:
example: auth_sso_unlink
type: string
type: object
type: object
wucher_internal_transport_http_dto.SecurityPINChangeAttributes:
properties:
confirm_pin:
example: "654321"
type: string
current_pin:
example: "123456"
type: string
new_pin:
example: "654321"
type: string
required:
- confirm_pin
- current_pin
- new_pin
type: object
wucher_internal_transport_http_dto.SecurityPINChangeData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeAttributes'
type:
example: auth_pin_change
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SecurityPINChangeRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeData'
required:
- data
type: object
wucher_internal_transport_http_dto.SecurityPINSetupAttributes:
properties:
confirm_pin:
example: "123456"
type: string
pin:
example: "123456"
type: string
required:
- confirm_pin
- pin
type: object
wucher_internal_transport_http_dto.SecurityPINSetupData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupAttributes'
type:
example: auth_pin_setup
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SecurityPINSetupRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupData'
required:
- data
type: object
wucher_internal_transport_http_dto.SecurityPINSetupResponse:
properties:
data:
properties:
attributes:
properties:
configured:
example: true
type: boolean
type: object
type:
example: auth_pin_setup
type: string
type: object
type: object
wucher_internal_transport_http_dto.SecurityPINVerifyAttributes:
properties:
action:
example: a546de2f-f1e6-4c2c-ab03-9b4bf39f4d74
type: string
pin:
example: "123456"
type: string
required:
- action
- pin
type: object
wucher_internal_transport_http_dto.SecurityPINVerifyData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyAttributes'
type:
example: auth_pin_verify
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SecurityPINVerifyRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyData'
required:
- data
type: object
wucher_internal_transport_http_dto.SecurityPINVerifyResponse:
properties:
data:
properties:
attributes:
properties:
action_token:
example: pinv_1234567890abcdef
type: string
action_token_ttl_ms:
example: 900000
type: integer
verified:
example: true
type: boolean
type: object
type:
example: auth_pin_verify
type: string
type: object
type: object
wucher_internal_transport_http_dto.SetPasswordAttributes:
properties:
password:
example: StrongP@ssw0rd
minLength: 8
type: string
token:
example: kP8k2...
type: string
required:
- password
- token
type: object
wucher_internal_transport_http_dto.SetPasswordData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.SetPasswordAttributes'
type:
example: auth_set_password
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.SetPasswordRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.SetPasswordData'
required:
- data
type: object
wucher_internal_transport_http_dto.StaffProfileAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
role_label:
maxLength: 120
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.StaffProfileUpdateAttributes:
properties:
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
role_label:
maxLength: 120
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.TOTPConfirmAttributes:
properties:
code:
example: "123456"
type: string
user_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- code
- user_id
type: object
wucher_internal_transport_http_dto.TOTPConfirmData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPConfirmAttributes'
type:
example: auth_totp_confirm
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TOTPConfirmRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPConfirmData'
required:
- data
type: object
wucher_internal_transport_http_dto.TOTPDisableAttributes:
properties:
user_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- user_id
type: object
wucher_internal_transport_http_dto.TOTPDisableData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPDisableAttributes'
type:
example: auth_totp_disable
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TOTPDisableRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPDisableData'
required:
- data
type: object
wucher_internal_transport_http_dto.TOTPResetSetupData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ReauthAttributes'
type:
example: auth_totp_reset_setup
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TOTPResetSetupRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPResetSetupData'
required:
- data
type: object
wucher_internal_transport_http_dto.TOTPSetupAttributes:
properties:
email:
example: user@example.com
type: string
user_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- email
- user_id
type: object
wucher_internal_transport_http_dto.TOTPSetupData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPSetupAttributes'
type:
example: auth_totp_setup
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TOTPSetupRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPSetupData'
required:
- data
type: object
wucher_internal_transport_http_dto.TOTPSetupResponse:
properties:
data:
properties:
attributes:
properties:
issuer:
example: Wucher
type: string
otpauth_url:
example: otpauth://totp/Wucher:user@example.com?...
type: string
secret:
example: JBSWY3DPEHPK3PXP
type: string
type: object
type:
example: auth_totp_setup
type: string
type: object
type: object
wucher_internal_transport_http_dto.TOTPVerifyAttributes:
properties:
challenge_token:
example: kP8k2...
type: string
code:
example: "123456"
type: string
required:
- challenge_token
- code
type: object
wucher_internal_transport_http_dto.TOTPVerifyData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPVerifyAttributes'
type:
example: auth_totp_verify
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TOTPVerifyRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPVerifyData'
required:
- data
type: object
wucher_internal_transport_http_dto.TechnicianProfileAttributes:
properties:
is_chief_technician:
type: boolean
is_responsible_complaints:
type: boolean
license_no:
maxLength: 120
type: string
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.TechnicianProfileUpdateAttributes:
properties:
is_chief_technician:
type: boolean
is_responsible_complaints:
type: boolean
license_no:
maxLength: 120
type: string
location:
maxLength: 255
type: string
note:
type: string
postcode:
maxLength: 32
type: string
short_name:
maxLength: 120
type: string
street_line:
maxLength: 255
type: string
type: object
wucher_internal_transport_http_dto.TimezoneUpdateAttributes:
properties:
timezone:
example: Asia/Jakarta
type: string
required:
- timezone
type: object
wucher_internal_transport_http_dto.TimezoneUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateAttributes'
type:
example: auth_timezone_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.TimezoneUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.TokenResponse:
properties:
data:
properties:
attributes:
properties:
access_expires_in:
example: 900
type: integer
refresh_expires_in:
example: 2592000
type: integer
type: object
type:
example: auth_tokens
type: string
type: object
type: object
wucher_internal_transport_http_dto.UserAttributes:
properties:
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
email:
example: user@example.com
type: string
email_verified_at:
example: "2026-02-05T10:00:00Z"
type: string
first_name:
example: John
type: string
is_previously_configured:
example: false
type: boolean
last_name:
example: Doe
type: string
linked_sso:
example: false
type: boolean
mobile_phone:
example: "+628123456789"
type: string
pin_configured:
example: false
type: boolean
profile_picture:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserImage'
role:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleMini'
role_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
role_ids:
example:
- '["018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"'
- '"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e"]'
items:
type: string
type: array
roles:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleMini'
type: array
timezone:
example: Asia/Jakarta
type: string
totp_enabled:
example: false
type: boolean
username:
example: john.doe
type: string
webauthn_configured:
example: false
type: boolean
type: object
wucher_internal_transport_http_dto.UserCreateAttributes:
properties:
email:
example: user@example.com
type: string
first_name:
example: John
type: string
image_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
last_name:
example: Doe
type: string
mobile_phone:
example: "+628123456789"
type: string
role_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
role_ids:
example:
- '["018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"'
- '"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e"]'
items:
type: string
type: array
timezone:
example: Asia/Jakarta
type: string
username:
example: john.doe
maxLength: 100
minLength: 3
type: string
required:
- email
- first_name
- last_name
- role_id
- username
type: object
wucher_internal_transport_http_dto.UserCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserCreateAttributes'
type:
enum:
- user_create
- user
example: user_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.UserCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.UserDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.UserFoto:
properties:
download_url:
example: https://storage.example.com/base/lude.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
original_size_bytes:
example: 1024000
type: integer
thumbnail_download_url:
example: https://storage.example.com/base/lude.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f
type: string
type: object
wucher_internal_transport_http_dto.UserImage:
properties:
download_url:
example: https://example.com/presigned-url
type: string
original_size_bytes:
example: 1024000
type: integer
thumbnail_download_url:
example: https://example.com/presigned-thumb-url
type: string
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f
type: string
type: object
wucher_internal_transport_http_dto.UserListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.UserResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: user
type: string
type: object
wucher_internal_transport_http_dto.UserResponse:
properties:
data:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: user
type: string
type: object
type: object
wucher_internal_transport_http_dto.UserUpdateAttributes:
properties:
email:
example: user@example.com
type: string
first_name:
example: John
type: string
image_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
last_name:
example: Doe
type: string
mobile_phone:
example: "+628123456789"
type: string
timezone:
example: Asia/Jakarta
type: string
type: object
wucher_internal_transport_http_dto.UserUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- user_update
- user
example: user_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.UserUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.VerifyEmailResponse:
properties:
data:
properties:
attributes:
properties:
verified:
example: true
type: boolean
type: object
type:
example: auth_verify_email
type: string
type: object
type: object
wucher_internal_transport_http_dto.VocationAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_active:
example: true
type: boolean
name:
example: Pilot
type: string
note:
example: Helicopter pilot vocation
type: string
sortkey:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto.VocationCreateAttributes:
properties:
is_active:
example: true
type: boolean
name:
example: Pilot
type: string
note:
example: Helicopter pilot vocation
type: string
sortkey:
example: 1
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto.VocationCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationCreateAttributes'
type:
enum:
- vocation_create
- vocation
example: vocation_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.VocationCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto.VocationDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.VocationListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto.VocationResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: vocation
type: string
type: object
wucher_internal_transport_http_dto.VocationResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationResource'
type: object
wucher_internal_transport_http_dto.VocationUpdateAttributes:
properties:
is_active:
example: true
type: boolean
name:
example: Pilot
type: string
note:
example: Helicopter pilot vocation
type: string
sortkey:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto.VocationUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- vocation_update
- vocation
example: vocation_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.VocationUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnBeginResponse:
properties:
data:
properties:
attributes:
properties:
challenge_token:
example: kP8k2...
type: string
challenge_ttl_ms:
example: 300000
type: integer
public_key:
additionalProperties: true
type: object
type: object
type:
example: auth_webauthn_register_options
type: string
type: object
type: object
wucher_internal_transport_http_dto.WebAuthnLoginBeginAttributes:
properties:
email:
example: user@example.com
type: string
required:
- email
type: object
wucher_internal_transport_http_dto.WebAuthnLoginBeginData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginAttributes'
type:
example: auth_webauthn_login_begin
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.WebAuthnLoginBeginRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnLoginFinishAttributes:
properties:
challenge_token:
example: kP8k2...
type: string
credential:
items:
type: integer
type: array
required:
- challenge_token
- credential
type: object
wucher_internal_transport_http_dto.WebAuthnLoginFinishData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishAttributes'
type:
example: auth_webauthn_login_finish
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.WebAuthnLoginFinishRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnRegisterBeginData:
properties:
type:
example: auth_webauthn_register_begin
type: string
required:
- type
type: object
wucher_internal_transport_http_dto.WebAuthnRegisterBeginRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterBeginData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnRegisterFinishAttributes:
properties:
challenge_token:
example: kP8k2...
type: string
credential:
items:
type: integer
type: array
name:
example: MacBook Touch ID
maxLength: 100
type: string
required:
- challenge_token
- credential
type: object
wucher_internal_transport_http_dto.WebAuthnRegisterFinishData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishAttributes'
type:
example: auth_webauthn_register_finish
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.WebAuthnRegisterFinishRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnResetSetupData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto.ReauthAttributes'
type:
example: auth_webauthn_reset_setup
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto.WebAuthnResetSetupRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupData'
required:
- data
type: object
wucher_internal_transport_http_dto.WebAuthnResetSetupResponse:
properties:
data:
properties:
attributes:
properties:
reset:
example: true
type: boolean
type: object
type:
example: auth_webauthn_reset_setup
type: string
type: object
type: object
wucher_internal_transport_http_dto_request.ActionSignoffSignAttributes:
properties:
complaint_id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
flight_id:
description: |-
FlightID — REQUIRED for the fleet (complaint-independent) sign-off; scopes it to a
flight so it no longer leaks across takeovers of the same aircraft. Ignored when
complaint_id is set (that sign-off is keyed by the complaint).
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
sign:
description: |-
Sign toggles the sign-off: true (or omitted) signs it, false unsigns (clears the
signature). Combine with complaint_id to toggle a specific complaint's sign-off.
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_request.ActionSignoffSignData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignAttributes'
type:
example: action_signoff
type: string
type: object
wucher_internal_transport_http_dto_request.ActionSignoffSignRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignData'
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateAttributes:
properties:
base_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
checklists:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateEntry'
minItems: 1
type: array
required:
- base_id
- checklists
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateAttributes'
type:
enum:
- air_rescuer_checklist_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateEntry:
properties:
items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput'
type: array
position:
example: 1
type: integer
scope_code:
example: MO
type: string
title:
example: Monday Checklist
type: string
required:
- scope_code
- title
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateAttributes:
properties:
items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput'
minItems: 1
type: array
required:
- items
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateAttributes'
type:
enum:
- air_rescuer_checklist_item_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderAttributes:
properties:
items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderEntry'
minItems: 1
type: array
required:
- items
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderAttributes'
type:
enum:
- air_rescuer_checklist_item_reorder
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderEntry:
properties:
item_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
position:
example: 2
type: integer
required:
- item_uuid
- position
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateAttributes:
properties:
name:
example: Check radio
type: string
position:
example: 2
type: integer
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- air_rescuer_checklist_item_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateAttributes:
properties:
new_items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput'
type: array
position:
example: 1
type: integer
scope_code:
example: MO
type: string
title:
example: Monday Checklist Updated
type: string
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- air_rescuer_checklist_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.ComplaintActionTakenAttributes:
properties:
action_taken:
description: |-
ActionTaken — corrective action text. Required when recording (create); on update an
empty value clears it (allowed only while the action has not been signed off).
example: Tightened engine mount and rechecked torque
type: string
aircraft_hours_at_fix:
example: "1250.1"
type: string
type: object
wucher_internal_transport_http_dto_request.ComplaintActionTakenData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenAttributes'
type:
enum:
- complaint_action_taken
- complaint
example: complaint_action_taken
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.ComplaintCreateAttributes:
properties:
aircraft_hours_at_report:
description: AircraftHoursAtReport — OPTIONAL airframe hours recorded when
the defect was reported.
example: "1245.3"
type: string
description:
description: Description — the defect description. REQUIRED.
example: Engine 2 N2 vibration intermittent during cruise above 110 KIAS
type: string
flight_id:
description: |-
FlightID — the flight/report this complaint was filed in (attribution). OPTIONAL;
open-defect tracking stays per-helicopter so defects carry forward across flights.
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter_id:
description: HelicopterID — the helicopter this complaint is filed against.
REQUIRED.
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
mel_severity:
description: |-
MELSeverity — MEL (Minimum Equipment List) classification. OPTIONAL at creation:
omit it to file the complaint as "pending_mel" and classify later. It MUST be
classified (via update) before recording action taken. A pending complaint does
NOT ground the aircraft — grounding starts at classification. Values: 0 = NON-MEL
(grounds immediately), 1 = A (grace 1 day), 2 = B (3 days), 3 = C (10 days), 4 = D (120 days).
enum:
- 0
- 1
- 2
- 3
- 4
example: 2
type: integer
required:
- description
- helicopter_id
type: object
wucher_internal_transport_http_dto_request.ComplaintCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateAttributes'
type:
enum:
- complaint_create
- complaint
example: complaint_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.ComplaintCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.ComplaintNSRSignAttributes:
properties:
nsr_reason:
description: NSRReason — OPTIONAL free-text justification for the NSR (MEL
deferral) decision.
example: Released under MEL A, defect deferred
type: string
type: object
wucher_internal_transport_http_dto_request.ComplaintNSRSignData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignAttributes'
type:
enum:
- complaint_nsr_sign
- complaint_nsr
example: complaint_nsr_sign
type: string
type: object
wucher_internal_transport_http_dto_request.ComplaintNSRSignRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignData'
type: object
wucher_internal_transport_http_dto_request.ComplaintUpdateAttributes:
properties:
aircraft_hours_at_report:
description: AircraftHoursAtReport — airframe hours at report time.
example: "1245.3"
type: string
description:
description: Description — defect description.
example: Engine 2 vibration confirmed
type: string
mel_severity:
description: |-
MELSeverity — MEL classification. 0 = NON-MEL (immediate AOG), 1 = A (1 day),
2 = B (3 days), 3 = C (10 days), 4 = D (120 days). AOG after grace passes.
enum:
- 0
- 1
- 2
- 3
- 4
example: 2
type: integer
type: object
wucher_internal_transport_http_dto_request.ComplaintUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
enum:
- complaint_update
- complaint
example: complaint_update
type: string
required:
- attributes
- id
- type
type: object
wucher_internal_transport_http_dto_request.ComplaintUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteData:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- id
type: object
wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.DutyRosterCreateAttributes:
properties:
base_id:
type: string
duty_date:
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput'
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftTime'
required:
- base_id
- duty_date
type: object
wucher_internal_transport_http_dto_request.DutyRosterCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateAttributes'
type:
enum:
- duty_roster_create
- duty_roster
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.DutyRosterCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.DutyRosterCrewInput:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
shift_date:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftDate'
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewAttributes:
properties:
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput'
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDAttributes:
properties:
crew_id:
type: string
roster_id:
type: string
required:
- crew_id
- roster_id
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDAttributes'
type:
enum:
- duty_roster_crew_delete
- duty_roster_update
- duty_roster
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewAttributes'
type:
enum:
- duty_roster_crew_delete
- duty_roster_update
- duty_roster
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.DutyRosterDetailsInput:
properties:
doctor:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput'
type: array
helper:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput'
type: array
other_person:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterOtherPersonInput'
type: array
pilot:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterPilotCrewInput'
type: array
rescuer:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput'
type: array
type: object
wucher_internal_transport_http_dto_request.DutyRosterOtherPersonInput:
properties:
email:
example: guest@example.com
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Guest Person
type: string
other_person_id:
description: |-
OtherPersonID — OPTIONAL master person id to reuse (from GET /contact/other).
When set, name/mobile_phone/email are snapshotted from the master (may be omitted).
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type: object
wucher_internal_transport_http_dto_request.DutyRosterPilotCrewInput:
properties:
co_pilot:
type: boolean
crew_type:
enum:
- main
- additional
example: main
type: string
examiner:
type: boolean
flight_instructor:
type: boolean
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
line_checker:
type: boolean
shift_date:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftDate'
supervisor:
type: boolean
type: object
wucher_internal_transport_http_dto_request.DutyRosterShiftDate:
properties:
date_end:
example: "2026-03-16"
type: string
date_start:
example: "2026-03-16"
type: string
type: object
wucher_internal_transport_http_dto_request.DutyRosterShiftTime:
properties:
shift_end:
example: "21:00"
type: string
shift_start:
example: "06:00"
type: string
type: object
wucher_internal_transport_http_dto_request.DutyRosterUpdateAttributes:
properties:
base_id:
type: string
duty_date:
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput'
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftTime'
type: object
wucher_internal_transport_http_dto_request.DutyRosterUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateAttributes'
id:
type: string
type:
enum:
- duty_roster_update
- duty_roster
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.DutyRosterUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.EASAReleaseCreateAttributes:
properties:
complaint_id:
description: |-
ComplaintID — OPTIONAL complaint (UUIDv7) this release closes. Set it to scope the
release to a specific defect; leave empty for a standalone (aircraft-clear) release.
example: 019d6774-1111-7fba-9ef4-3795c0da8a13
type: string
easa_ac_hours:
example: "1245.3"
type: string
easa_date:
example: "2026-06-16"
type: string
easa_location:
example: LOWI
type: string
easa_maint_manual_rev_airframe:
example: Rev 12
type: string
easa_maint_manual_rev_engine:
example: Rev 8
type: string
easa_permit_no:
example: 145.A.50
type: string
easa_signer_id:
description: EASASignerID — OPTIONAL contact id (UUIDv7) of the signer/technician.
Required only to sign.
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
easa_wo_no:
example: WO-2026-001
type: string
flight_id:
description: FlightID — OPTIONAL flight context. Used for the standalone (no-complaint)
sign-off gate.
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
sign:
description: |-
Sign, when true, signs the release immediately at creation. Requires all
required fields to be present; otherwise the request is rejected.
example: false
type: boolean
required:
- helicopter_id
type: object
wucher_internal_transport_http_dto_request.EASAReleaseCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateAttributes'
type:
enum:
- easa_release_create
- easa_release
example: easa_release_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.EASAReleaseCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.EASAReleaseUpdateAttributes:
properties:
easa_ac_hours:
example: "1245.3"
type: string
easa_date:
example: "2026-06-16"
type: string
easa_location:
example: LOWI
type: string
easa_maint_manual_rev_airframe:
example: Rev 12
type: string
easa_maint_manual_rev_engine:
example: Rev 8
type: string
easa_permit_no:
example: 145.A.50
type: string
easa_signer_id:
description: EASASignerID — OPTIONAL contact id (UUIDv7) of the signer/technician.
Required only to sign.
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
easa_wo_no:
example: WO-2026-001
type: string
type: object
wucher_internal_transport_http_dto_request.EASAReleaseUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
enum:
- easa_release_update
- easa_release
example: easa_release_update
type: string
required:
- attributes
- id
- type
type: object
wucher_internal_transport_http_dto_request.EASAReleaseUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FMReportUpdateAttributes:
properties:
engine1_gpc_n1:
description: Engine1GpcN1 - GPC/N1 value for engine 1. Optional.
example: GPC/N1 63.2
type: string
engine1_ptc_n2:
description: Engine1PtcN2 - PTC/N2 value for engine 1. Optional.
example: PTC/N2 61.8
type: string
engine2_gpc_n1:
description: Engine2GpcN1 - GPC/N1 value for engine 2. Optional.
example: GPC/N1 63.2
type: string
engine2_ptc_n2:
description: Engine2PtcN2 - PTC/N2 value for engine 2. Optional.
example: PTC/N2 61.8
type: string
type: object
wucher_internal_transport_http_dto_request.FMReportUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateAttributes'
type:
enum:
- fm_report_update
- fm_report
example: fm_report_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FMReportUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateAttributes:
properties:
category:
example: document
type: string
file_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_primary:
example: false
type: boolean
ref_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
ref_type:
example: helicopter
type: string
sort_order:
example: 0
type: integer
required:
- file_id
- ref_id
- ref_type
type: object
wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateAttributes'
type:
enum:
- file_manager_attachment_create
- file_manager_attachment
example: file_manager_attachment_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileAircraftCreateAttributes:
properties:
aircraft_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: aircraft.jpg
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- aircraft_uuid
- name
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileBaseCreateAttributes:
properties:
base_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: base.jpg
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- base_uuid
- name
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadAttributes:
properties:
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadAttributes'
type:
enum:
- file_manager_file_cancel_upload
example: file_manager_file_cancel_upload
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileDULCreateAttributes:
properties:
dul_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: dul.jpg
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- name
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileMissionCreateAttributes:
properties:
mission_uuid:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
name:
example: mission-brief.pdf
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- mission_uuid
- name
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileTakeoverCreateAttributes:
properties:
name:
example: takeover-report.pdf
type: string
takeover_uuid:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- name
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateAttributes:
properties:
helicopter_id:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
name:
example: collabora-draft.docx
type: string
takeover_id:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
template_uuid:
example: 019f0386-0a00-7a4a-a2d8-30afc0e0c3ad
type: string
required:
- helicopter_id
- name
- template_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateRequest:
properties:
data:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateAttributes'
type:
enum:
- file_manager_file_create_from_template
- file_manager_file_create
type: string
required:
- attributes
- type
type: object
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUpdateAttributes:
properties:
folder_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: policy-v2.pdf
type: string
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- file_manager_file_update
- file_manager_file
example: file_manager_file_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentAttributes:
properties:
content_type:
example: application/pdf
type: string
name:
example: policy-final.pdf
type: string
size_bytes:
example: 1024
minimum: 0
type: integer
required:
- content_type
- name
- size_bytes
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentAttributes'
type:
enum:
- file_manager_file_upload_intent
example: file_manager_file_upload_intent
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateItem:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserCreateAttributes'
type:
enum:
- file_manager_file_create
- file_manager_file
example: file_manager_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFileUserCreateAttributes:
properties:
name:
example: profile.jpg
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
user_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- name
- upload_intent_uuid
- user_uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderCreateAttributes:
properties:
name:
example: operations
type: string
parent_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- name
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateAttributes'
type:
enum:
- file_manager_folder_create
- file_manager_folder
example: file_manager_folder_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderUpdateAttributes:
properties:
name:
example: operations-updated
type: string
parent_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- file_manager_folder_update
- file_manager_folder
example: file_manager_folder_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FileManagerFolderUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerNodeMoveBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodeMoveItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerNodeMoveItem:
properties:
destination_folder_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- uuid
type: object
wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeItem'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.FileManagerNodePurgeItem:
properties:
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
required:
- uuid
type: object
wucher_internal_transport_http_dto_request.FleetStatusCreateAttributes:
properties:
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes'
type: array
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
maintenance_schedules:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes'
type: array
required:
- helicopter_id
type: object
wucher_internal_transport_http_dto_request.FleetStatusCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateAttributes'
type:
enum:
- fleet_status_create
- fleet_status
example: fleet_status_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FleetStatusCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FleetStatusSummaryAirframeUpdate:
properties:
cycles:
example: 320
type: number
hours:
example: 6610.5
type: number
type: object
wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate:
properties:
ccc:
example: 44
type: number
gpc_ng_n1:
example: 98.7
type: number
hours:
example: 8001.7
type: number
ptc_nf_n2:
example: 97.2
type: number
type: object
wucher_internal_transport_http_dto_request.FleetStatusSummaryUpdate:
properties:
airframe:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryAirframeUpdate'
engine_1:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate'
engine_2:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate'
flight_reports:
example: 80
type: number
hook_releases:
example: 10
type: number
landings:
example: 120
type: number
rotor_brake_cycles:
example: 8
type: number
type: object
wucher_internal_transport_http_dto_request.FleetStatusUpdateAttributes:
properties:
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes'
type: array
helicopter_id:
type: string
maintenance_schedules:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes'
type: array
summary:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryUpdate'
type: object
wucher_internal_transport_http_dto_request.FleetStatusUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
enum:
- fleet_status_update
- fleet_status
example: fleet_status_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FleetStatusUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateAttributes:
properties:
co_pilot_id:
type: string
customer_name:
type: string
delivery_note_number:
type: string
engine:
type: string
flight_duration_seconds:
type: integer
flight_landing:
type: string
flight_plan_distance:
type: number
flight_plan_time_seconds:
type: integer
flight_plan_true_course:
type: number
flight_positioning:
example: false
type: boolean
flight_red_seconds:
type: integer
flight_take_off:
type: string
from_hospital_id:
type: string
from_icao_id:
type: string
fuel_after_flight:
type: number
fuel_before_flight:
type: number
fuel_planning:
type: number
fuel_upload:
type: number
hec:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECAttributes'
heslo:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOAttributes'
hook_releases:
type: integer
landing_count:
type: integer
logging:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingAttributes'
max_n1:
type: number
max_n2:
type: number
mission_id:
type: string
other_information:
type: string
pax_count:
type: integer
rotor_brake_cycle:
type: integer
ticket_no:
type: string
to_hospital_id:
type: string
to_icao_id:
type: string
required:
- mission_id
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateAttributes'
type:
enum:
- flight_data_create
- flight_data
example: flight_data_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECAttributes:
properties:
flights:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECFlight'
type: array
loads:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECLoad'
type: array
slings:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECSling'
type: array
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECFlight:
properties:
equipment_id:
description: 'Facility category: hec-rope-label.'
example: string
type: string
equipment_name:
example: string
type: string
hec_cycle:
example: 0
type: integer
rot:
example: 0
type: integer
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECLoad:
properties:
load_category:
description: Weight band for the HEC load, e.g. "bis 199 kg", "200-600 kg",
"600-800 kg", "800-1000 kg".
example: 200-600 kg
type: string
quantity:
example: 3
type: integer
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECSling:
properties:
sling_id:
description: 'Facility category: hec-rope-length.'
example: string
type: string
sling_name:
example: string
type: string
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOAttributes:
properties:
flights:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOFlight'
type: array
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOFlight:
properties:
heslo_rope_label_id:
description: 'Facility category: heslo-rope-label.'
example: string
type: string
heslo_rope_label_name:
example: string
type: string
rot:
example: 0
type: integer
slings:
description: 'Facility category: heslo-rope-length.'
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOSling'
type: array
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOSling:
properties:
sling_id:
description: 'Facility category: heslo-rope-length.'
example: string
type: string
sling_name:
example: string
type: string
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingAttributes:
properties:
slings:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingSling'
type: array
type: object
wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingSling:
properties:
sling_id:
description: 'Facility category: heslo-hook.'
example: string
type: string
sling_name:
example: string
type: string
type: object
wucher_internal_transport_http_dto_request.FlightDataUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateAttributes'
type:
enum:
- flight_data_update
example: flight_data_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.FlightDataUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterCreateAttributes:
properties:
aog:
example: false
type: boolean
aog_reason:
example: Main rotor gearbox fault
type: string
consumption_lt_min:
example: 4.1
type: number
designation:
example: OE-XHZ
type: string
dry:
example: false
type: boolean
engine_1:
example: TM
type: string
engine_2:
example: TM
type: string
file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
identifier:
example: ABC
type: string
igb:
example: false
type: boolean
is_active:
example: true
type: boolean
lh:
example: true
type: boolean
mgb:
example: true
type: boolean
note:
example: Primary HEMS helicopter
type: string
nr1:
example: true
type: boolean
nr2:
example: true
type: boolean
rh:
example: true
type: boolean
sortkey:
example: 10
type: integer
tgb:
example: true
type: boolean
type:
example: EC-135
type: string
utc_offset:
example: -1
type: integer
required:
- designation
- identifier
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateAttributes'
type:
enum:
- helicopter_create
- helicopter
example: helicopter_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadAttributes:
properties:
upload_intent_uuid:
example: 019d6d0d-2de2-7db1-80a2-2862d43af620
type: string
required:
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadAttributes'
type:
enum:
- helicopter_file_cancel_upload
example: helicopter_file_cancel_upload
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCreateAttributes:
properties:
file_name:
example: Before Flight Checklist.pdf
type: string
folder_uuid:
example: 019d6d0d-8c24-72e3-9f58-c9ea0fbf0bb1
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
is_mandatory:
example: true
type: boolean
position:
example: 1
type: integer
section:
enum:
- bfi
- fpwb
- afi
example: bfi
type: string
upload_intent_uuid:
example: 019d6d0d-2de2-7db1-80a2-2862d43af620
type: string
required:
- file_name
- section
- upload_intent_uuid
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCreateBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateAttributes'
type:
enum:
- helicopter_file_create
- helicopter_file
example: helicopter_file_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterFileDeleteData:
properties:
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
enum:
- helicopter_file_delete
- helicopter_file
example: helicopter_file_delete
type: string
required:
- id
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterFileDeleteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileDeleteData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUpdateAttributes:
properties:
file_name:
example: Before Flight Checklist v2.pdf
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
is_mandatory:
example: true
type: boolean
position:
example: 1
type: integer
section:
enum:
- bfi
- fpwb
- afi
example: fpwb
type: string
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUpdateBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
enum:
- helicopter_file_update
- helicopter_file
example: helicopter_file_update
type: string
required:
- attributes
- id
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUploadAttributes:
properties:
content_type:
example: application/pdf
type: string
name:
example: Before Flight Checklist.pdf
type: string
size_bytes:
example: 1024
minimum: 0
type: integer
required:
- content_type
- name
- size_bytes
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUploadBulkRequest:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadData'
minItems: 1
type: array
required:
- data
type: object
wucher_internal_transport_http_dto_request.HelicopterFileUploadData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadAttributes'
type:
enum:
- helicopter_file_upload
example: helicopter_file_upload
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterUpdateAttributes:
properties:
aog:
example: false
type: boolean
aog_reason:
example: Main rotor gearbox fault
type: string
consumption_lt_min:
example: 4.1
type: number
designation:
example: OE-XHZ
type: string
dry:
example: false
type: boolean
engine_1:
example: TM
type: string
engine_2:
example: TM
type: string
file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90
type: string
identifier:
example: ABC
type: string
igb:
example: false
type: boolean
is_active:
example: true
type: boolean
lh:
example: true
type: boolean
mgb:
example: true
type: boolean
note:
example: Primary HEMS helicopter
type: string
nr1:
example: true
type: boolean
nr2:
example: true
type: boolean
rh:
example: true
type: boolean
sortkey:
example: 10
type: integer
tgb:
example: true
type: boolean
type:
example: EC-135
type: string
utc_offset:
example: -1
type: integer
type: object
wucher_internal_transport_http_dto_request.HelicopterUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- helicopter_update
- helicopter
example: helicopter_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.HelicopterUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes'
type:
enum:
- last_flights_inspection_create
- last_flights_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteAttributes:
properties:
flight_inspection_id:
type: string
required:
- flight_inspection_id
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteAttributes'
type:
enum:
- last_flights_inspection_delete
- last_flights_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes'
type:
enum:
- last_flights_inspection_update
- last_flights_inspection
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes:
properties:
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem'
type: array
flight_inspection_id:
type: string
hydraulic_lh_checked:
type: string
hydraulic_rh_checked:
type: string
note:
type: string
oil_engine_nr1_checked:
type: string
oil_engine_nr2_checked:
type: string
oil_transmission_igb_checked:
type: string
oil_transmission_mgb_checked:
type: string
oil_transmission_tgb_checked:
type: string
required:
- flight_inspection_id
type: object
wucher_internal_transport_http_dto_request.MCFCompleteAttributes:
properties:
af_hours:
example: "1245.3"
type: string
date:
example: "2026-06-17"
type: string
landing_count:
example: 3
type: integer
notes:
example: Vibration within limits after check flight
type: string
result:
enum:
- passed
- failed
example: passed
type: string
sign:
example: true
type: boolean
utc_time:
example: "2026-06-17T08:30:00Z"
type: string
type: object
wucher_internal_transport_http_dto_request.MCFCompleteData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteAttributes'
type:
enum:
- mcf_complete
- mcf_sign
- mcf
example: mcf_sign
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MCFCompleteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MCFSetAttributes:
properties:
active:
example: true
type: boolean
af_hours:
example: "1245.3"
type: string
date:
example: "2026-06-17"
type: string
flight_id:
description: FlightID — OPTIONAL flight this check flight is performed on
(on activate).
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
landing_count:
example: 3
type: integer
notes:
example: MCF required after engine mount work
type: string
result:
enum:
- passed
- failed
example: passed
type: string
utc_time:
example: "2026-06-17T08:30:00Z"
type: string
type: object
wucher_internal_transport_http_dto_request.MCFSetData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFSetAttributes'
type:
enum:
- mcf_set
- mcf
example: mcf_set
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MCFSetRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFSetData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MasterSettingsCreateAttributes:
properties:
company_name:
example: Wucher
type: string
cover_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
logo_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
subtitle:
example: Flight operations platform
type: string
title:
example: Welcome to Wucher
type: string
required:
- company_name
type: object
wucher_internal_transport_http_dto_request.MasterSettingsCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateAttributes'
type:
enum:
- master_settings_create
- master_settings
example: master_settings_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MasterSettingsCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertAttributes:
properties:
MS_ENTRA_AUTHORITY:
example: https://login.microsoftonline.com/
type: string
MS_ENTRA_CLIENT_ID:
example: your-client-id
type: string
MS_ENTRA_CLIENT_SECRET:
example: '********'
type: string
MS_ENTRA_REDIRECT_URL:
example: https://example.com/api/v1/auth/microsoft/callback
type: string
MS_ENTRA_SCOPES:
example: openid,profile,email
type: string
MS_ENTRA_TENANT_ID:
example: your-tenant-id
type: string
required:
- MS_ENTRA_AUTHORITY
- MS_ENTRA_CLIENT_ID
- MS_ENTRA_REDIRECT_URL
- MS_ENTRA_SCOPES
- MS_ENTRA_TENANT_ID
type: object
wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertAttributes'
type:
enum:
- master_settings_microsoft_entra_upsert
- master_settings
example: master_settings_microsoft_entra_upsert
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MasterSettingsUpdateAttributes:
properties:
company_name:
example: Wucher
type: string
cover_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
logo_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
subtitle:
example: Flight operations platform
type: string
title:
example: Welcome to Wucher
type: string
type: object
wucher_internal_transport_http_dto_request.MasterSettingsUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
enum:
- master_settings_update
- master_settings
example: master_settings_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MasterSettingsUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MissionCreateAttributes:
properties:
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionFileInput'
type: array
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
note:
example: Mission note
type: string
subtype_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a99
type: string
type:
example: HEMS
type: string
required:
- flight_id
- type
type: object
wucher_internal_transport_http_dto_request.MissionCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionCreateAttributes'
type:
enum:
- mission_create
- mission
example: mission_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MissionCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MissionFileInput:
properties:
name:
example: mission-brief.pdf
type: string
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_request.MissionTypeCreateAttributes:
properties:
code_type:
example: HEMS
type: string
name:
example: HEMS
type: string
required:
- code_type
- name
type: object
wucher_internal_transport_http_dto_request.MissionTypeCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateAttributes'
type:
enum:
- mission_type_create
- mission_type
example: mission_type_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MissionTypeCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.MissionUpdateAttributes:
properties:
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionFileInput'
type: array
note:
example: Mission note
type: string
subtype_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a99
type: string
type:
example: SPO
type: string
required:
- type
type: object
wucher_internal_transport_http_dto_request.MissionUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateAttributes'
type:
enum:
- mission_update
- mission
example: mission_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.MissionUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.OtherPersonAttributesInput:
properties:
email:
example: guest@example.com
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Guest Person
type: string
type: object
wucher_internal_transport_http_dto_request.OtherPersonRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequestData'
type: object
wucher_internal_transport_http_dto_request.OtherPersonRequestData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.OtherPersonAttributesInput'
type:
example: other_person
type: string
type: object
wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes:
properties:
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem'
type: array
fuel_added_amount:
type: number
fuel_amount:
type: number
fuel_unit:
type: string
hydraulic_lh_checked:
type: boolean
hydraulic_rh_checked:
type: boolean
note:
type: string
oil_engine_nr1_checked:
type: boolean
oil_engine_nr2_checked:
type: boolean
oil_transmission_igb_checked:
type: boolean
oil_transmission_mgb_checked:
type: boolean
oil_transmission_tgb_checked:
type: boolean
type: object
wucher_internal_transport_http_dto_request.ReserveAcCreateAttributes:
properties:
flight_id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes'
required:
- flight_id
- helicopter_id
- inspection
type: object
wucher_internal_transport_http_dto_request.ReserveAcCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateAttributes'
type:
enum:
- reserve_ac_create
- reserve_ac
example: reserve_ac_create
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.ReserveAcCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.ReserveAcDeleteData:
properties:
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
required:
- id
type: object
wucher_internal_transport_http_dto_request.ReserveAcDeleteRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcDeleteData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem:
properties:
helicopter_file_id:
example: 019d7000-aaaa-7bbb-8ccc-111111111111
type: string
is_done:
example: true
type: boolean
required:
- helicopter_file_id
type: object
wucher_internal_transport_http_dto_request.ReserveAcFleetStatusFileAttributes:
properties:
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem'
type: array
type: object
wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes:
properties:
before:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes'
fleet_status_file:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFleetStatusFileAttributes'
inspection_date:
example: "2026-04-15"
type: string
prepare:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes'
required:
- before
- inspection_date
- prepare
type: object
wucher_internal_transport_http_dto_request.ReserveAcInspectionUpdateAttributes:
properties:
before:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes'
inspection_date:
example: "2026-04-15"
type: string
prepare:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes'
type: object
wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes:
properties:
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem'
type: array
notam_briefing:
type: boolean
operational_flight_plan:
type: boolean
weather_briefing:
type: boolean
type: object
wucher_internal_transport_http_dto_request.ReserveAcUpdateAttributes:
properties:
flight_id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionUpdateAttributes'
type: object
wucher_internal_transport_http_dto_request.ReserveAcUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
enum:
- reserve_ac_update
- reserve_ac
example: reserve_ac_update
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.ReserveAcUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.TakeoverBaseRef:
properties:
id:
type: string
type: object
wucher_internal_transport_http_dto_request.TakeoverCreateAttributes:
properties:
base_id:
type: string
duty_date:
type: string
edited_template_file_ids:
items:
type: string
type: array
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput'
type: array
helicopter_id:
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes'
notes:
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput'
required:
- duty_date
type: object
wucher_internal_transport_http_dto_request.TakeoverCreateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateAttributes'
type:
enum:
- takeover_create
- takeover
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.TakeoverCreateFileInput:
properties:
file_id:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
name:
example: takeover-report.pdf
type: string
upload_intent_uuid:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
type: object
wucher_internal_transport_http_dto_request.TakeoverCreateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateData'
required:
- data
type: object
wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput:
properties:
doctor:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput'
type: array
helper:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput'
type: array
other_person:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterOtherPersonInput'
type: array
pilot:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterPilotInput'
type: array
rescuer:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput'
type: array
type: object
wucher_internal_transport_http_dto_request.TakeoverRosterOtherPersonInput:
properties:
email:
example: guest@example.com
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Guest Person
type: string
other_person_id:
description: OtherPersonID — OPTIONAL master person id to reuse (from GET
/contact/other).
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type: object
wucher_internal_transport_http_dto_request.TakeoverRosterPilotInput:
properties:
co_pilot:
type: boolean
crew_type:
enum:
- main
- additional
example: main
type: string
examiner:
type: boolean
flight_instructor:
type: boolean
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
line_checker:
type: boolean
supervisor:
type: boolean
type: object
wucher_internal_transport_http_dto_request.TakeoverUpdateAttributes:
properties:
base_id:
type: string
bases:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverBaseRef'
duty_date:
type: string
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput'
type: array
files_add:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput'
type: array
files_remove:
items:
type: string
type: array
files_replace:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput'
type: array
helicopter_id:
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes'
notes:
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput'
roster_details:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput'
type: object
wucher_internal_transport_http_dto_request.TakeoverUpdateData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateAttributes'
id:
type: string
type:
enum:
- takeover_update
- takeover
type: string
required:
- attributes
- type
type: object
wucher_internal_transport_http_dto_request.TakeoverUpdateRequest:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateData'
required:
- data
type: object
wucher_internal_transport_http_dto_response.ActionSignoffAttributes:
properties:
created_at:
example: "2026-06-16T03:04:05Z"
type: string
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
signed:
description: Signed — true once checked; gates the maintenance release form.
example: false
type: boolean
signed_at:
description: SignedAt / SignedBy — when/who signed; empty until signed.
example: "2026-06-16T03:04:05Z"
type: string
signed_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
signed_by_name:
description: SignedByName / SignedByShort — resolved display name + 3-letter
short of the signer.
example: John Doe
type: string
signed_by_short:
example: JDO
type: string
updated_at:
example: "2026-06-16T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.ActionSignoffResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
example: action_signoff
type: string
type: object
wucher_internal_transport_http_dto_response.ActionSignoffResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResource'
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistAttributes:
properties:
bases:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo'
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource'
type: array
position:
example: 1
type: integer
scope_code:
example: TU
type: string
scope_code_de:
example: DI
type: string
title:
example: Monday Checklist
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupAttributes:
properties:
bases:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo'
tabs:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistTabResource'
type: array
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupAttributes'
id:
example: base-018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: air_rescuer_checklist_group
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResource'
type: array
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistCATChecklistSummary:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
position:
example: 1
type: integer
title:
example: Cockpit Flugretter
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistCATGroup:
properties:
checklists:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistCATChecklistSummary'
type: array
scope_code:
example: DA
type: string
scope_code_de:
example: TA
type: string
scope_code_name:
example: Daily
type: string
scope_code_name_de:
example: Taeglich
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 8
type: integer
records_total:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource'
type: array
meta:
properties:
total_bases:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistItemAttributes:
properties:
checklist_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Check radio
type: string
position:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistItemBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData'
type: array
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: air_rescuer_checklist_item
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Oxygen supply check
type: string
position:
example: 1
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData'
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: air_rescuer_checklist
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResource'
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistTabChecklistDetail:
properties:
checklist_items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource'
type: array
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
position:
example: 1
type: integer
title:
example: Monday Checklist
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.AirRescuerChecklistTabResource:
properties:
checklists:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistTabChecklistDetail'
type: array
groups:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistCATGroup'
type: array
scope_code:
example: DA
type: string
scope_code_de:
example: TA
type: string
scope_code_name:
example: Daily
type: string
scope_code_name_de:
example: Taeglich
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintAttributes:
properties:
action_signed:
example: true
type: boolean
action_signed_at:
example: "2026-06-15T03:04:05Z"
type: string
action_signed_by_name:
example: John Doe
type: string
action_signed_by_short:
example: JDO
type: string
action_taken:
example: tightened mount
type: string
aircraft_hours_at_fix:
example: "1250.1"
type: string
aircraft_hours_at_report:
example: "1245.3"
type: string
created_at:
example: "2026-06-15T03:04:05Z"
type: string
description:
example: Engine 2 N2 vibration intermittent during cruise above 110 KIAS
type: string
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter'
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
mel:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintMEL'
nsr:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintNSR'
reported_at:
example: "2026-06-15T03:04:05Z"
type: string
reported_by:
example: John Doe
type: string
reported_by_short:
example: JDO
type: string
status:
enum:
- active_non_mel
- active_mel
- serviced
example: active_mel
type: string
updated_at:
example: "2026-06-15T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintGroupedDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 1
type: integer
records_total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupAttributes:
properties:
complaints:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResource'
type: array
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter'
type: object
wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupAttributes'
type:
example: complaint_helicopter_group
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintMEL:
properties:
classified_at:
description: ClassifiedAt / ClassifiedByName / ClassifiedByShort — when/who
classified the MEL.
example: "2026-06-15T03:04:05Z"
type: string
classified_by_name:
example: John Doe
type: string
classified_by_short:
example: JDO
type: string
deadline:
description: Deadline — grace deadline; after this the aircraft is AOG. null
for NON-MEL.
example: "2026-06-18T03:04:05Z"
type: string
severity:
description: 'Severity — MEL class: 0=NON-MEL, 1=A, 2=B, 3=C, 4=D. Always
set (classification is required at creation).'
enum:
- 0
- 1
- 2
- 3
- 4
example: 2
type: integer
severity_label:
description: SeverityLabel — human label of the severity (NON-MEL/A/B/C/D).
example: B
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintNSR:
properties:
decided_at:
description: DecidedAt / DecidedByName / DecidedByShort — when/who decided
NSR (may differ from the reporter).
example: "2026-06-15T03:04:05Z"
type: string
decided_by_name:
example: John Doe
type: string
decided_by_short:
example: JDO
type: string
is_nsr:
description: 'IsNSR — Non-Safety Release: true = aircraft released to fly
despite the open defect.'
example: false
type: boolean
reason:
description: Reason — optional justification for the NSR decision.
example: not required
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
example: complaint
type: string
type: object
wucher_internal_transport_http_dto_response.ComplaintResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResource'
type: object
wucher_internal_transport_http_dto_response.DutyRosterAttributes:
properties:
bases:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo'
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
duty_date:
example: "2026-03-16"
type: string
flight_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary'
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse'
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime'
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterBaseGroupAttributes:
properties:
bases:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo'
rosters:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterGroupRoster'
type: array
type: object
wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupAttributes'
type:
example: hems_base_roster_group
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterBaseInfo:
properties:
base_abbreviation:
example: G1
type: string
base_name:
example: Gallus 1 - Zurs Lech
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime'
type:
example: hems
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterCrew:
properties:
email:
example: doctor@example.com
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Hunter Wolfgang
type: string
role:
example: doctor
type: string
shift_date:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftDate'
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime'
type: object
wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteAttributes:
properties:
deleted:
example: true
type: boolean
deleted_count:
example: 1
type: integer
deleted_items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDeletedCrewItem'
type: array
type: object
wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteAttributes'
type:
example: duty_roster_crew_delete
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResource'
type: object
wucher_internal_transport_http_dto_response.DutyRosterDeletedCrewItem:
properties:
crew_type:
example: main
type: string
date_end:
example: "2026-03-22"
type: string
date_start:
example: "2026-03-20"
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: Pilot One
type: string
role_code:
example: pilot
type: string
roster_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
user_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse:
properties:
doctor:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew'
type: array
helper:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew'
type: array
other_person:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew'
type: array
pilot:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterPilotCrew'
type: array
rescuer:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew'
type: array
type: object
wucher_internal_transport_http_dto_response.DutyRosterGroupRoster:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
duty_date:
example: "2026-03-16"
type: string
flight_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse'
shift_time:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime'
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterGroupedDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 8
type: integer
records_total:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.DutyRosterGroupedListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource'
type: array
meta:
properties:
from:
example: "2026-03-16"
type: string
to:
example: "2026-04-15"
type: string
total_bases:
example: 8
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary:
properties:
designation:
example: OE-XHZ
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
identifier:
example: "1234"
type: string
type:
example: EC-135
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterPilotCrew:
properties:
co_pilot:
type: boolean
crew_type:
example: main
type: string
email:
example: pilot@example.com
type: string
examiner:
type: boolean
flight_instructor:
type: boolean
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
line_checker:
type: boolean
mobile_phone:
example: +43-1234
type: string
name:
example: Hunter Wolfgang
type: string
role:
example: pilot
type: string
shift_date:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftDate'
supervisor:
type: boolean
type: object
wucher_internal_transport_http_dto_response.DutyRosterResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: duty_roster
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResource'
type: object
wucher_internal_transport_http_dto_response.DutyRosterShiftDate:
properties:
date_end:
example: "2026-03-16"
type: string
date_start:
example: "2026-03-16"
type: string
type: object
wucher_internal_transport_http_dto_response.DutyRosterShiftTime:
properties:
shift_end:
example: "21:00"
type: string
shift_start:
example: "06:00"
type: string
type: object
wucher_internal_transport_http_dto_response.EASAReleaseAttributes:
properties:
complaint_id:
example: 019d6774-1111-7fba-9ef4-3795c0da8a13
type: string
created_at:
example: "2026-06-16T03:04:05Z"
type: string
easa_ac_hours:
example: "1245.3"
type: string
easa_date:
example: "2026-06-16"
type: string
easa_location:
example: LOWI
type: string
easa_maint_manual_rev_airframe:
example: Rev 12
type: string
easa_maint_manual_rev_engine:
example: Rev 8
type: string
easa_permit_no:
example: 145.A.50
type: string
easa_signer_id:
description: EASASignerID — contact id (UUIDv7) of the signer/technician.
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
easa_signer_name:
description: EASASignerName / EASASignerShort — resolved display name + 3-letter
short of the signer contact.
example: John Doe
type: string
easa_signer_short:
example: JDO
type: string
easa_wo_no:
example: WO-2026-001
type: string
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
is_signed:
description: IsSigned — true once the release is signed (Release to Service);
then the complaint becomes fixed.
example: false
type: boolean
missing_sign_fields:
description: MissingSignFields — required fields still empty; must all be
filled before it can be signed.
items:
type: string
type: array
signed_at:
description: SignedAt / SignedBy — when/who signed; empty until signed.
example: "2026-06-16T03:04:05Z"
type: string
signed_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
updated_at:
example: "2026-06-16T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.EASAReleaseDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: easa_release_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto_response.EASAReleaseListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResource'
type: array
meta:
properties:
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.EASAReleaseResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
example: easa_release
type: string
type: object
wucher_internal_transport_http_dto_response.EASAReleaseResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResource'
type: object
wucher_internal_transport_http_dto_response.FileManagerActionBulkError:
properties:
code:
example: FILE_MANAGER_VALIDATION_FAILED
type: string
detail:
example: duplicate name in target folder
type: string
error_code:
example: "4222111"
type: string
status:
example: 422
type: integer
title:
example: Validation error
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerActionLocation:
properties:
folder_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerAttachmentListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerAttachmentResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerAttachmentAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_attachment
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResource'
type: object
wucher_internal_transport_http_dto_response.FileManagerBreadcrumbItem:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: operations
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileBulkError:
properties:
code:
example: FILE_MANAGER_VALIDATION_FAILED
type: string
detail:
example: duplicate name in target folder
type: string
error_code:
example: "4222111"
type: string
status:
example: 422
type: integer
title:
example: Validation error
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError'
index:
example: 0
type: integer
message:
example: created
type: string
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadResource:
properties:
attributes:
properties:
status:
example: canceled
type: string
type: object
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_file_cancel_upload_result
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileDetailResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileDetailAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_file
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileDetailResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileDetailResource'
type: object
wucher_internal_transport_http_dto_response.FileManagerFileResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_file
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileResponse:
properties:
data:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_file
type: string
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_file_upload_intent
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionData:
properties:
access_token:
example: eyJhbGciOiJIUzI1NiIs...
type: string
access_token_ttl:
description: |-
AccessTokenTTL is the access token's absolute expiry time, in epoch
milliseconds (equal to the JWT exp claim), as required by WOPI/Collabora.
example: 1782971996000
type: integer
collabora_action:
example: https://collabora.example.com/browser/123?WOPISrc=...
type: string
file_id:
example: 019f0386-0a00-7a4a-a2d8-30afc0e0c3ad
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionData'
type: object
wucher_internal_transport_http_dto_response.FileManagerFolderDetailResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderDetailAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_folder
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFolderDetailResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderDetailResource'
type: object
wucher_internal_transport_http_dto_response.FileManagerFolderResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_folder
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerFolderResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResource'
type: object
wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultAttributes:
properties:
location:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionLocation'
node_type:
example: folder
type: string
status:
example: moved
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_move_result
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerNodeAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
extension:
example: pdf
type: string
mime_type:
example: application/pdf
type: string
name:
example: operations
type: string
node_type:
example: folder
type: string
parent_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
path_cache:
example: /root/operations
type: string
size_bytes:
example: 1024
type: integer
status:
example: ready
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerNodeListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeResource'
type: array
meta:
properties:
breadcrumb:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerBreadcrumbItem'
type: array
files:
example: 8
type: integer
folders:
example: 4
type: integer
is_root:
example: true
type: boolean
parent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
total:
example: 12
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerNodeResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_node
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultAttributes:
properties:
node_type:
example: folder
type: string
status:
example: purged
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_purge_result
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerTrashListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashNodeResource'
type: array
meta:
properties:
files:
example: 70
type: integer
folders:
example: 50
type: integer
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FileManagerTrashNodeAttributes:
properties:
created_at:
example: "2026-03-31T08:52:03Z"
type: string
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
extension:
example: pdf
type: string
mime_type:
example: application/pdf
type: string
name:
example: Documents
type: string
node_type:
example: folder
type: string
path_cache:
example: /Documents
type: string
size_bytes:
example: 123456
type: integer
trashed_at:
example: "2026-04-01T10:00:00Z"
type: string
updated_at:
example: "2026-03-31T08:52:03Z"
type: string
type: object
wucher_internal_transport_http_dto_response.FileManagerTrashNodeResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashNodeAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: file_manager_trash_node
type: string
type: object
wucher_internal_transport_http_dto_response.FleetHistoryEntry:
properties:
action:
example: easa_signed
type: string
actor:
example: 019e91e6-2908-7f37-93e6-015ed1b7587d
type: string
actor_name:
example: John Doe
type: string
at:
example: "2026-06-17T10:15:00Z"
type: string
entity_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
entity_type:
example: easa_release
type: string
message:
example: Release to Service (EASA signed)
type: string
type: object
wucher_internal_transport_http_dto_response.FleetHistoryListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetHistoryEntry'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FleetStatusAttributes:
properties:
complaints:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaint'
type: array
created_at:
example: "2026-05-29T07:43:06Z"
type: string
created_by:
example: John Doe
type: string
easa_release:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusEASARelease'
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusFile'
type: array
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter'
maintenance_schedules:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes'
type: array
mcf:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusMCF'
serviced_at:
example: "2026-05-29T07:43:06Z"
type: string
status:
enum:
- active
- serviced
example: active
type: string
summary:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummary'
updated_at:
example: "2026-05-29T07:43:06Z"
type: string
updated_by:
example: John Doe
type: string
type: object
wucher_internal_transport_http_dto_response.FleetStatusDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 20
type: integer
records_total:
example: 100
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FleetStatusDeleteResponse:
properties:
data:
properties:
attributes:
properties:
deleted:
example: true
type: boolean
type: object
type:
example: fleet_status_delete
type: string
type: object
type: object
wucher_internal_transport_http_dto_response.FleetStatusFile:
properties:
category:
example: wb
type: string
download_url:
example: https://storage.example.com/fleet/wb.pdf?X-Amz-Signature=abc123
type: string
file_attachment_id:
example: 019d7000-aaaa-7bbb-8ccc-111111111111
type: string
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
is_mandatory:
example: true
type: boolean
name:
example: weight_balance.pdf
type: string
size_bytes:
example: 1024000
type: integer
thumbnail_download_url:
example: https://storage.example.com/fleet/wb.thumb.jpg?X-Amz-Signature=abc123
type: string
type: object
wucher_internal_transport_http_dto_response.FleetStatusListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 100
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FleetStatusMarkServicedResponse:
properties:
data:
properties:
attributes:
properties:
serviced:
example: true
type: boolean
type: object
type:
example: fleet_status_mark_serviced
type: string
type: object
type: object
wucher_internal_transport_http_dto_response.FleetStatusResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
example: fleet_status
type: string
type: object
wucher_internal_transport_http_dto_response.FleetStatusResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource'
type: object
wucher_internal_transport_http_dto_response.FlightAttributes:
properties:
code:
example: M-062226-001
type: string
created_at:
example: "2026-04-14T08:00:00Z"
type: string
created_by:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.UserRef'
date:
example: "2026-04-14"
type: string
deleted_at:
example: "2026-04-14T08:00:00Z"
type: string
deleted_by:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.UserRef'
draft:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDraftGroup'
type: array
mission_id:
example: 019e9640-f7af-7940-80e8-1e9a83013afb
type: string
status:
example: draft
type: string
steps:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightStepItem'
type: array
takeover:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightTakeoverSummary'
total_draft:
example: 6
type: integer
updated_at:
example: "2026-04-14T08:00:00Z"
type: string
updated_by:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.UserRef'
type: object
wucher_internal_transport_http_dto_response.FlightDailyInspectionSummary:
properties:
date:
example: 17.04.2026
type: string
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
name:
example: Ganahl Stefan
type: string
short_name:
example: GAN
type: string
utc_time:
example: "10:57"
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataAttributes:
properties:
co_pilot:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataCoPilotRef'
created_at:
example: "2026-04-20T08:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
customer_name:
example: Air Service
type: string
delivery_note_number:
example: DN-1001
type: string
engine:
example: PW207D1
type: string
flight_duration_seconds:
example: 4500
type: integer
flight_landing:
example: "2026-04-20T09:15:00Z"
type: string
flight_plan_distance:
example: 120.5
type: number
flight_plan_time_seconds:
example: 4200
type: integer
flight_plan_true_course:
example: 182.3
type: number
flight_positioning:
example: false
type: boolean
flight_red_seconds:
example: 300
type: integer
flight_take_off:
example: "2026-04-20T08:00:00Z"
type: string
from:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataLocationRef'
fuel_after_flight:
example: 280
type: number
fuel_before_flight:
example: 420
type: number
fuel_planning:
example: 390
type: number
fuel_upload:
example: 100
type: number
hec:
allOf:
- $ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECDetails'
x-note: Only returned for SPO missions
heslo:
allOf:
- $ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLODetails'
x-note: Only returned for SPO missions
hook_releases:
example: 0
type: integer
landing_count:
example: 1
type: integer
logging:
allOf:
- $ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOLoggingDetails'
x-note: Only returned for SPO missions
max_n1:
example: 97.5
type: number
max_n2:
example: 98.1
type: number
mission:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataMissionRef'
other_information:
type: string
pax_count:
example: 4
type: integer
roster_details:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse'
rotor_brake_cycle:
example: 1
type: integer
status:
example: in_progress
type: string
ticket_no:
example: TKT-001
type: string
to:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataLocationRef'
updated_at:
example: "2026-04-20T08:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataCoPilotRef:
properties:
email:
example: john.doe@example.com
type: string
first_name:
example: John
type: string
id:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
last_name:
example: Doe
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FlightDataLocationRef:
properties:
code:
example: WIII
type: string
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
label:
example: WIII
type: string
name:
example: General Hospital
type: string
type:
example: icao
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataMissionRef:
properties:
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
type:
example: HEMS
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataAttributes'
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
type:
example: flight_data
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource'
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHECDetails:
properties:
flights:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECFlight'
type: array
loads:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECLoad'
type: array
slings:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECSling'
type: array
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHECFlight:
properties:
equipment_id:
description: 'Facility category: hec-rope-label.'
type: string
equipment_name:
type: string
hec_cycle:
type: integer
id:
type: string
rot:
type: integer
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHECLoad:
properties:
id:
type: string
load_category:
description: Weight band for the HEC load, e.g. "bis 199 kg", "200-600 kg",
"600-800 kg", "800-1000 kg".
example: 200-600 kg
type: string
quantity:
example: 3
type: integer
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHECSling:
properties:
id:
type: string
sling_id:
description: 'Facility category: hec-rope-length.'
type: string
sling_name:
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHESLODetails:
properties:
flights:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLOFlight'
type: array
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHESLOFlight:
properties:
heslo_rope_label_id:
description: 'Facility category: heslo-rope-label.'
type: string
heslo_rope_label_name:
type: string
id:
type: string
rot:
type: integer
slings:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLOSling'
type: array
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOHESLOSling:
properties:
id:
type: string
sling_id:
description: 'Facility category: heslo-rope-length.'
type: string
sling_name:
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOLoggingDetails:
properties:
slings:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOLoggingSling'
type: array
type: object
wucher_internal_transport_http_dto_response.FlightDataSPOLoggingSling:
properties:
id:
type: string
sling_id:
description: 'Facility category: heslo-hook.'
type: string
sling_name:
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDraftGroup:
properties:
items:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDraftItem'
type: array
type:
example: HEMS
type: string
type: object
wucher_internal_transport_http_dto_response.FlightDraftItem:
properties:
flight_data_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a55
type: string
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
status:
example: draft
type: string
type:
example: HEMS
type: string
type: object
wucher_internal_transport_http_dto_response.FlightHelicopterSummary:
properties:
aog:
example: false
type: boolean
designation:
example: AIRBUS H145
type: string
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
identifier:
example: D-HYAR
type: string
is_active:
example: true
type: boolean
type:
example: H145
type: string
type: object
wucher_internal_transport_http_dto_response.FlightListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.FlightMissionTypeSummary:
properties:
completed:
example: 0
type: integer
draft:
example: 5
type: integer
type:
example: HEMS
type: string
type: object
wucher_internal_transport_http_dto_response.FlightResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightAttributes'
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
type:
example: flight
type: string
type: object
wucher_internal_transport_http_dto_response.FlightStepItem:
properties:
complete:
example: true
type: boolean
completed_at:
example: "2026-04-14T08:00:00Z"
type: string
completed_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
mission_type:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightMissionTypeSummary'
type: array
phase:
example: duty_roster
type: string
position:
example: takeover
type: string
status:
example: completed
type: string
step:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto_response.FlightTakeoverSummary:
properties:
daily_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDailyInspectionSummary'
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightHelicopterSummary'
id:
example: 019e8713-aa19-7fb7-a510-a0332dc69697
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse'
type: object
wucher_internal_transport_http_dto_response.HelicopterAttributes:
properties:
aog:
example: false
type: boolean
aog_reason:
example: Main rotor gearbox fault
type: string
consumption_lt_min:
example: 4.1
type: number
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterAuditUser'
designation:
example: OE-XHZ
type: string
dry:
example: false
type: boolean
engine_1:
example: TM
type: string
engine_2:
example: TM
type: string
foto:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterFoto'
identifier:
example: ABC-0001
type: string
igb:
example: false
type: boolean
is_active:
example: true
type: boolean
is_in_use:
example: false
type: boolean
last_daily_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection'
lh:
example: true
type: boolean
maintenance_schedules:
description: |-
MaintenanceSchedules mirrors the helicopter's latest fleet status. It
always lists every inspection type; entries without data are empty.
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes'
type: array
mgb:
example: true
type: boolean
note:
example: Primary HEMS helicopter
type: string
nr1:
example: true
type: boolean
nr2:
example: true
type: boolean
rh:
example: true
type: boolean
sortkey:
example: 10
type: integer
status:
description: |-
Status is the operational status of the helicopter (read-time derived).
Values: "available", "booked", "aog", "mcf". Precedence: mcf > aog > booked > available.
"booked" = active flight assignment; "aog" = air_on_ground flag OR an open complaint
grounding it (non-MEL, or MEL past its grace deadline); "mcf" = a pending maintenance
check flight (MCF created, not yet passed).
enum:
- available
- booked
- aog
- mcf
example: available
type: string
tgb:
example: true
type: boolean
type:
example: EC-135
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterAuditUser'
utc_offset:
example: -1
type: integer
type: object
wucher_internal_transport_http_dto_response.HelicopterDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 12
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterFileBulkError:
properties:
code:
example: HELICOPTER_FILE_INVALID_PAYLOAD
type: string
detail:
example: helicopter_id is invalid UUID
type: string
error_code:
example: "4220318"
type: string
status:
example: 422
type: integer
title:
example: Validation error
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttachment:
properties:
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
file_name:
example: Before Flight Checklist.pdf
type: string
id:
example: 019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttributes:
properties:
files:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionSections'
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionHelicopter'
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionHelicopter:
properties:
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
name:
example: AIRBUS H145
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem:
properties:
attachment:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttachment'
attachment_pending:
example: true
type: boolean
created_at:
example: "2026-04-14T08:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
helicopter_file_id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
is_mandatory:
example: true
type: boolean
is_template:
example: true
type: boolean
position:
example: 1
type: integer
section:
example: bfi
type: string
updated_at:
example: "2026-04-14T08:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttributes'
type:
example: helicopter_file_collection
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCollectionSections:
properties:
after:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem'
type: array
before:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem'
type: array
prepare:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem'
type: array
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Resource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterFileDeleteAttributes:
properties:
deleted:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.HelicopterFileDeleteResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteAttributes'
type:
example: helicopter_file_delete
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileDeleteResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteResource'
type: object
wucher_internal_transport_http_dto_response.HelicopterFileResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterFileAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
example: helicopter_file
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResource'
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Resource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkItem:
properties:
error:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError'
index:
example: 0
type: integer
resource:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource'
success:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkItem'
type: array
meta:
properties:
failed:
example: 1
type: integer
partial_success:
example: true
type: boolean
success:
example: 2
type: integer
total:
example: 3
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: helicopter_file_upload_intent
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource'
type: object
wucher_internal_transport_http_dto_response.HelicopterListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.HelicopterNextReportNumberAttributes:
properties:
identifier:
example: ABC
type: string
report_number:
example: ABC-0001
type: string
sequence:
example: 1
type: integer
type: object
wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: helicopter_report_number
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResource'
type: object
wucher_internal_transport_http_dto_response.HelicopterResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: helicopter
type: string
type: object
wucher_internal_transport_http_dto_response.HelicopterResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource'
type: object
wucher_internal_transport_http_dto_response.MCFAttributes:
properties:
af_hours:
example: "1245.3"
type: string
completed_at:
example: "2026-06-16T03:04:05Z"
type: string
completed_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
created_at:
example: "2026-06-16T03:04:05Z"
type: string
date:
example: "2026-06-17"
type: string
decided_at:
example: "2026-06-16T03:04:05Z"
type: string
decided_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
flight_id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
is_cleared:
example: false
type: boolean
is_complete:
example: false
type: boolean
is_pending:
example: true
type: boolean
landing_count:
example: 3
type: integer
notes:
example: Vibration within limits
type: string
result:
enum:
- passed
- failed
example: passed
type: string
updated_at:
example: "2026-06-16T03:04:05Z"
type: string
utc_time:
example: "2026-06-17T08:30:00Z"
type: string
type: object
wucher_internal_transport_http_dto_response.MCFListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResource'
type: array
meta:
properties:
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.MCFResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
example: mcf
type: string
type: object
wucher_internal_transport_http_dto_response.MCFResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResource'
type: object
wucher_internal_transport_http_dto_response.MasterSettingsAttributes:
properties:
company_name:
example: Wucher
type: string
cover_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
cover_original_size_bytes:
example: 2048000
type: integer
cover_thumbnail_url:
example: https://cdn.example.com/cover.thumb.png
type: string
cover_url:
example: https://cdn.example.com/cover.png
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
logo_file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
logo_original_size_bytes:
example: 1024000
type: integer
logo_thumbnail_url:
example: https://cdn.example.com/logo.thumb.png
type: string
logo_url:
example: https://cdn.example.com/logo.png
type: string
subtitle:
example: Flight operations platform
type: string
title:
example: Welcome to Wucher
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraAttributes:
properties:
MS_ENTRA_AUTHORITY:
example: https://login.microsoftonline.com/
type: string
MS_ENTRA_CLIENT_ID:
example: your-client-id
type: string
MS_ENTRA_CLIENT_SECRET:
example: '********'
type: string
MS_ENTRA_REDIRECT_URL:
example: https://example.com/api/v1/auth/microsoft/callback
type: string
MS_ENTRA_SCOPES:
example: openid,profile,email
type: string
MS_ENTRA_TENANT_ID:
example: your-tenant-id
type: string
type: object
wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraAttributes'
type:
example: master_settings_microsoft_entra_sso
type: string
type: object
wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResource'
type: object
wucher_internal_transport_http_dto_response.MasterSettingsResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsAttributes'
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: master_settings
type: string
type: object
wucher_internal_transport_http_dto_response.MasterSettingsResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResource'
type: object
wucher_internal_transport_http_dto_response.MissionAttributes:
properties:
created_at:
example: "2026-04-20T08:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
end_time:
example: "22:05"
type: string
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionFileItem'
type: array
flight:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionFlightRef'
forms:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionForms'
mission_code:
example: HEMS-26-1
type: string
note:
example: Mission note
type: string
start_time:
example: "04:49"
type: string
status:
example: completed
type: string
subtypes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionSubtypeRef'
type:
example: HEMS
type: string
updated_at:
example: "2026-04-20T08:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_response.MissionDataTableResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResource'
type: array
meta:
properties:
draw:
example: 1
type: integer
records_filtered:
example: 42
type: integer
records_total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.MissionFileItem:
properties:
attachment_id:
example: 019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e
type: string
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/brief.pdf?X-Amz-Signature=...
type: string
file_name:
example: mission-brief.pdf
type: string
id:
example: 019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e
type: string
thumbnail_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/thumbnails/2026/04/05/brief.png?X-Amz-Signature=...
type: string
type: object
wucher_internal_transport_http_dto_response.MissionFlightRef:
properties:
code:
example: M-062226-001
type: string
date:
example: "2026-04-20"
type: string
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
type: object
wucher_internal_transport_http_dto_response.MissionForms:
properties:
flight_data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource'
type: array
type: object
wucher_internal_transport_http_dto_response.MissionListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 120
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.MissionResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionAttributes'
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
type:
example: mission
type: string
type: object
wucher_internal_transport_http_dto_response.MissionResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResource'
type: object
wucher_internal_transport_http_dto_response.MissionSubtypeRef:
properties:
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a99
type: string
subtype:
example: PRIM
type: string
subtype_name:
example: Nicht transportfaehig
type: string
type: object
wucher_internal_transport_http_dto_response.MissionTypeAttributes:
properties:
code:
example: HEMS
type: string
name:
example: HEMS
type: string
subtypes:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionTypeSubtypeItem'
type: array
type: object
wucher_internal_transport_http_dto_response.MissionTypeListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionTypeResource'
type: array
type: object
wucher_internal_transport_http_dto_response.MissionTypeResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionTypeAttributes'
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a77
type: string
type:
example: mission_type
type: string
type: object
wucher_internal_transport_http_dto_response.MissionTypeSubtypeItem:
properties:
code:
example: PRIM
type: string
id:
example: 019d6774-98e8-7fba-9ef4-3795c0da8a99
type: string
name:
example: Primary
type: string
task_name:
example: Nicht transportfaehig
type: string
type: object
wucher_internal_transport_http_dto_response.OtherPersonAttributes:
properties:
email:
example: guest@example.com
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Guest Person
type: string
type: object
wucher_internal_transport_http_dto_response.OtherPersonListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResource'
type: array
meta:
properties:
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.OtherPersonResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonAttributes'
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
type:
example: other_person
type: string
type: object
wucher_internal_transport_http_dto_response.OtherPersonResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResource'
type: object
wucher_internal_transport_http_dto_response.ReserveAcListResponse:
properties:
data:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResource'
type: array
meta:
properties:
page_number:
example: 1
type: integer
page_size:
example: 20
type: integer
total:
example: 1
type: integer
type: object
type: object
wucher_internal_transport_http_dto_response.ReserveAcResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcAttributes'
id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
type:
example: reserve_ac
type: string
type: object
wucher_internal_transport_http_dto_response.ReserveAcResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResource'
type: object
wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew:
properties:
email:
example: doctor@example.com
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
mobile_phone:
example: +43-1234
type: string
name:
example: Hunter Wolfgang
type: string
role:
example: doctor
type: string
type: object
wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse:
properties:
doctor:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew'
type: array
helper:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew'
type: array
other_person:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew'
type: array
pilot:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterPilotCrew'
type: array
rescuer:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew'
type: array
type: object
wucher_internal_transport_http_dto_response.TakeoverDutyRosterPilotCrew:
properties:
co_pilot:
type: boolean
crew_type:
example: main
type: string
email:
example: pilot@example.com
type: string
examiner:
type: boolean
flight_instructor:
type: boolean
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
line_checker:
type: boolean
mobile_phone:
example: +43-1234
type: string
name:
example: Hunter Wolfgang
type: string
role:
example: pilot
type: string
supervisor:
type: boolean
type: object
wucher_internal_transport_http_dto_response.TakeoverFileAttributes:
properties:
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/takeover-report.pdf?X-Amz-Signature=...
type: string
file_attachment_id:
example: 019d7000-aaaa-7bbb-8ccc-222222222222
type: string
file_name:
example: takeover-report.pdf
type: string
type: object
wucher_internal_transport_http_dto_response.TakeoverFileResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileAttributes'
id:
example: 019d7000-aaaa-7bbb-8ccc-111111111111
type: string
type:
example: takeover_file
type: string
type: object
wucher_internal_transport_http_dto_response.TakeoverHelicopter:
properties:
designation:
example: OE-XHZ
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
identifier:
example: "1234"
type: string
last_daily_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection'
maintenance_schedules:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes'
type: array
type:
example: EC-135
type: string
type: object
wucher_internal_transport_http_dto_response.TakeoverResource:
properties:
attributes:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponseAttributes'
type:
example: takeover
type: string
type: object
wucher_internal_transport_http_dto_response.TakeoverResponse:
properties:
data:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverResource'
type: object
wucher_internal_transport_http_dto_response.TakeoverResponseAttributes:
properties:
base:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo'
base_id:
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
duty_date:
type: string
files:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileResource'
type: array
flight_id:
type: string
flight_inspection_id:
type: string
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverHelicopter'
helicopter_id:
type: string
id:
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary'
notes:
type: string
reserve_ac_id:
type: string
roster_detail:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse'
shift_end:
type: string
shift_start:
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_response.UserRef:
properties:
name:
example: Ganahl Stefan
type: string
uuid:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo:
properties:
base_abbreviation:
example: G1
type: string
base_category:
example: hems
type: string
base_name:
example: Gallus 1 - Zurs Lech
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput:
properties:
name:
example: Oxygen supply check
type: string
position:
example: 1
type: integer
required:
- name
type: object
wucher_internal_transport_http_dto_shared.FileManagerAttachmentAttributes:
properties:
attached_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
category:
example: document
type: string
created_at:
example: "2026-03-12T03:04:05Z"
type: string
file_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_primary:
example: false
type: boolean
ref_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
ref_type:
example: helicopter
type: string
sort_order:
example: 0
type: integer
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
extension:
example: pdf
type: string
failed_at:
example: "2026-03-12T03:04:05Z"
type: string
failure_reason:
example: ""
type: string
file_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
folder_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
is_template:
example: true
type: boolean
mime_type:
example: application/pdf
type: string
name:
example: policy.pdf
type: string
name_normalized:
example: policy.pdf
type: string
processed_at:
example: "2026-03-12T03:04:05Z"
type: string
processing_started_at:
example: "2026-03-12T03:04:05Z"
type: string
purge_at:
example: "2026-04-12T03:04:05Z"
type: string
size_bytes:
example: 1024
type: integer
status:
example: validated
type: string
trashed_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
upload_error:
example: ""
type: string
validated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileAuditAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileDetailAttributes:
properties:
audit:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAuditAttributes'
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
extension:
example: pdf
type: string
is_template:
example: true
type: boolean
location:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileLocationAttributes'
mime_type:
example: application/pdf
type: string
name:
example: policy.pdf
type: string
name_normalized:
example: policy.pdf
type: string
preview_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.preview.pdf?X-Amz-Signature=...
type: string
processing:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileProcessingAttributes'
size_bytes:
example: 1024
type: integer
status:
example: ready
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileLocationAttributes:
properties:
folder_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileProcessingAttributes:
properties:
failed_at:
example: "2026-03-12T03:04:05Z"
type: string
failure_reason:
example: processing validation failed
type: string
processed_at:
example: "2026-03-12T03:04:05Z"
type: string
processing_started_at:
example: "2026-03-12T03:04:05Z"
type: string
validated_at:
example: "2026-03-12T03:04:05Z"
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes:
properties:
expires_at:
example: "2026-04-05T07:29:34Z"
type: string
expires_in_seconds:
example: 900
type: integer
file:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileUploadFile'
method:
example: PUT
type: string
object:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileUploadObject'
required_headers:
additionalProperties:
type: string
type: object
upload_intent_uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
upload_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/...
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFolderAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
deleted_at:
example: "2026-03-12T03:04:05Z"
type: string
deleted_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
depth:
example: 1
type: integer
name:
example: operations
type: string
name_normalized:
example: operations
type: string
parent_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
path_cache:
example: /root/operations
type: string
purge_at:
example: "2026-04-12T03:04:05Z"
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFolderAuditAttributes:
properties:
created_at:
example: "2026-03-12T03:04:05Z"
type: string
created_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
updated_at:
example: "2026-03-12T03:04:05Z"
type: string
updated_by:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFolderDetailAttributes:
properties:
audit:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderAuditAttributes'
depth:
example: 1
type: integer
location:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderLocationAttributes'
name:
example: operations
type: string
name_normalized:
example: operations
type: string
path_cache:
example: /root/operations
type: string
type: object
wucher_internal_transport_http_dto_shared.FileManagerFolderLocationAttributes:
properties:
parent_id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.FileUploadFile:
properties:
mime_type:
example: application/pdf
type: string
name:
example: policy-final.pdf
type: string
size_bytes:
example: 1024
type: integer
type: object
wucher_internal_transport_http_dto_shared.FileUploadObject:
properties:
bucket:
example: wucher-file-dev
type: string
key:
example: files/2026/04/05/018f3a5c7a6f7c2a8d4a4b5b1f6c8e9d.pdf
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusComplaint:
properties:
action:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintAction'
aircraft_hours_at_report:
type: string
description:
type: string
flight_id:
type: string
id:
type: string
mel:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintMEL'
nsr:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintNSR'
reported_at:
type: string
reported_by:
type: string
reported_by_name:
type: string
reported_by_short:
type: string
status:
enum:
- active_non_mel
- active_mel
- serviced
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusComplaintAction:
properties:
aircraft_hours_at_fix:
type: string
signed_at:
type: string
signed_by:
type: string
signed_by_name:
type: string
signed_by_short:
type: string
taken:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusComplaintMEL:
properties:
classified_at:
type: string
classified_by:
type: string
classified_by_name:
type: string
classified_by_short:
type: string
deadline:
type: string
severity:
enum:
- 0
- 1
- 2
- 3
- 4
type: integer
severity_label:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusComplaintNSR:
properties:
decided_at:
type: string
decided_by:
type: string
decided_by_name:
type: string
decided_by_short:
type: string
is_nsr:
type: boolean
reason:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusEASARelease:
properties:
easa_ac_hours:
type: string
easa_date:
type: string
easa_location:
type: string
easa_maint_manual_rev_airframe:
type: string
easa_maint_manual_rev_engine:
type: string
easa_permit_no:
type: string
easa_signer_id:
type: string
easa_wo_no:
type: string
id:
type: string
is_signed:
type: boolean
missing_sign_fields:
items:
type: string
type: array
signed_at:
type: string
signed_by:
type: string
signed_by_name:
type: string
signed_by_short:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes:
properties:
category:
enum:
- wb
- bfi
example: wb
type: string
file_id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
is_mandatory:
description: IsMandatory — when true, this file must be checked (is_done)
during takeover.
example: true
type: boolean
required:
- category
- file_id
type: object
wucher_internal_transport_http_dto_shared.FleetStatusHelicopter:
properties:
designation:
example: AIRBUS H145
type: string
flight_id:
description: |-
FlightID — id of the aircraft's current active flight (present only when it is in
use / booked). The fleet page uses it to create an EASA release scoped to the flight.
example: 019d6774-98e8-7fba-9ef4-3795c0da8a13
type: string
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
identifier:
example: D-HEMS
type: string
status:
enum:
- available
- booked
- aog
- mcf
example: available
type: string
status_reasons:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopterReason'
type: array
type:
example: EC-135
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusHelicopterReason:
properties:
code:
enum:
- manual_aog
- mel_expired
- non_mel_pending
- inspection_overdue
type: string
complaint_id:
type: string
detail:
type: string
schedule_id:
type: string
since:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusMCF:
properties:
active:
description: |-
Active — true when the helicopter is currently in MCF (an open draft, or a signed
but failed MCF still needing a re-flight); false when cleared/cancelled/none.
type: boolean
af_hours:
description: AFHours / LandingCount present only once the MCF is signed; omitted
for none/draft/cancelled.
type: string
date:
type: string
id:
type: string
landing_count:
type: integer
sign:
description: Sign — true once the MCF is completed/signed; false while it
is still a draft.
type: boolean
signed_by:
description: SignedBy / SignedByName / SignedByShort — who signed (completed)
the MCF; empty while unsigned.
type: string
signed_by_name:
type: string
signed_by_short:
type: string
type: object
wucher_internal_transport_http_dto_shared.FleetStatusSummary:
properties:
airframe:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryAirframe'
engine_1:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine'
engine_2:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine'
flight_reports:
type: number
hook_releases:
type: number
landings:
type: number
rotor_brake_cycles:
type: number
type: object
wucher_internal_transport_http_dto_shared.FleetStatusSummaryAirframe:
properties:
cycles:
type: number
hours:
type: number
type: object
wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine:
properties:
ccc:
type: number
gpc_ng_n1:
type: number
hours:
type: number
ptc_nf_n2:
type: number
type: object
wucher_internal_transport_http_dto_shared.HelicopterAuditUser:
properties:
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
name:
example: John Doe
type: string
type: object
wucher_internal_transport_http_dto_shared.HelicopterFileAttributes:
properties:
attachment_pending:
example: true
type: boolean
created_at:
example: "2026-04-14T08:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
file_attachment_id:
example: 019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e
type: string
file_name:
example: Before Flight Checklist.pdf
type: string
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
helicopter_name:
example: AIRBUS H145
type: string
is_mandatory:
example: true
type: boolean
is_template:
example: true
type: boolean
position:
example: 1
type: integer
section:
example: bfi
type: string
updated_at:
example: "2026-04-14T08:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_shared.HelicopterFoto:
properties:
download_url:
example: https://storage.example.com/helicopter/foto.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
original_size_bytes:
example: 1024000
type: integer
thumbnail_download_url:
example: https://storage.example.com/helicopter/foto.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123
type: string
uuid:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type: object
wucher_internal_transport_http_dto_shared.HelicopterInspectionFilesChecklist:
properties:
completed:
example: 47
type: integer
total:
example: 47
type: integer
type: object
wucher_internal_transport_http_dto_shared.HelicopterLastDailyBase:
properties:
base_abbreviation:
example: G1
type: string
base_name:
example: Gallus 1 - Zurs Lech
type: string
id:
example: 018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d
type: string
type:
example: hems
type: string
type: object
wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection:
properties:
base:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyBase'
inspected_at:
example: "2026-05-25T07:47:00Z"
type: string
inspection_files_checklist:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterInspectionFilesChecklist'
inspection_id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
inspector:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspector'
status:
example: inspected_cleared
type: string
utc_time:
example: "07:47"
type: string
type: object
wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspector:
properties:
id:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
license_no:
example: "4521"
type: string
name:
example: Teodora Lesmana
type: string
type: object
wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes:
properties:
due:
example: "1200"
type: string
ext:
example: "1300"
type: string
inspection_type:
example: A/F
type: string
type:
example: 100H
type: string
type: object
wucher_internal_transport_http_dto_shared.ReserveAcAircraftSummary:
properties:
aog:
example: false
type: boolean
designation:
example: AIRBUS H145
type: string
id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
identifier:
example: D-HYAR
type: string
is_active:
example: true
type: boolean
type:
example: H145
type: string
type: object
wucher_internal_transport_http_dto_shared.ReserveAcAttributes:
properties:
created_at:
example: "2026-04-14T08:00:00Z"
type: string
created_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
deleted_at:
example: "2026-04-14T08:00:00Z"
type: string
deleted_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
flight_id:
example: 019d6773-ccca-71dd-b9c7-8e6f531deb90
type: string
helicopter:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcAircraftSummary'
helicopter_id:
example: 019d6771-5fb5-7337-837f-bc5ed85181a1
type: string
inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary'
last_daily_inspection:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcLastDailyInfo'
status:
example: pending
type: string
updated_at:
example: "2026-04-14T08:00:00Z"
type: string
updated_by:
example: 019d61db-53c6-7280-87ec-e65f205c6d3b
type: string
type: object
wucher_internal_transport_http_dto_shared.ReserveAcBeforeInspectionFields:
properties:
fuel_added_amount:
type: number
fuel_amount:
type: number
fuel_unit:
type: string
hydraulic_lh_checked:
type: boolean
hydraulic_rh_checked:
type: boolean
note:
type: string
oil_engine_nr1_checked:
type: boolean
oil_engine_nr2_checked:
type: boolean
oil_transmission_igb_checked:
type: boolean
oil_transmission_mgb_checked:
type: boolean
oil_transmission_tgb_checked:
type: boolean
type: object
wucher_internal_transport_http_dto_shared.ReserveAcBeforeSectionDTO:
properties:
completed:
example: 1
type: integer
done_file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
fields:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcBeforeInspectionFields'
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
total:
example: 3
type: integer
type: object
wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO:
properties:
download_url:
example: https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=...
type: string
file_attachment_id:
example: 019d7000-aaaa-7bbb-8ccc-222222222222
type: string
file_name:
example: Before Flight Checklist.pdf
type: string
helicopter_file_id:
example: 019d7000-aaaa-7bbb-8ccc-111111111111
type: string
is_done:
example: false
type: boolean
is_mandatory:
example: true
type: boolean
type: object
wucher_internal_transport_http_dto_shared.ReserveAcFleetStatusFileSectionDTO:
properties:
completed:
example: 1
type: integer
done_file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
total:
example: 2
type: integer
type: object
wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary:
properties:
before:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcBeforeSectionDTO'
fleet_status_file:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFleetStatusFileSectionDTO'
id:
example: 019d6772-471c-7b70-b42a-d94020ef61e4
type: string
inspection_date:
example: "2026-04-15"
type: string
prepare:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcPrepareSectionDTO'
type: object
wucher_internal_transport_http_dto_shared.ReserveAcLastDailyInfo:
properties:
date:
example: 17.04.2026
type: string
name:
example: Ganahl Stefan
type: string
short_name:
example: GAN
type: string
utc_time:
example: "10:57"
type: string
type: object
wucher_internal_transport_http_dto_shared.ReserveAcPrepareFields:
properties:
notam_briefing:
type: boolean
operational_flight_plan:
type: boolean
weather_briefing:
type: boolean
type: object
wucher_internal_transport_http_dto_shared.ReserveAcPrepareSectionDTO:
properties:
completed:
example: 1
type: integer
done_file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
file_checklist:
items:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO'
type: array
prepare_fields:
$ref: '#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcPrepareFields'
total:
example: 3
type: integer
type: object
wucher_internal_transport_http_jsonapi.Document:
properties:
data: {}
meta: {}
type: object
wucher_internal_transport_http_jsonapi.ErrorDocument:
properties:
errors:
items:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorObject'
type: array
type: object
wucher_internal_transport_http_jsonapi.ErrorObject:
properties:
code:
type: string
detail:
type: string
error_code:
type: string
source:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorSource'
status:
type: string
title:
type: string
type: object
wucher_internal_transport_http_jsonapi.ErrorSource:
properties:
pointer:
type: string
type: object
wucher_internal_transport_http_jsonapi.Resource:
properties:
attributes:
additionalProperties: {}
type: object
id:
type: string
type:
type: string
type: object
info:
contact: {}
description: |-
Wucher backend API (JSON:API).
Auth Flow (Email/Password):
1) POST /api/v1/auth/register
2) Check email, open verify link (GET /api/v1/auth/verify-email)
3) POST /api/v1/auth/login
- If TOTP enabled: response 202 with challenge_token
4) POST /api/v1/auth/totp/verify (challenge_token + code) -> cookies
Auth Flow (TOTP setup):
1) POST /api/v1/auth/totp/setup -> secret + otpauth_url (enabled=false)
2) POST /api/v1/auth/totp/confirm -> enabled=true
Auth Flow (Microsoft Entra SSO):
1) GET /api/v1/auth/microsoft/login -> redirect to Microsoft
2) Microsoft redirects to /api/v1/auth/microsoft/callback
3) Backend checks existing SSO mapping (no auto-register)
4) If linked user exists -> set cookies + optional redirect to AUTH_SSO_SUCCESS_REDIRECT
5) If mapping not linked -> login rejected (401)
6) Existing authenticated user can link/unlink via /api/v1/auth/sso/link and /api/v1/auth/sso/unlink
title: Wucher API
version: "1.0"
paths:
/api/v1/action-signoffs/get-by-flight/{flight_id}:
get:
description: Returns the fleet-level (complaint-independent) corrective-action
sign-off state for a helicopter — `signed`, `signed_at`, `signed_by`. When
none exists yet it returns an unsigned placeholder. A signed sign-off is what
gates the EASA maintenance release.
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResponse'
summary: Get the current corrective-action sign-off for a helicopter
tags:
- Complaints - Sign Off
/api/v1/action-signoffs/sign/{helicopter_id}:
post:
consumes:
- application/json
description: 'Toggles the corrective-action sign-off for a helicopter. `sign`
(optional, default true) chooses the direction: true signs, false unsigns.
Send `complaint_id` to target a specific complaint''s sign-off — signing it
requires `action_taken` recorded (else 422 `ACTION_SIGNOFF_ACTION_REQUIRED`),
and 404 `ACTION_SIGNOFF_COMPLAINT_NOT_FOUND` if the complaint does not exist.
Omit `complaint_id` for a fleet-wide (complaint-independent) sign-off. A signed
sign-off is what allows an EASA maintenance release to be created for the
helicopter.'
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
- description: Optional complaint_id + note
in: body
name: request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Toggle the corrective-action sign-off (per complaint or fleet-wide)
tags:
- Complaints - Sign Off
/api/v1/after-flight-inspection/create:
post:
consumes:
- application/json
description: Create after-flight inspection and AFI file checklist for a flight
inspection.
parameters:
- description: Create last flights inspection request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create last flights inspection
tags:
- Flights - After Flights Inspection
/api/v1/after-flight-inspection/delete:
delete:
consumes:
- application/json
description: Delete after-flight inspection and AFI checklist rows by `flight_inspection_id`.
parameters:
- description: Delete last flights inspection request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete last flights inspection
tags:
- Flights - After Flights Inspection
/api/v1/after-flight-inspection/get:
get:
description: Get after-flight inspection detail and AFI file checklist by query
`inspection_id`.
parameters:
- description: Flight Inspection UUID
in: query
name: inspection_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get last flights inspection
tags:
- Flights - After Flights Inspection
/api/v1/after-flight-inspection/update:
patch:
consumes:
- application/json
description: Update after-flight inspection and AFI file checklist for a flight
inspection.
parameters:
- description: Update last flights inspection request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update last flights inspection
tags:
- Flights - After Flights Inspection
/api/v1/air-rescuer-checklist/{uuid}/items/create:
post:
consumes:
- application/json
description: |-
Create one or more items for an existing checklist.
Parent checklist is taken from path `uuid`.
Duplicate `position` is allowed. Display order for checklist_items is `position ASC, name ASC`.
Request is transactional: if one item fails, all item inserts in the batch are rolled back.
parameters:
- description: Checklist UUID
in: path
name: uuid
required: true
type: string
- description: Bulk checklist item create payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create checklist items (bulk)
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/{uuid}/items/reorder:
patch:
consumes:
- application/json
description: |-
Reorder one or more checklist items for the checklist in path `uuid`.
Use this endpoint to swap or reorder positions with a single PIN validation.
Duplicate `position` values remain allowed by domain rules.
Request is transactional: if one item fails, all position updates are rolled back.
parameters:
- description: Checklist UUID
in: path
name: uuid
required: true
type: string
- description: Checklist item reorder payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Reorder checklist items in one request
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/create:
post:
consumes:
- application/json
description: |-
Create one or more checklist headers for a single base.
Request uses `base_id`.
Each checklist can be created with or without initial `items`.
`scope_code` accepts persisted codes and English aliases. Stored codes remain: `TA`, `MO`, `DI`, `MI`, `DO`, `FR`, `SA`, `SO`, `M10`, `M15`, `M20`, `M25`, `DS`.
Example aliases: `DAILY` -> `TA`, `TU/TUE/TUESDAY` -> `DI`, `WE/WED/WEDNESDAY` -> `MI`, `TH/THU/THURSDAY` -> `DO`, `SU/SUN/SUNDAY` -> `SO`, `DEADLINE` -> `DS`.
`CAT` is a virtual overview tab and is not allowed for create/update payloads.
Duplicate `position` is allowed for both checklist headers and checklist items.
Display order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.
Request is transactional: if one checklist/item fails, the whole batch is rolled back.
parameters:
- description: Bulk checklist create payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create air rescuer checklist (bulk)
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/delete/{uuid}:
delete:
description: |-
Delete one checklist header by UUID.
Related checklist items are removed together following current implementation behavior.
parameters:
- description: Checklist UUID
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedListResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete air rescuer checklist
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/get-all:
get:
description: |-
Grouped by base and returned in `data[].attributes.bases`.
Response includes `tabs[]` with default tab order: `CAT`, `TA`, `MO`, `DI`, `MI`, `DO`, `FR`, `SA`, `SO`, `M10`, `M15`, `M20`, `M25`, `DS`.
`CAT` is a virtual overview tab (not persisted in DB).
`CAT.groups[]` only includes non-empty persisted scopes and does not include `checklist_items`.
Normal tabs are always present. Empty normal tabs are explicitly returned as `checklists: []`.
Scope display names: `CAT=Category`, `TA=Daily`, `MO=Monday`, `DI=Tuesday`, `MI=Wednesday`, `DO=Thursday`, `FR=Friday`, `SA=Saturday`, `SO=Sunday`, `M10=M10`, `M15=M15`, `M20=M20`, `M25=M25`, `DS=Deadline`.
Duplicate `position` is allowed. Display order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.
Optional filters: `base_id`, `category_type` (`regular|hems`), `base_name`, `base_abbreviation`, `scope_code` (`CAT`/`OVERVIEW` or persisted scope / aliases).
parameters:
- description: Filter by base UUID
in: query
name: base_id
type: string
- description: Filter by base category
enum:
- regular
- hems
in: query
name: category_type
type: string
- description: Filter by base name (contains, case-insensitive)
in: query
name: base_name
type: string
- description: Filter by base abbreviation (contains, case-insensitive)
in: query
name: base_abbreviation
type: string
- description: 'Filter by scope code. Allowed canonical: CAT, TA, MO, DI, MI,
DO, FR, SA, SO, M10, M15, M20, M25, DS. English aliases are also accepted.'
in: query
name: scope_code
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List air rescuer checklist grouped by base
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/get-all/dt:
get:
description: |-
Datatable variant for grouped air rescuer checklist data.
Semantic data is the same as `get-all`: grouped by base with `tabs[]`, virtual `CAT`, and normal tabs always present.
`CAT.groups[]` only includes non-empty persisted scopes and does not include `checklist_items`.
Empty normal tabs are explicitly returned as `checklists: []`.
Scope display names: `CAT=Category`, `TA=Daily`, `MO=Monday`, `DI=Tuesday`, `MI=Wednesday`, `DO=Thursday`, `FR=Friday`, `SA=Saturday`, `SO=Sunday`, `M10=M10`, `M15=M15`, `M20=M20`, `M25=M25`, `DS=Deadline`.
Duplicate `position` is allowed. Display order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.
Optional filters: `base_id`, `category_type` (`regular|hems`), `base_name`, `base_abbreviation`, `scope_code`.
Pagination/query controls: `page`, `size`, `limit`, `draw`.
parameters:
- description: Filter by base UUID
in: query
name: base_id
type: string
- description: Filter by base category
enum:
- regular
- hems
in: query
name: category_type
type: string
- description: Filter by base name (contains, case-insensitive)
in: query
name: base_name
type: string
- description: Filter by base abbreviation (contains, case-insensitive)
in: query
name: base_abbreviation
type: string
- description: 'Filter by scope code. Allowed canonical: CAT, TA, MO, DI, MI,
DO, FR, SA, SO, M10, M15, M20, M25, DS. English aliases are also accepted.'
in: query
name: scope_code
type: string
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20)
in: query
name: size
type: integer
- description: Page size override (max 100)
in: query
name: limit
type: integer
- description: Datatable draw counter
in: query
name: draw
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List air rescuer checklist grouped by base (datatable)
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/get/{uuid}:
get:
description: |-
Return one checklist detail by UUID.
Includes checklist header, base info, and `items` (`checklist_items`).
parameters:
- description: Checklist UUID
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get air rescuer checklist by UUID
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/items/delete/{item_uuid}:
delete:
description: Delete one existing checklist item by `item_uuid`.
parameters:
- description: Checklist item UUID
in: path
name: item_uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete one checklist item
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/items/update/{item_uuid}:
patch:
consumes:
- application/json
description: |-
Update one existing checklist item by `item_uuid`.
This endpoint only affects the selected item.
Duplicate `position` is allowed.
parameters:
- description: Checklist item UUID
in: path
name: item_uuid
required: true
type: string
- description: Checklist item update payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update one checklist item
tags:
- Air Rescuer Checklist
/api/v1/air-rescuer-checklist/update/{uuid}:
patch:
consumes:
- application/json
description: |-
Update checklist header fields (`scope_code`, `title`, `position`) and/or append `new_items`.
`new_items` is append-only. Existing items are not updated/deleted by this endpoint.
Item update/delete lifecycle must use dedicated item endpoints.
`scope_code` accepts persisted codes and English aliases, but `CAT` (or `OVERVIEW`) is not allowed for update payload.
Duplicate `position` is allowed.
Request is transactional.
parameters:
- description: Checklist UUID
in: path
name: uuid
required: true
type: string
- description: Checklist update payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update air rescuer checklist header and append new items
tags:
- Air Rescuer Checklist
/api/v1/audit-logs/get-all:
get:
description: JSON:API list with pagination, filtering and sorting.
parameters:
- description: Search by request_id/layer/action/method/path/message (contains)
in: query
name: filter[search]
type: string
- description: Method filter; single/comma-separated values or ALL/*
enum:
- POST
- PUT
- PATCH
- DELETE
- UPDATE
- ALL
- '*'
in: query
name: filter[method]
type: string
- description: Alias for filter[method]
enum:
- POST
- PUT
- PATCH
- DELETE
- UPDATE
- ALL
- '*'
in: query
name: method
type: string
- description: Module filter; single/comma-separated values or ALL/*
enum:
- air_rescuer_checklist
- audit_log
- auth
- base
- base_regular
- base_hems
- base_roster
- branding
- contact
- duty_roster
- facility
- federal_state
- file_manager
- flight
- flight_data
- forces_present
- health_insurance_company
- helicopter
- helicopter_file
- hems_roster
- hospital
- icao
- insurance_patient_data
- land
- master_setting
- medicine
- mission
- opc
- patient_data
- reserve_ac
- role
- user
- vocation
- unknown
- ALL
- '*'
in: query
name: filter[module]
type: string
- description: Alias for filter[module]
enum:
- air_rescuer_checklist
- audit_log
- auth
- base
- base_regular
- base_hems
- base_roster
- branding
- contact
- duty_roster
- facility
- federal_state
- file_manager
- flight
- flight_data
- forces_present
- health_insurance_company
- helicopter
- helicopter_file
- hems_roster
- hospital
- icao
- insurance_patient_data
- land
- master_setting
- medicine
- mission
- opc
- patient_data
- reserve_ac
- role
- user
- vocation
- unknown
- ALL
- '*'
in: query
name: module
type: string
- description: Action filter; single/comma-separated values or ALL/*
enum:
- list
- get
- create
- update
- delete
- export
- custom
- ALL
- '*'
in: query
name: filter[action]
type: string
- description: Alias for filter[action]
enum:
- list
- get
- create
- update
- delete
- export
- custom
- ALL
- '*'
in: query
name: action
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 200)
in: query
name: page[size]
type: integer
- description: Sort order
enum:
- created_at
- -created_at
- module
- -module
- action
- -action
- layer
- -layer
- status_code
- -status_code
- success
- -success
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List audit logs
tags:
- Audit Logs
/api/v1/auth/email-otp/send:
post:
consumes:
- application/json
description: |-
Sends a one-time 6-digit OTP to user email using login challenge token from /auth/login.
Security controls: old OTP is invalidated, resend cooldown is enforced, and resend/hour quota is enforced.
parameters:
- description: JSON:API Email OTP send request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPSendRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPSendResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Send login OTP to email
tags:
- Auth - Email OTP
/api/v1/auth/email-otp/verify:
post:
consumes:
- application/json
description: |-
Verifies one-time OTP and completes login by issuing auth cookies.
OTP is one-time use, expires automatically, and failed attempts are limited and audited.
parameters:
- description: JSON:API Email OTP verify request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Verify login OTP from email
tags:
- Auth - Email OTP
/api/v1/auth/exchange:
post:
consumes:
- application/json
description: Accepts Microsoft token payload from frontend ssoSilent and issues
backend auth cookies.
parameters:
- description: JSON:API Exchange request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ExchangeRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TokenResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Exchange frontend Microsoft SSO token into backend session
tags:
- Auth
/api/v1/auth/forgot-password:
post:
consumes:
- application/json
description: Always returns a generic success response.
parameters:
- description: JSON:API Forgot password request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotPasswordRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Forgot password
tags:
- Auth - Forgot Password
/api/v1/auth/invite:
post:
consumes:
- application/json
description: Creates user without password and sends set-password link to email.
parameters:
- description: JSON:API Invite request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InviteRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Invite user
tags:
- Auth
/api/v1/auth/invite/resend-set-password:
post:
consumes:
- application/json
description: Triggers a new set-password invite email for an invited user by
user_id. Response is generic for security.
parameters:
- description: JSON:API resend set-password invite request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Resend set-password invite
tags:
- Auth
/api/v1/auth/login:
post:
consumes:
- application/json
description: |-
If TOTP enabled, returns 202 + challenge_token (use /auth/totp/verify).
If TOTP is not enabled, returns 202 + email OTP challenge_token (use /auth/email-otp/send then /auth/email-otp/verify).
parameters:
- description: JSON:API Login request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LoginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse'
"202":
description: Accepted
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LoginEmailOTPRequiredResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Login with email & password
tags:
- Auth
/api/v1/auth/logout:
post:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse'
summary: Logout (revoke refresh)
tags:
- Auth - Refresh
/api/v1/auth/me:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get current user
tags:
- Auth
/api/v1/auth/me/timezone:
patch:
consumes:
- application/json
parameters:
- description: JSON:API timezone update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update current user timezone
tags:
- Auth
/api/v1/auth/microsoft/callback:
get:
description: Completes Microsoft SSO login. Login succeeds only when SSO identity
is already linked to an existing user.
parameters:
- description: Authorization code
in: query
name: code
required: true
type: string
- description: State
in: query
name: state
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MicrosoftCallbackResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Microsoft Entra SSO callback
tags:
- Auth
/api/v1/auth/microsoft/front-channel-logout:
get:
description: OIDC front-channel logout endpoint. Configure this URL as the "Front-channel
logout URL" in Microsoft Entra. Microsoft loads it in a hidden iframe when
the user signs out at the IdP (or from another RP). It clears local auth cookies
and revokes the server-side session plus the stored Microsoft refresh token
for the browser that owns the request. It never redirects and always returns
200 so the IdP logout flow can complete.
produces:
- text/html
responses:
"200":
description: logged out
schema:
type: string
summary: Microsoft front-channel logout callback
tags:
- Auth - SSO
/api/v1/auth/microsoft/link:
get:
description: Returns JSON:API payload containing Microsoft authorization URL
for linking SSO to the current authenticated user.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
security:
- BearerAuth: []
summary: Microsoft Entra SSO link URL
tags:
- Auth
/api/v1/auth/microsoft/login:
get:
description: |-
Returns JSON:API payload containing Microsoft authorization URL.
Backend starts with silent session-check (`prompt=none`). If Microsoft session is inactive, callback automatically falls back to interactive login.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Microsoft Entra SSO login
tags:
- Auth
/api/v1/auth/microsoft/login-check:
get:
description: Returns JSON:API payload containing Microsoft authorization URL
with prompt=none for strict session check.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Microsoft Entra silent session check URL
tags:
- Auth
/api/v1/auth/microsoft/logout:
post:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Logout Microsoft OAuth session
tags:
- Auth - SSO
/api/v1/auth/microsoft/reauth:
get:
description: Starts a Microsoft reauthentication flow for supported sensitive
actions.
parameters:
- description: 'Supported values: pin_reset_request, pin_reset_confirm'
in: query
name: purpose
required: true
type: string
- description: Required when purpose=pin_reset_confirm
in: query
name: token
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Microsoft Entra SSO reauth URL
tags:
- Auth
/api/v1/auth/microsoft/refresh:
post:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TokenResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"428":
description: Precondition Required
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Refresh Microsoft access token
tags:
- Auth - SSO
/api/v1/auth/pin/change:
post:
consumes:
- application/json
parameters:
- description: JSON:API security PIN change request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Change security PIN
tags:
- Auth - PIN
/api/v1/auth/pin/forgot:
post:
consumes:
- application/json
description: Always returns a generic success response.
parameters:
- description: JSON:API forgot security PIN request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Forgot security PIN
tags:
- Auth - PIN
/api/v1/auth/pin/request-reset:
post:
consumes:
- application/json
description: Verifies current account password, then sends PIN reset email to
currently logged-in user when PIN is blocked.
parameters:
- description: JSON:API request security PIN reset payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINResetResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request security PIN reset email for blocked PIN
tags:
- Auth - PIN
/api/v1/auth/pin/reset:
post:
consumes:
- application/json
description: Resets security PIN using a re-auth method. For method=password,
send the single-use reset token from the email link plus password. For method=microsoft,
send only reauth_token from Microsoft re-auth.
parameters:
- description: JSON:API reset security PIN request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Reset security PIN
tags:
- Auth - PIN
/api/v1/auth/pin/setup:
post:
consumes:
- application/json
description: Creates a 6-digit security PIN for sensitive actions.
parameters:
- description: JSON:API security PIN setup request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Setup security PIN
tags:
- Auth - PIN
/api/v1/auth/pin/verify:
post:
consumes:
- application/json
description: Verifies PIN and returns a short-lived one-time action token.
parameters:
- description: JSON:API security PIN verify request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Verify security PIN for sensitive action
tags:
- Auth - PIN
/api/v1/auth/refresh:
post:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TokenResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Refresh access token
tags:
- Auth - Refresh
/api/v1/auth/register:
post:
consumes:
- application/json
description: |-
Creates user (public role: from AUTH_DEFAULT_ROLE, fallback: user) and sends verification link to email without issuing an auth session.
Next: open verify link -> then login.
parameters:
- description: JSON:API Register request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RegisterRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Register user with email & password
tags:
- Auth
/api/v1/auth/reset-password:
post:
consumes:
- application/json
description: Resets password using a single-use reset token.
parameters:
- description: JSON:API Reset password request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ResetPasswordRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Reset password
tags:
- Auth - Forgot Password
/api/v1/auth/sessions:
get:
description: Lists all active sessions/devices for current user.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List active sessions
tags:
- Auth - Refresh
/api/v1/auth/sessions/{session_id}:
delete:
description: Revokes one session/device immediately. Requires PIN action token
(header X-PIN-Verification-Token) with action=3d7d1d5f-ec48-4eca-a7ea-37f4f7927d06.
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete one session
tags:
- Auth - Refresh
/api/v1/auth/set-password:
post:
consumes:
- application/json
description: Sets first password for invited user and marks email as verified.
parameters:
- description: JSON:API Set password request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SetPasswordRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Set password from invite token
tags:
- Auth
/api/v1/auth/sso/link:
post:
consumes:
- application/json
description: Link Microsoft SSO identity to the authenticated user. SSO login
will only work after successful link.
parameters:
- description: JSON:API SSO link request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOLinkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOLinkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
security:
- BearerAuth: []
summary: Link Microsoft SSO to current user
tags:
- Auth
/api/v1/auth/sso/unlink:
delete:
consumes:
- application/json
description: Remove Microsoft SSO mapping from authenticated user.
parameters:
- description: JSON:API SSO unlink request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOUnlinkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.SSOUnlinkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
security:
- BearerAuth: []
summary: Unlink Microsoft SSO from current user
tags:
- Auth
/api/v1/auth/totp/confirm:
post:
consumes:
- application/json
description: Validates initial TOTP code and enables TOTP for future logins.
parameters:
- description: JSON:API TOTP confirm request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPConfirmRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Confirm TOTP setup
tags:
- Auth - TOTP
/api/v1/auth/totp/disable:
post:
consumes:
- application/json
parameters:
- description: JSON:API TOTP disable request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPDisableRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Disable TOTP
tags:
- Auth - TOTP
/api/v1/auth/totp/reset-setup:
post:
consumes:
- application/json
description: |-
Removes TOTP setup so the user can re-setup authenticator.
For method=pin, obtain token from /auth/pin/verify with action=0b5409b5-94f3-4aab-9de2-44b0ad5858f1 and send it in X-PIN-Verification-Token header.
parameters:
- description: JSON:API TOTP reset setup request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPResetSetupRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Reset TOTP setup
tags:
- Auth - TOTP
/api/v1/auth/totp/setup:
post:
consumes:
- application/json
description: Generates secret and otpauth URL. TOTP is NOT enabled until confirmed.
parameters:
- description: JSON:API TOTP setup request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPSetupRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPSetupResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Setup TOTP
tags:
- Auth - TOTP
/api/v1/auth/totp/verify:
post:
consumes:
- application/json
description: Completes login when TOTP is enabled and returns auth cookies.
parameters:
- description: JSON:API TOTP verify request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TOTPVerifyRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TokenResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Verify TOTP code
tags:
- Auth - TOTP
/api/v1/auth/verify-email:
get:
description: Confirms email verification after register.
parameters:
- description: Verification token
in: query
name: token
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Verify email
tags:
- Auth
/api/v1/auth/webauthn/login/begin:
post:
consumes:
- application/json
description: Creates WebAuthn assertion options for a user email.
parameters:
- description: JSON:API WebAuthn login begin request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnBeginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Begin WebAuthn login
tags:
- Auth - WebAuthn
/api/v1/auth/webauthn/login/finish:
post:
consumes:
- application/json
description: Verifies WebAuthn assertion and issues auth cookies.
parameters:
- description: JSON:API WebAuthn login finish request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.TokenResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Finish WebAuthn login
tags:
- Auth - WebAuthn
/api/v1/auth/webauthn/register/begin:
post:
consumes:
- application/json
description: Creates WebAuthn registration options for the authenticated user.
parameters:
- description: JSON:API WebAuthn register begin request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterBeginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnBeginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Begin WebAuthn registration
tags:
- Auth - WebAuthn
/api/v1/auth/webauthn/register/finish:
post:
consumes:
- application/json
description: Verifies WebAuthn registration response and stores the credential.
parameters:
- description: JSON:API WebAuthn register finish request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Finish WebAuthn registration
tags:
- Auth - WebAuthn
/api/v1/auth/webauthn/reset-setup:
post:
consumes:
- application/json
description: |-
Removes all registered WebAuthn credentials so the user can re-setup passkeys.
For method=pin, obtain token from /auth/pin/verify with action=1f7d457e-0a19-4a36-8d9f-2c66fd2369ab and send it in X-PIN-Verification-Token header.
parameters:
- description: JSON:API WebAuthn reset setup request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"429":
description: Too Many Requests
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Reset WebAuthn setup
tags:
- Auth - WebAuthn
/api/v1/bases/create:
post:
consumes:
- application/json
description: |-
Example request:
{"data":{"type":"base","attributes":{"base":"Lude Testing 2","base_abbreviation":"LOIG","base_category":"regular","address":"Lude Airfield","latitude":47.3769,"longitude":8.5417,"sortkey":1,"sms_alert":false,"checklist":false,"leg_time":"00:20","default_start_time_type":"FIXED","default_end_time_type":"FIXED","default_shift_start":"06:00","default_shift_end":"21:00","utc":"0","notes":"Main base","operational_shift_times":[{"date_start":"2026-06-15","date_end":"2026-06-15","start_time_type":"BMCT","end_time_type":"ECET"}]}}}
parameters:
- description: JSON:API base create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create base
tags:
- Bases
/api/v1/bases/delete/{uuid}:
delete:
parameters:
- description: Base UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete base
tags:
- Bases
/api/v1/bases/get-all:
get:
description: JSON:API list with filtering and sorting. This endpoint returns
all bases.
parameters:
- description: Base category
enum:
- regular
- hems
in: query
name: category_type
type: string
- description: Alias filter for base category
enum:
- regular
- hems
in: query
name: base_category
type: string
- description: Search by base/base_abbreviation/address/email/phone
in: query
name: search
type: string
- description: Filter by DUL flag (true/false)
in: query
name: dul
type: boolean
- description: Ignored
in: query
name: page
type: integer
- description: Ignored
in: query
name: size
type: integer
- description: Ignored
in: query
name: limit
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseListResponse'
summary: List bases
tags:
- Bases
/api/v1/bases/get-all/dt:
get:
parameters:
- description: Base category
enum:
- regular
- hems
in: query
name: category_type
type: string
- description: Alias filter for base category
enum:
- regular
- hems
in: query
name: base_category
type: string
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
- description: Filter by DUL flag (true/false)
in: query
name: dul
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseDataTableResponse'
summary: List bases (datatable)
tags:
- Bases
/api/v1/bases/get/{uuid}:
get:
parameters:
- description: Base UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get base by ID
tags:
- Bases
/api/v1/bases/update/{uuid}:
patch:
consumes:
- application/json
description: |-
Example request:
{"data":{"type":"hems_base","id":"<uuid>","attributes":{"base":"Lude Testing 2","base_abbreviation":"LOIG","base_category":"regular","address":"Lude Airfield","latitude":47.3769,"longitude":8.5417,"sortkey":1,"sms_alert":false,"checklist":false,"leg_time":"00:20","default_start_time_type":"FIXED","default_end_time_type":"FIXED","default_shift_start":"06:00","default_shift_end":"21:00","utc":"0","notes":"Main base","operational_shift_times":[{"date_start":"2026-06-15","date_end":"2026-06-15","start_time_type":"BMCT","end_time_type":"ECET"}]}}}
parameters:
- description: Base UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API base update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.BaseResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update base
tags:
- Bases
/api/v1/branding/login-content:
get:
description: |-
Return public stable login title and subtitle from active master settings with backend defaults.
Supports conditional requests with `If-None-Match` / `If-Modified-Since`.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_transport_http_handlers.loginBrandingContentDocument'
"304":
description: Not Modified
schema:
type: string
summary: Get login content
tags:
- Branding
/api/v1/branding/login-cover:
get:
description: |-
Return public stable login cover image for sign-in page.
Supports conditional requests with `If-None-Match` / `If-Modified-Since`.
produces:
- image/png
- image/jpeg
- image/webp
- image/svg+xml
- application/octet-stream
responses:
"200":
description: Login cover image binary
schema:
type: file
"304":
description: Not Modified
schema:
type: string
summary: Get login cover image
tags:
- Branding
/api/v1/branding/logo:
get:
description: |-
Return a stable company logo asset for frontend consumption.
Backend resolves private object storage internally (no presigned URL exposure) and serves fallback logo when managed logo is unavailable.
Supports conditional requests with `If-None-Match` / `If-Modified-Since`.
produces:
- image/png
- image/jpeg
- image/webp
- image/svg+xml
- application/octet-stream
responses:
"200":
description: Branding logo binary
schema:
type: file
"304":
description: Not Modified
schema:
type: string
summary: Get branding logo
tags:
- Branding
/api/v1/complaints/action-taken/create/{id}:
post:
consumes:
- application/json
description: 'Records the corrective action text taken for a complaint. Recording
the action does NOT sign it and does NOT lift the AOG grounding: signing the
action is a separate step at POST /api/v1/action-signoffs/sign/{helicopter_id}
(send complaint_id), and returning the aircraft to service requires a formal
release (a signed EASA release / CRS, or an NSR). The complaint stays open
until an EASA release fixes it.'
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: Action taken payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Record the corrective action for a complaint
tags:
- Complaints
/api/v1/complaints/action-taken/update/{id}:
patch:
consumes:
- application/json
description: Updates the previously-recorded corrective action text of a complaint.
Recording/updating the action does NOT sign it — signing is a separate step
at POST /api/v1/action-signoffs/sign/{helicopter_id} (send complaint_id).
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: Action taken payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update the recorded corrective action for a complaint
tags:
- Complaints
/api/v1/complaints/create:
post:
consumes:
- application/json
description: |-
Create a complaint (defect) for a flight inspection.
MEL severity (mel_severity, OPTIONAL): omit it to file a "pending_mel" complaint and classify later (via PATCH /complaints/update/{id}); it MUST be classified before recording action taken. A pending complaint does NOT ground the aircraft — grounding starts at classification. Values: 0 = NON-MEL (grounds immediately); 1 = A (1 day grace); 2 = B (3 days); 3 = C (10 days); 4 = D (120 days). After the grace period passes without action the aircraft becomes AOG.
NSR (Non-Safety Release) is its own flow — sign it at POST /api/v1/complaints/nsr/sign/{id} (cancel at /nsr/unsign/{id}); it is no longer set via create/update.
Optional fields: aircraft_hours_at_report.
To record the corrective action, use POST /api/v1/complaints/action-taken/create/{id} (a separate, explicitly-signed step) — it is no longer part of create/update.
parameters:
- description: JSON:API complaint create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create complaint
tags:
- Complaints
/api/v1/complaints/delete/{id}:
delete:
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete complaint
tags:
- Complaints
/api/v1/complaints/get-all:
get:
description: Lists complaints grouped by helicopter. Filter by date range on
the reported date, by the name of an involved person (reporter / MEL classifier
/ action signer / NSR decider — i.e. pilot/techniker), and by free-text search
on the complaint description.
parameters:
- description: Search complaint description
in: query
name: search
type: string
- description: Reported date lower bound (YYYY-MM-DD)
in: query
name: date_from
type: string
- description: Reported date upper bound (YYYY-MM-DD)
in: query
name: date_to
type: string
- description: Involved person name (pilot/techniker, partial match)
in: query
name: person
type: string
- description: Filter by helicopter ID (UUIDv7)
in: query
name: helicopter_id
type: string
- description: Sort complaints
in: query
name: sort
type: string
- default: 1
description: Page number
in: query
name: page
type: integer
- default: 20
description: Page size
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse'
summary: List complaints
tags:
- Complaints
/api/v1/complaints/get-all/dt:
get:
parameters:
- description: Search complaint description
in: query
name: search
type: string
- description: Reported date lower bound (YYYY-MM-DD)
in: query
name: date_from
type: string
- description: Reported date upper bound (YYYY-MM-DD)
in: query
name: date_to
type: string
- description: Involved person name (pilot/techniker, partial match)
in: query
name: person
type: string
- description: Filter by helicopter ID (UUIDv7)
in: query
name: helicopter_id
type: string
- description: Sort complaints
in: query
name: sort
type: string
- default: 1
description: Datatable draw counter
in: query
name: draw
type: integer
- default: 0
description: Datatable start offset
in: query
name: start
type: integer
- default: 10
description: Datatable page length
in: query
name: length
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedDataTableResponse'
summary: List complaints grouped by helicopter (datatable)
tags:
- Complaints
/api/v1/complaints/get-by-helicopter/{helicopter_id}:
get:
parameters:
- description: Helicopter ID
in: path
name: helicopter_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse'
summary: List complaints by helicopter
tags:
- Complaints
/api/v1/complaints/get/{id}:
get:
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get complaint by ID
tags:
- Complaints
/api/v1/complaints/hold-items/get-all:
get:
description: 'Returns the Hold Item List (HIL): complaints that are still OPEN
(not yet fixed by an EASA release) AND MEL-deferred (mel_severity > 0). Non-MEL
defects (which ground the aircraft immediately) and already-serviced complaints
are excluded. Same grouped shape and filters as get-all.'
parameters:
- description: From date — reported_at >= (YYYY-MM-DD). Legacy 'Von'.
in: query
name: date_from
type: string
- description: To date — reported_at <= (YYYY-MM-DD). Legacy 'bis'.
in: query
name: date_to
type: string
- description: Pilot/Technician name — matches reporter or action signer. Legacy
'Pilot/Techniker'.
in: query
name: person
type: string
- description: Search complaint description / MEL. Legacy 'Complains'.
in: query
name: search
type: string
- description: Helicopter ID (UUIDv7)
in: query
name: helicopter_id
type: string
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20)
in: query
name: page_size
type: integer
- description: Sort expression (e.g. reported_at DESC)
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List hold items (open MEL-deferred defects)
tags:
- Complaints
/api/v1/complaints/hold-items/get-all/dt:
get:
description: Datatable variant of the Hold Item List (open + MEL-deferred complaints).
Same filters as /hold-items/get-all (date_from, date_to, person, search, helicopter_id)
plus DataTables params (start, length, draw).
parameters:
- description: From date — reported_at >= (YYYY-MM-DD). Legacy 'Von'.
in: query
name: date_from
type: string
- description: To date — reported_at <= (YYYY-MM-DD). Legacy 'bis'.
in: query
name: date_to
type: string
- description: Pilot/Technician name — matches reporter or action signer.
in: query
name: person
type: string
- description: Search complaint description / MEL.
in: query
name: search
type: string
- description: Helicopter ID (UUIDv7)
in: query
name: helicopter_id
type: string
- description: DataTables start offset
in: query
name: start
type: integer
- description: DataTables page length
in: query
name: length
type: integer
- description: DataTables draw counter
in: query
name: draw
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List hold items (open MEL-deferred defects) — datatable
tags:
- Complaints
/api/v1/complaints/nsr/sign/{id}:
post:
consumes:
- application/json
description: 'Records an NSR decision on its own flow (separate from complaint
update): the aircraft is released to fly despite the open defect and is no
longer grounded by it. MEL must be classified first — an unassessed (pending_mel)
defect cannot be deferred, so a pending complaint returns 422. The complaint
stays OPEN and is only closed by a signed EASA release. Requires the complaint.nsr
permission.'
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: Optional NSR reason
in: body
name: request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Sign a Non-Safety Release (NSR / MEL deferral) for a complaint
tags:
- Complaints
/api/v1/complaints/nsr/unsign/{id}:
post:
description: 'Revokes the NSR decision: the deferral is lifted, so the still-open
defect grounds the aircraft again (AOG is recomputed). Requires the complaint.nsr
permission.'
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Cancel a Non-Safety Release for a complaint
tags:
- Complaints
/api/v1/complaints/update/{id}:
patch:
consumes:
- application/json
description: |-
Update a complaint. All attributes optional; only provided fields change.
mel_severity: 0 = NON-MEL (immediate AOG); 1 = A (1 day); 2 = B (3 days); 3 = C (10 days); 4 = D (120 days) — AOG after grace passes.
NSR is not set here — it is its own flow: POST /api/v1/complaints/nsr/sign/{id} (and /nsr/unsign/{id}).
Note: the corrective action is recorded via POST /api/v1/complaints/action-taken/create/{id} (a separate, signed step), not here.
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API complaint update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update complaint
tags:
- Complaints
/api/v1/contact/other:
get:
description: Lists master other-people whose name/mobile_phone/email matches
`q` (empty `q` = most recent). Pick one and pass its id as `other_person_id`
in a takeover's other_person to reuse without re-entering the data.
parameters:
- description: Search text (name / mobile_phone / email)
in: query
name: q
type: string
- description: Max results (default 20)
in: query
name: limit
type: integer
- description: Offset
in: query
name: offset
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonListResponse'
summary: Search reusable "other people" (non-staff) for the takeover picker
tags:
- Contact - Other People
/api/v1/contact/other/create:
post:
consumes:
- application/json
description: Registers a person in the other-people master so it can be reused
across takeovers. The (name, mobile_phone, email) identity must be unique.
parameters:
- description: Other person
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse'
summary: Create a reusable "other person" (non-staff)
tags:
- Contact - Other People
/api/v1/contact/other/delete/{id}:
delete:
description: Soft-deletes a master person. Existing takeover snapshots keep
their own copy of the data.
parameters:
- description: Other person id
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
summary: Delete a reusable "other person"
tags:
- Contact - Other People
/api/v1/contact/other/get/{id}:
get:
parameters:
- description: Other person id
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse'
summary: Get one reusable "other person"
tags:
- Contact - Other People
/api/v1/contact/other/update/{id}:
patch:
consumes:
- application/json
description: Replaces the name/mobile_phone/email of a master person. The new
identity must not collide with another person.
parameters:
- description: Other person id
in: path
name: id
required: true
type: string
- description: Other person
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse'
summary: Update a reusable "other person"
tags:
- Contact - Other People
/api/v1/contacts/{user_id}:
delete:
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete contact
tags:
- Contacts
get:
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get contact
tags:
- Contacts
patch:
consumes:
- application/json
description: |-
`data.type` must be `contact_update`.
Supports updating `role_id` and `role_ids` (multiple roles) in the same request. Sending `role_ids: []` clears all assigned roles.
Only one role-specific profile object is allowed in `attributes`. If provided, it must match one of the contact's assigned roles.
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API Contact update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update contact
tags:
- Contacts
/api/v1/contacts/{user_id}/chief-flags:
patch:
consumes:
- application/json
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API chief flags request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactChiefFlagsUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update chief flags
tags:
- Contacts
/api/v1/contacts/{user_id}/license:
patch:
consumes:
- application/json
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API license update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactLicenseUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update contact license fields
tags:
- Contacts
/api/v1/contacts/{user_id}/pilot-category:
patch:
consumes:
- application/json
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API pilot category request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactPilotCategoryUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update pilot category
tags:
- Contacts
/api/v1/contacts/{user_id}/role:
patch:
consumes:
- application/json
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API role update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactRoleUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update contact role
tags:
- Contacts
/api/v1/contacts/{user_id}/status:
patch:
consumes:
- application/json
parameters:
- description: User UUID
in: path
name: user_id
required: true
type: string
- description: JSON:API status update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactStatusUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactSimpleSuccessResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update contact active status
tags:
- Contacts
/api/v1/contacts/bulk-update:
post:
consumes:
- application/json
parameters:
- description: JSON:API bulk update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactBulkUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactSimpleSuccessResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Bulk update contacts status
tags:
- Contacts
/api/v1/contacts/create:
post:
consumes:
- application/json
description: |-
Create new contact user and role-specific profile.
`data.type` must be `contact_create`.
`role_ids` determines roles (use `role_id` only for backward compatibility). Every selected role must include its matching role-specific profile object in `attributes`.
parameters:
- description: JSON:API Contact create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create contact
tags:
- Contacts
/api/v1/contacts/get-all:
get:
description: 'Filter contacts by role and pilot_category. Sort values: name,
-name, first_name, -first_name, last_name, -last_name, email, -email, sortkey,
-sortkey, note, -note, is_active, -is_active, created_at, -created_at, updated_at,
-updated_at.'
parameters:
- description: 'Role: pilot|doctor|air_rescuer|technician|flight_assistant|staff'
in: query
name: role
type: string
- description: 'Pilot category: regular|freelance|dry_lease'
in: query
name: pilot_category
type: string
- description: Filter doctor chief flag
in: query
name: chief_doctor
type: boolean
- description: Filter technician chief flag
in: query
name: chief_technician
type: boolean
- description: Filter responsible complaint flag
in: query
name: responsible_complaint
type: boolean
- description: Filter pilot chief flag
in: query
name: chief_pilot
type: boolean
- description: Filter IFR qualified flag
in: query
name: ifr_qualified
type: boolean
- description: Search by username/email/name
in: query
name: search
type: string
- description: Sort order
in: query
name: sort
type: string
- description: Limit (default 20)
in: query
name: limit
type: integer
- description: Offset (default 0)
in: query
name: offset
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List contacts
tags:
- Contacts
/api/v1/contacts/get-all/dt:
get:
description: Datatable response with pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 1000)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
- description: Role filter
in: query
name: role
type: string
- description: Pilot category filter
in: query
name: pilot_category
type: string
- description: Filter doctor chief flag
in: query
name: chief_doctor
type: boolean
- description: Filter technician chief flag
in: query
name: chief_technician
type: boolean
- description: Filter responsible complaint flag
in: query
name: responsible_complaint
type: boolean
- description: Filter pilot chief flag
in: query
name: chief_pilot
type: boolean
- description: Filter IFR qualified flag
in: query
name: ifr_qualified
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ContactDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List contacts (datatable)
tags:
- Contacts
/api/v1/dul/create:
post:
consumes:
- application/json
description: 'Possible error code: DUL_INVALID_JSON, DUL_INVALID_UUID, DUL_DATE_INVALID,
DUL_VALIDATION_FAILED, DUL_CREATE_FAILED.'
parameters:
- description: DUL create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create DUL
tags:
- DUL
/api/v1/dul/delete/{id}:
delete:
description: 'Possible error code: DUL_INVALID_UUID, DUL_DELETE_FAILED.'
parameters:
- description: DUL ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete DUL
tags:
- DUL
/api/v1/dul/get-all:
get:
description: 'Possible error code: DUL_LIST_FAILED.'
parameters:
- description: Search by name/info
in: query
name: search
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Page number alias
in: query
name: page
type: integer
- description: Page size alias
in: query
name: size
type: integer
- description: Page size alias
in: query
name: limit
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List DUL grouped by base
tags:
- DUL
/api/v1/dul/get-all/dt:
get:
description: 'Possible error code: DUL_LIST_FAILED.'
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search by name/info
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List DUL grouped by base (datatable)
tags:
- DUL
/api/v1/dul/get/{id}:
get:
description: 'Possible error code: DUL_INVALID_UUID, DUL_NOT_FOUND.'
parameters:
- description: DUL ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get DUL by ID
tags:
- DUL
/api/v1/dul/update/{id}:
patch:
consumes:
- application/json
description: 'Possible error code: DUL_INVALID_JSON, DUL_INVALID_UUID, DUL_DATE_INVALID,
DUL_VALIDATION_FAILED, DUL_NOT_FOUND, DUL_UPDATE_FAILED.'
parameters:
- description: DUL ID
in: path
name: id
required: true
type: string
- description: DUL update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.DULResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update DUL
tags:
- DUL
/api/v1/duty-roster/create:
post:
consumes:
- application/json
description: Unified endpoint for all base categories.
parameters:
- description: Create request payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create duty roster
tags:
- Flights - Duty Roster
/api/v1/duty-roster/crew:
delete:
consumes:
- application/json
description: Unified crew delete endpoint by `data.id` and `roster_detail`.
parameters:
- description: Crew delete request payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Remove duty roster crew assignment
tags:
- Flights - Duty Roster
/api/v1/duty-roster/delete:
delete:
consumes:
- application/json
description: Unified delete endpoint by `data.id`.
parameters:
- description: Delete request payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete duty roster
tags:
- Flights - Duty Roster
/api/v1/duty-roster/get-all:
get:
description: Combined roster list across HEMS and Base for date range and optional
base filters.
parameters:
- description: HEMS base UUID
in: query
name: hems_base_id
type: string
- description: Base UUID
in: query
name: base_id
type: string
- description: Filter by base name (contains, case-insensitive)
in: query
name: base_name
type: string
- description: Start date (YYYY-MM-DD)
in: query
name: from
type: string
- description: End date (YYYY-MM-DD)
in: query
name: to
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List all rosters (HEMS + Base)
tags:
- Flights - Duty Roster
/api/v1/duty-roster/get-all/dt:
get:
description: 'Unified datatable endpoint. Optional `base_type` filter: `hems`
or `base`.'
parameters:
- description: Base type filter (hems|base)
in: query
name: base_type
type: string
- description: Base UUID
in: query
name: base_id
type: string
- description: Filter by base name
in: query
name: base_name
type: string
- description: Start date (YYYY-MM-DD)
in: query
name: from
type: string
- description: End date (YYYY-MM-DD)
in: query
name: to
type: string
- description: Page number
in: query
name: page
type: integer
- description: Page size
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
- description: Draw counter
in: query
name: draw
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterGroupedDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List duty roster (datatable)
tags:
- Flights - Duty Roster
/api/v1/duty-roster/update:
patch:
consumes:
- application/json
description: Unified update endpoint by `data.id`.
parameters:
- description: Update request payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update duty roster (partial)
tags:
- Flights - Duty Roster
/api/v1/easa-releases/create:
post:
consumes:
- application/json
parameters:
- description: JSON:API EASA release create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
summary: Create EASA maintenance release (draft) for a helicopter
tags:
- EASA Releases
/api/v1/easa-releases/delete/{id}:
delete:
parameters:
- description: EASA release ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseDeleteResponse'
summary: Delete (void) an EASA release
tags:
- EASA Releases
/api/v1/easa-releases/get-by-complaint/{complaint_id}:
get:
parameters:
- description: Complaint ID (UUIDv7)
in: path
name: complaint_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
summary: Get the current EASA release for a complaint
tags:
- EASA Releases
/api/v1/easa-releases/get-by-flight/{flight_id}:
get:
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
summary: Get the current EASA release for a flight
tags:
- EASA Releases
/api/v1/easa-releases/get-by-helicopter/{helicopter_id}:
get:
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseListResponse'
summary: List EASA releases for a helicopter
tags:
- EASA Releases
/api/v1/easa-releases/get/{id}:
get:
parameters:
- description: EASA release ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
summary: Get EASA release by ID
tags:
- EASA Releases
/api/v1/easa-releases/sign/{id}:
post:
description: 'Signs the release and closes the helicopter''s open complaints.
The corrective-action sign-off is re-checked at sign time: if the sign-off
was invalidated since the draft was created (e.g. its complaint was reopened)
it returns 422 `EASA_RELEASE_SIGNOFF_REQUIRED` and does not sign.'
parameters:
- description: EASA release ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Sign the EASA maintenance release (closes the helicopter's open complaints)
tags:
- EASA Releases
/api/v1/easa-releases/update/{id}:
patch:
consumes:
- application/json
parameters:
- description: EASA release ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API EASA release update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse'
summary: Update EASA release (draft fields)
tags:
- EASA Releases
/api/v1/facilities/create:
post:
consumes:
- application/json
description: Create a facility row using one shared table. Flight-data SPO references
now expect categories like `heslo-rope-label`, `heslo-rope-length`, `heslo-hook`,
`hec-rope-label`, and `hec-rope-length`.
parameters:
- description: JSON:API Facility create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create facility
tags:
- Facility - Facilities
/api/v1/facilities/delete/{uuid}:
delete:
parameters:
- description: Facility UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete facility
tags:
- Facility - Facilities
/api/v1/facilities/get-all:
get:
description: JSON:API list with pagination, filtering and sorting. Supports
one shared table with category discriminator (e.g. `heslo-rope-label`, `heslo-hook`,
`hec-rope-label`).
parameters:
- description: Search by name/type/length/weight
in: query
name: search
type: string
- description: Filter by category (e.g. heslo-rope-label, heslo-hook, hec-rope-label)
in: query
name: category
type: string
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityListResponse'
summary: List facilities
tags:
- Facility - Facilities
/api/v1/facilities/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
- description: Facility category
in: query
name: category
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityDataTableResponse'
summary: List facilities (datatable)
tags:
- Facility - Facilities
/api/v1/facilities/get/{uuid}:
get:
parameters:
- description: Facility UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get facility by ID
tags:
- Facility - Facilities
/api/v1/facilities/update/{uuid}:
patch:
consumes:
- application/json
description: Patch facility by ID.
parameters:
- description: Facility UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API Facility update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FacilityResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update facility (partial)
tags:
- Facility - Facilities
/api/v1/federal-state/create:
post:
consumes:
- application/json
description: Create a federal state row.
parameters:
- description: JSON:API federal state create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create federal state
tags:
- Hospital - Federal State
/api/v1/federal-state/delete/{id}:
delete:
parameters:
- description: Federal State ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete federal state
tags:
- Hospital - Federal State
/api/v1/federal-state/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, sortkey, -sortkey, is_active, -is_active, created_at, -created_at,
updated_at, -updated_at.'
parameters:
- description: Search by name
in: query
name: filter[search]
type: string
- description: Filter federal state by land UUID
in: query
name: land_id
type: string
- description: Filter federal state by land name
in: query
name: land_name
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateListResponse'
summary: List federal state
tags:
- Hospital - Federal State
/api/v1/federal-state/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
- description: Search by name
in: query
name: filter[search]
type: string
- description: Filter federal state by land UUID
in: query
name: land_id
type: string
- description: Filter federal state by land name
in: query
name: land_name
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateDataTableResponse'
summary: List federal state (datatable)
tags:
- Hospital - Federal State
/api/v1/federal-state/update/{id}:
patch:
consumes:
- application/json
description: Patch federal state by ID.
parameters:
- description: Federal State ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API federal state update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FederalStateResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update federal state (partial)
tags:
- Hospital - Federal State
/api/v1/file-manager/attachments/create:
post:
consumes:
- application/json
description: Create generic attachment relation between a file and business
reference (ref_type/ref_id).
operationId: FileManagerCreateAttachment
parameters:
- description: JSON:API attachment create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Attach file to business reference
tags:
- File Manager
/api/v1/file-manager/attachments/delete/{uuid}:
delete:
description: Remove generic attachment relation by UUID.
operationId: FileManagerDeleteAttachment
parameters:
- description: Attachment UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Detach attachment relation
tags:
- File Manager
/api/v1/file-manager/attachments/get-all:
get:
description: List generic attachment relations by ref_type and ref_id.
operationId: FileManagerListAttachmentsByReference
parameters:
- description: Business reference type, e.g. helicopter
in: query
name: ref_type
required: true
type: string
- description: Business reference ID
in: query
name: ref_id
required: true
type: string
- description: Optional attachment category
in: query
name: category
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: 'Sort values: sort_order,-sort_order,created_at,-created_at,updated_at,-updated_at'
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List attachments by business reference
tags:
- File Manager
/api/v1/file-manager/attachments/get/{uuid}:
get:
description: Get one generic attachment relation by UUID.
operationId: FileManagerGetAttachment
parameters:
- description: Attachment UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get attachment detail
tags:
- File Manager
/api/v1/file-manager/delete:
delete:
consumes:
- application/json
description: |-
Soft-delete multiple nodes by UUID. UUID can be folder or file.
Bulk payload accepts one or many items.
operationId: FileManagerDeleteNodesBulk
parameters:
- description: Bulk delete request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete nodes (file/folder) in bulk
tags:
- File Manager
/api/v1/file-manager/files/{fileId}/edit-session:
get:
consumes:
- application/json
description: |-
Returns a Collabora/WOPI write session for an already existing file that belongs to the authenticated user's takeover scope or to the authenticated user as an unattached draft.
This endpoint does not create or copy files. It only resolves the file, checks access, and mints a new access token.
Use this when reopening an existing file for editing.
Path param `fileId` must be a valid UUIDv7.
parameters:
- description: File UUID (UUIDv7)
in: path
name: fileId
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"403":
description: Forbidden
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Start a WOPI edit session for an existing file
tags:
- File Manager
/api/v1/file-manager/files/cancel-upload:
delete:
consumes:
- application/json
description: |-
Cancel pending upload intents before file entity creation.
This endpoint is intended for pre-create cleanup when FE uploaded to object storage but user cancels flow.
Bulk payload accepts one or many items.
operationId: FileManagerCancelUploadIntentBulk
parameters:
- description: Bulk cancel upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Cancel upload intent (bulk)
tags:
- File Manager
/api/v1/file-manager/files/create:
post:
consumes:
- application/json
description: |-
Final public control-plane step after direct PUT upload to S3 (bulk contract).
Verifies uploaded object per item from upload intent, then persists metadata+outbox durably and emits lifecycle status.
This endpoint does not upload binary data.
Public flow: POST /files/upload (intent+presign) -> PUT to S3 -> POST /files/create.
folder_id is optional; null/omitted means create in root folder.
Canonical JSON:API data.type is "file_manager_file_create" (legacy "file_manager_file" remains accepted for backward compatibility).
Bulk payload accepts one or many items.
operationId: FileManagerCreateFileFromUploadedObject
parameters:
- description: Bulk create payload for user profile image
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-aircraft-image:
post:
consumes:
- application/json
description: |-
Same as bulk create, but folder is resolved using hierarchy "__system_root_files__" -> "aircraft" -> "<aircraft designation>".
aircraft_uuid is required per item to resolve designation.
operationId: FileManagerCreateAircraftImageFromUploadedObject
parameters:
- description: Bulk create payload for aircraft image
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create aircraft image file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-base-image:
post:
consumes:
- application/json
description: |-
Same as bulk create, but folder is resolved using hierarchy "__system_root_files__" -> "bases" -> "<base-type>" -> "<base-name>".
base_uuid is required per item.
operationId: FileManagerCreateBaseImageFromUploadedObject
parameters:
- description: Bulk create payload for base image
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create base image file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-dul-image:
post:
consumes:
- application/json
description: |-
Finalize uploaded DUL image file(s) from upload intent.
If dul_uuid is provided, file is created under DUL folder hierarchy.
If dul_uuid is omitted, file is still created (unassigned), then can be attached during /api/v1/dul/create via file_uuid.
Possible status: 201 (all success), 207 (partial success), 400 (invalid json/create failed), 401 (unauthorized), 403 (forbidden), 404 (dul or file resources not found), 409 (upload-intent conflict), 422 (validation), 503 (DUL or file-manager service unavailable).
Possible error code: INVALID_REQUEST, USER_UNAUTHORIZED, FORBIDDEN_ACCESS, FILE_MANAGER_VALIDATION_FAILED, FILE_MANAGER_FILE_NOT_FOUND, FILE_MANAGER_UPLOAD_INTENT_NOT_FOUND, FILE_MANAGER_UPLOAD_INTENT_CONFLICT, DUL_NOT_FOUND, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_QUEUE_UNAVAILABLE, FILE_MANAGER_ATTACHMENT_SERVICE_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.
parameters:
- description: Bulk create payload for DUL image
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"403":
description: Forbidden
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create DUL image file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-from-template:
post:
consumes:
- application/json
description: |-
Copies a helicopter template file into a new draft file and returns a Collabora/WOPI write session for the newly created file.
This endpoint always marks the created file as `is_template=false` because the result is a normal working document, not a reusable template.
The source template must be a helicopter file that belongs to the same `helicopter_id` provided in the request.
`template_uuid` is the helicopter-file UUID, not the file UUID.
Request fields: `template_uuid`, `helicopter_id`, optional `takeover_id`, and `name`.
Success response includes the new `file_id`, Collabora editor action URL, an access token, and the token TTL in milliseconds.
parameters:
- description: Create-from-template payload
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"403":
description: Forbidden
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create file from template and start a WOPI edit session
tags:
- File Manager
/api/v1/file-manager/files/create-mission-file:
post:
consumes:
- application/json
description: |-
Materializes uploaded objects into folder "missions/<mission-uuid>", creates attachments (ref_type=mission), and links them to the mission so they appear in GET mission.
mission_uuid is required per item.
Possible error code: MISSION_FILE_INVALID_JSON, MISSION_FILE_VALIDATION, MISSION_FILE_INVALID_MISSION_UUID, MISSION_FILE_MISSION_NOT_FOUND, MISSION_FILE_SERVICE_UNAVAILABLE, MISSION_FILE_ACTION_FAILED, FILE_MANAGER_UPLOAD_INTENT_NOT_FOUND, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.
operationId: FileManagerCreateMissionFileFromUploadedObject
parameters:
- description: Bulk create payload for mission file
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create mission file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-takeover-file:
post:
consumes:
- application/json
description: Finalize uploaded takeover file(s) from upload intent. The takeover
relation is attached later from file_id during takeover create/update.
parameters:
- description: Bulk create payload for takeover file
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create takeover file node from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/create-user-image:
post:
consumes:
- application/json
description: |-
Same as bulk create, but folder is resolved using hierarchy "__system_root_files__" -> "user" -> "<username>-<user-uuid>".
user_uuid is required per item to resolve target user folder.
operationId: FileManagerCreateUserImageFromUploadedObject
parameters:
- description: Bulk create payload for user profile image
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create user profile image file record from uploaded object
tags:
- File Manager
/api/v1/file-manager/files/get/{uuid}:
get:
description: Return file metadata by UUID.
operationId: FileManagerGetFile
parameters:
- description: File UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileDetailResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get file detail
tags:
- File Manager
/api/v1/file-manager/files/update/{uuid}:
patch:
consumes:
- application/json
description: Update file metadata by UUID (rename and/or move folder).
operationId: FileManagerUpdateFileEntity
parameters:
- description: File UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API file manager file update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update file entity (rename and/or move)
tags:
- File Manager
/api/v1/file-manager/files/upload:
post:
consumes:
- application/json
description: |-
Control-plane endpoint to create upload intents and presigned PUT URLs for direct upload to S3 (bulk contract).
Binary does not flow through backend upload endpoint.
After successful PUT to S3, call POST /api/v1/file-manager/files/create with upload_intent_uuid.
Presigned URL TTL is controlled by backend storage config.
Bulk payload accepts one or many items. Response is item-based and supports partial success.
operationId: FileManagerRequestUploadIntent
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents + presigned PUT URLs
tags:
- File Manager
/api/v1/file-manager/files/upload-aircraft-image:
post:
consumes:
- application/json
description: |-
Same flow as file upload intent, but dedicated for aircraft image drag-drop flow.
Use together with /api/v1/file-manager/files/create-aircraft-image to force target folder "aircraft".
operationId: FileManagerRequestAircraftImageUploadIntent
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for aircraft drag-drop images
tags:
- File Manager
/api/v1/file-manager/files/upload-base-image:
post:
consumes:
- application/json
description: |-
Same flow as file upload intent, but dedicated for base image flow.
Use together with /api/v1/file-manager/files/create-base-image to force target folder under bases hierarchy.
operationId: FileManagerRequestBaseImageUploadIntent
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for base images
tags:
- File Manager
/api/v1/file-manager/files/upload-dul-image:
post:
consumes:
- application/json
description: |-
Dedicated upload-intent endpoint for DUL image flow.
Possible status: 201 (all success), 207 (partial success), 400 (invalid json), 401 (unauthorized), 403 (forbidden), 422 (validation), 503 (storage/queue/upload-intent service unavailable).
Possible error code: INVALID_REQUEST, USER_UNAUTHORIZED, FORBIDDEN_ACCESS, FILE_MANAGER_VALIDATION_FAILED, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_QUEUE_UNAVAILABLE, FILE_MANAGER_UPLOAD_INTENT_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"403":
description: Forbidden
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for DUL images
tags:
- File Manager
/api/v1/file-manager/files/upload-mission-file:
post:
consumes:
- application/json
description: |-
Dedicated upload-intent endpoint for mission file flow.
Use together with /api/v1/file-manager/files/create-mission-file to attach the file to a mission.
operationId: FileManagerRequestMissionFileUploadIntent
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for mission files
tags:
- File Manager
/api/v1/file-manager/files/upload-takeover-file:
post:
consumes:
- application/json
description: |-
Dedicated upload-intent endpoint for takeover file flow.
Use together with /api/v1/file-manager/files/create-takeover-file to persist the takeover file relation.
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for takeover files
tags:
- File Manager
/api/v1/file-manager/files/upload-user-image:
post:
consumes:
- application/json
description: |-
Same flow as file upload intent, but dedicated for user profile image flow.
Use together with /api/v1/file-manager/files/create-user-image to force target folder under user hierarchy.
operationId: FileManagerRequestUserImageUploadIntent
parameters:
- description: Bulk upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Request upload intents for user profile images
tags:
- File Manager
/api/v1/file-manager/folders/create:
post:
consumes:
- application/json
description: Create one folder metadata node under root or under provided parent_id.
operationId: FileManagerCreateFolder
parameters:
- description: JSON:API file manager folder create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create folder node
tags:
- File Manager
/api/v1/file-manager/folders/get/{uuid}:
get:
description: Return folder metadata by UUID.
operationId: FileManagerGetFolder
parameters:
- description: Folder UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderDetailResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get folder detail
tags:
- File Manager
/api/v1/file-manager/folders/update/{uuid}:
patch:
consumes:
- application/json
description: Update folder metadata by UUID (rename and/or move parent).
operationId: FileManagerUpdateFolder
parameters:
- description: Folder UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API file manager folder update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update folder node
tags:
- File Manager
/api/v1/file-manager/get-all:
get:
description: |-
Return merged direct children (folders + files) for optional parent_uuid (non-recursive).
If parent_uuid is omitted, response returns root level nodes.
If search is provided, performs a global name search across all folders and files (parent_uuid is ignored).
operationId: FileManagerListMergedExplorerNodes
parameters:
- description: Parent folder UUID
in: query
name: parent_uuid
type: string
- description: Search keyword (global name search across all folders and files)
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List merged explorer nodes
tags:
- File Manager
/api/v1/file-manager/move:
patch:
consumes:
- application/json
description: |-
Unified move endpoint. Each item UUID can be either folder UUID or file UUID.
destination_folder_uuid null/empty means move to root.
Bulk payload accepts one or many items.
operationId: FileManagerMoveNodesBulk
parameters:
- description: Bulk move request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodeMoveBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Move nodes (file/folder) in bulk
tags:
- File Manager
/api/v1/file-manager/purge-delete:
delete:
consumes:
- application/json
description: |-
Permanently delete multiple trashed nodes by UUID. UUID can be folder or file.
Bulk payload accepts one or many items.
operationId: FileManagerPurgeNodesBulkFromTrash
parameters:
- description: Bulk purge request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Purge nodes (file/folder) from trash in bulk
tags:
- File Manager
/api/v1/file-manager/restore:
patch:
consumes:
- application/json
description: |-
Restore multiple trashed nodes by UUID to original location.
Bulk payload accepts one or many items.
operationId: FileManagerRestoreNodesBulk
parameters:
- description: Bulk restore request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Restore nodes (file/folder) in bulk
tags:
- File Manager
/api/v1/file-manager/trash/get-all:
get:
description: Return merged trashed nodes (folders + files) for trash explorer.
operationId: FileManagerListMergedTrashItems
parameters:
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: 'Sort values: deleted_at,-deleted_at,name,-name,type,-type,size_bytes,-size_bytes'
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List merged trash items
tags:
- File Manager
/api/v1/fleet-status/create:
post:
consumes:
- application/json
description: Create fleet status with maintenance schedules and file attachments.
parameters:
- description: Fleet status create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create fleet status
tags:
- Fleet Status
/api/v1/fleet-status/delete/{id}:
delete:
description: Soft delete fleet status by ID.
parameters:
- description: Fleet status ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete fleet status
tags:
- Fleet Status
/api/v1/fleet-status/get-all:
get:
description: Lists every helicopter from the master, each with its latest fleet
status (or empty data when it has none). Paginated by helicopter.
parameters:
- default: 1
description: Page number
in: query
name: page
type: integer
- default: 20
description: Page size
in: query
name: page_size
type: integer
- description: Search helicopters by designation/identifier/type
in: query
name: filter
type: string
- description: 'Sort helicopters, example: designation'
in: query
name: sort
type: string
- description: 'Filter by operational status; comma-separated for multiple (e.g.
available,booked). Values: available, booked, aog, mcf'
in: query
name: status
type: string
- description: Filter by helicopter ID (UUIDv7); combined with status uses AND
logic
in: query
name: helicopter_id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List fleet status
tags:
- Fleet Status
/api/v1/fleet-status/get-all/dt:
get:
description: Lists every helicopter from the master, each with its latest fleet
status (or empty data when it has none). Paginated by helicopter.
parameters:
- default: 1
description: Datatable draw counter
in: query
name: draw
type: integer
- default: 0
description: Datatable start offset
in: query
name: start
type: integer
- default: 10
description: Datatable page length
in: query
name: length
type: integer
- description: Search helicopters by designation/identifier/type
in: query
name: search
type: string
- description: 'Sort helicopters, example: designation'
in: query
name: sort
type: string
- description: 'Filter by operational status; comma-separated for multiple (e.g.
available,booked). Values: available, booked, aog, mcf'
in: query
name: status
type: string
- description: Filter by helicopter ID (UUIDv7); combined with status uses AND
logic
in: query
name: helicopter_id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List fleet status (datatable)
tags:
- Fleet Status
/api/v1/fleet-status/get-by-helicopter/{helicopter_id}:
get:
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get latest fleet status by helicopter ID
tags:
- Fleet Status
/api/v1/fleet-status/get/{id}:
get:
parameters:
- description: Fleet status ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get fleet status by ID
tags:
- Fleet Status
/api/v1/fleet-status/history/{helicopter_id}:
get:
description: 'Unified timeline: maintenance servicing events merged with complaint/MEL/NSR/action/MCF/EASA/AOG
action events, newest first.'
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
- default: 1
description: Page number
in: query
name: page
type: integer
- default: 20
description: Page size
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetHistoryListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List fleet history (timeline) by helicopter
tags:
- Fleet Status
/api/v1/fleet-status/mark-serviced/{id}:
post:
description: Move current maintenance schedules into service logs, then clear
active schedules.
parameters:
- description: Fleet status ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusMarkServicedResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Mark fleet status serviced
tags:
- Fleet Status
/api/v1/fleet-status/update/{id}:
patch:
consumes:
- application/json
description: Update fleet status by ID with full replacement for schedules and
files.
parameters:
- description: Fleet status ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: Fleet status update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update fleet status
tags:
- Fleet Status
/api/v1/flight-data/create:
post:
consumes:
- application/json
description: |-
Create a flight data row.
Required field: `mission_id`. `co_pilot_id` is optional.
Swagger request example shows the complete common payload for an `SPO` mission. `SPO` is the default example shape, and for other mission types (`CAT` and `NCO`) you do not need to send the `hec`, `heslo`, or `logging` blocks. `rotor_brake_cycle` is optional for `SPO`, `CAT`, and `NCO`.
SPO facility references must point to facilities with categories: `heslo_rope_label_id -> heslo-rope-label`, `heslo.slings -> heslo-rope-length`, `logging.slings -> heslo-hook`, `hec.flights -> hec-rope-label`, and `hec.slings -> hec-rope-length`.
SPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.
Example request: {"data":{"type":"flight_data_create","attributes":{"mission_id":"019d6774-98e8-7fba-9ef4-3795c0da8a13"}}}
parameters:
- description: JSON:API flight data create request. Example is for SPO; CAT/NCO
can omit SPO-only blocks and other optional fields.
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create flight data
tags:
- Mission - Flight Data
/api/v1/flight-data/delete/{id}:
delete:
description: Soft delete flight data by UUID.
parameters:
- description: Flight Data UUID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete flight data by ID
tags:
- Mission - Flight Data
/api/v1/flight-data/get-all:
get:
description: |-
List flight data rows. Supports `date` for exact flight take-off date filtering (`YYYY-MM-DD`), plus `mission_id` and `flight_data_id` filters.
SPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.
parameters:
- description: Filter by flight take-off date (YYYY-MM-DD)
in: query
name: date
type: string
- description: Filter by mission UUID
in: query
name: mission_id
type: string
- description: Filter by flight-data UUID
in: query
name: flight_data_id
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List flight data
tags:
- Mission - Flight Data
/api/v1/flight-data/get-all/dt:
get:
description: |-
Datatable-friendly list of flight data rows. Supports `date` for exact flight take-off date filtering (`YYYY-MM-DD`), plus `mission_id` and `flight_data_id` filters.
Same payload shape as `get-all`, but with DataTables paging params (`start`, `length`, `draw`).
SPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.
parameters:
- description: DataTables draw counter
in: query
name: draw
type: integer
- description: Paging start offset
in: query
name: start
type: integer
- description: Paging length
in: query
name: length
type: integer
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
- description: Filter by flight take-off date (YYYY-MM-DD)
in: query
name: date
type: string
- description: Filter by mission UUID
in: query
name: mission_id
type: string
- description: Filter by flight-data UUID
in: query
name: flight_data_id
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List flight data (datatable)
tags:
- Mission - Flight Data
/api/v1/flight-data/get/{id}:
get:
description: |-
Get flight data detail by ID. Path `id` can be mission UUID, flight-data UUID, or flight UUID.
SPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.
parameters:
- description: Mission UUID / Flight Data UUID / Flight UUID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get flight data by ID
tags:
- Mission - Flight Data
/api/v1/flight-data/update/{id}:
patch:
consumes:
- application/json
description: |-
Update a flight data row by UUID.
Required field: `mission_id`. `co_pilot_id` is optional.
Swagger request example uses the same SPO-shaped payload as create, but this endpoint updates an existing flight-data row.
SPO facility references must point to facilities with categories: `heslo_rope_label_id -> heslo-rope-label`, `heslo.slings -> heslo-rope-length`, `logging.slings -> heslo-hook`, `hec.flights -> hec-rope-label`, and `hec.slings -> hec-rope-length`.
For frontend usage, send only the fields that need to change; omitted fields stay unchanged. `SPO` is the default example shape, and for `CAT`/`NCO` you do not need to send the `hec`, `heslo`, or `logging` blocks. `rotor_brake_cycle` is optional for `SPO`, `CAT`, and `NCO`.
SPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.
Example request: {"data":{"type":"flight_data_create","attributes":{"mission_id":"019d6774-98e8-7fba-9ef4-3795c0da8a13"}}}
parameters:
- description: Flight Data UUID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API flight data update request. Send only fields you want
to change; omit the rest.
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FlightDataUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update flight data by ID
tags:
- Mission - Flight Data
/api/v1/flights/get:
get:
description: |-
Returns flights assigned to current auth user, including workflow steps (`duty_roster`, `reserve_ac`, `mission`, `after_flight_inspection`, `fm_report`).
Each step includes `status`, `completed_at`, and `completed_by` for consistent FE rendering.
parameters:
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightListResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get flights for current auth user (from duty roster assignment)
tags:
- Flight
/api/v1/flights/get-all:
get:
description: |-
Supports `search`, `filter[search]`, `sort`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.
Supports `date` and `filter[date]` for exact flight date filtering (`YYYY-MM-DD`).
Returns paginated flights with workflow steps (`takeover`, `mission`, `after_flight_inspection`, `fm_report`).
Each step includes `status`, `completed_at`, and `completed_by` for consistent FE rendering.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Filter by flight date (YYYY-MM-DD)
in: query
name: date
type: string
- description: Filter by flight date (YYYY-MM-DD) (JSON:API style)
in: query
name: filter[date]
type: string
- description: Sort field
in: query
name: sort
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FlightListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List flights
tags:
- Flight
/api/v1/fm-reports/{id}:
delete:
description: Soft-delete an FM report by ID. Requires a verified security PIN.
parameters:
- description: FM Report ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: One-time security-PIN action token
in: header
name: X-PIN-Verification-Token
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete FM report
tags:
- Flight Report
/api/v1/fm-reports/{id}/attachments:
post:
consumes:
- application/json
description: 'After uploading the file to the presigned URL (from /attachments/upload-intent),
call this endpoint with the upload_intent_uuid, name, and category to create
the file node and attach it to the FM report. Valid categories: additional_fm_report,
briefing, weight_balance, ofp.'
parameters:
- description: FM Report ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: body with upload_intent_uuid, name, and category
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"201":
description: Created
schema:
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create FM report attachment from upload intent
tags:
- Flight Report
/api/v1/fm-reports/{id}/attachments/{att_id}:
delete:
description: Remove a specific attachment from an FM report. Verifies ownership
before deletion.
parameters:
- description: FM Report ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: Attachment ID (UUIDv7)
in: path
name: att_id
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete attachment from FM report
tags:
- Flight Report
/api/v1/fm-reports/{id}/attachments/upload-intent:
post:
consumes:
- application/json
description: Returns a presigned PUT URL and upload_intent_uuid. After uploading
the file to the presigned URL, call POST /fm-reports/{id}/attachments with
the upload_intent_uuid to create the file node and attach it to the report.
parameters:
- description: FM Report ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: body with name, content_type, size_bytes
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"201":
description: Created
schema:
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Request upload intent for FM report attachment
tags:
- Flight Report
/api/v1/fm-reports/complete/{flight_id}:
post:
description: 'Mark an FM report as completed for a flight. Once completed, the
report becomes read-only and flight data edits are locked. Requires a verified
security PIN: send the one-time token from POST /auth/pin/verify (action 1a75135b-430a-4592-83e1-6d27814185af)
in the X-PIN-Verification-Token header.'
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
- description: One-time security-PIN action token
in: header
name: X-PIN-Verification-Token
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportResponse'
"202":
description: PIN verification required
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Complete FM report
tags:
- Flight Report
/api/v1/fm-reports/get-all:
get:
description: Returns a paginated list of FM reports. Supports `search`, `filter[search]`,
`filter[flight_id]`, `filter[takeover_id]`, `filter[flight_inspection_id]`,
`filter[flight_date]`, `filter[has_engine1_gpc_n1]`, `filter[has_engine1_ptc_n2]`,
`filter[has_engine2_gpc_n1]`, `filter[has_engine2_ptc_n2]`, `sort`, `page[number]`,
`page[size]`, `page`, `size`, and `limit`.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Filter by flight ID
in: query
name: filter[flight_id]
type: string
- description: Filter by takeover ID
in: query
name: filter[takeover_id]
type: string
- description: Filter by flight inspection ID
in: query
name: filter[flight_inspection_id]
type: string
- description: Filter by flight date (YYYY-MM-DD)
in: query
name: filter[flight_date]
type: string
- description: Filter reports with or without engine1_gpc_n1
in: query
name: filter[has_engine1_gpc_n1]
type: boolean
- description: Filter reports with or without engine1_ptc_n2
in: query
name: filter[has_engine1_ptc_n2]
type: boolean
- description: Filter reports with or without engine2_gpc_n1
in: query
name: filter[has_engine2_gpc_n1]
type: boolean
- description: Filter reports with or without engine2_ptc_n2
in: query
name: filter[has_engine2_ptc_n2]
type: boolean
- description: 'Sort order: flight_date, -flight_date, created_at, -created_at,
updated_at, -updated_at, engine1_gpc_n1, -engine1_gpc_n1, engine1_ptc_n2,
-engine1_ptc_n2, engine2_gpc_n1, -engine2_gpc_n1, engine2_ptc_n2, -engine2_ptc_n2'
in: query
name: sort
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List FM reports
tags:
- Flight Report
/api/v1/fm-reports/get/{flight_id}:
get:
description: Returns a complete FM report for a flight. The persisted table
keeps only the report keys; the response preloads flight, missions, flight
inspection, and after-flight inspection details. It also embeds `fleet_status`
(next inspection / maintenance schedules + base hours, component summary,
EASA maintenance release) — a snapshot frozen when the report was created
at after-flight inspection, so later complaints / maintenance changes do not
alter a historical report. `fleet_status` is omitted when the helicopter has
no fleet status.
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get FM report by flight ID
tags:
- Flight Report
/api/v1/fm-reports/update/{flight_id}:
patch:
consumes:
- application/json
description: Update only the engine metric fields for an existing FM report.
All other FM report fields stay read-only on this endpoint. The response mirrors
the GET FM report and embeds the frozen `fleet_status` snapshot (next inspection
/ maintenance schedules + base hours, component summary, EASA maintenance
release).
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
- description: JSON:API FM report update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.FMReportResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update FM report metrics
tags:
- Flight Report
/api/v1/forces-present/create:
post:
consumes:
- application/json
description: Create a forces present row.
parameters:
- description: JSON:API forces present create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create forces present
tags:
- OPC - Forces Present
/api/v1/forces-present/delete/{uuid}:
delete:
parameters:
- description: Forces Present UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete forces present
tags:
- OPC - Forces Present
/api/v1/forces-present/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, sortkey, -sortkey, note, -note, is_active, -is_active, created_at,
-created_at, updated_at, -updated_at.'
parameters:
- description: Search by name/note
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentListResponse'
summary: List forces present
tags:
- OPC - Forces Present
/api/v1/forces-present/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentDataTableResponse'
summary: List forces present (datatable)
tags:
- OPC - Forces Present
/api/v1/forces-present/update/{uuid}:
patch:
consumes:
- application/json
description: Patch forces present by ID.
parameters:
- description: Forces Present UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API forces present update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ForcesPresentResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update forces present (partial)
tags:
- OPC - Forces Present
/api/v1/health-insurance-companies/create:
post:
consumes:
- application/json
description: Create a health insurance company row.
parameters:
- description: JSON:API health insurance company create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create health insurance company
tags:
- Hospital - Health Insurance Companies
/api/v1/health-insurance-companies/delete/{uuid}:
delete:
parameters:
- description: Health Insurance Company UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete health insurance company
tags:
- Hospital - Health Insurance Companies
/api/v1/health-insurance-companies/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, sortkey, -sortkey, state, -state, address, -address, mobile_number,
-mobile_number, email, -email, note, -note, is_active, -is_active, created_at,
-created_at, updated_at, -updated_at.'
parameters:
- description: Search by name/state/address/mobile/email
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyListResponse'
summary: List health insurance companies
tags:
- Hospital - Health Insurance Companies
/api/v1/health-insurance-companies/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyDataTableResponse'
summary: List health insurance companies (datatable)
tags:
- Hospital - Health Insurance Companies
/api/v1/health-insurance-companies/update/{uuid}:
patch:
consumes:
- application/json
description: Patch health insurance company by ID.
parameters:
- description: Health Insurance Company UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API health insurance company update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update health insurance company (partial)
tags:
- Hospital - Health Insurance Companies
/api/v1/helicopter-files/cancel-upload:
post:
consumes:
- application/json
description: |-
Cancel pending upload intents from helicopter file upload flow.
Bulk payload accepts one or many items.
parameters:
- description: Bulk helicopter file cancel upload intent request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Cancel helicopter file upload intent (bulk)
tags:
- Helicopter - Master File
/api/v1/helicopter-files/create:
post:
consumes:
- application/json
description: |-
Create helicopter file template record from upload intent.
Section allowed values: `bfi` (Before First Flight Inspection), `fpwb` (Flight Preparation and WB), `afi` (After Last Flight Inspection).
Required attributes: `section`, `helicopter_id`, `upload_intent_uuid`, `file_name`.
Optional attributes: `position`, `is_required`, `folder_uuid` (if omitted, file is created in root folder).
When `position` is omitted (or <= 0), backend auto-assigns next position per `helicopter_id + section`.
If file name already exists in target folder, existing file is reused and attached.
Supports single and bulk payload.
Single payload example: `{"data":{"type":"helicopter_file_create","attributes":{"section":"bfi","position":1,"is_required":true,"helicopter_id":"019d6771-5fb5-7337-837f-bc5ed85181a1","upload_intent_uuid":"019d6d0d-2de2-7db1-80a2-2862d43af620","file_name":"A.pdf"}}}`
Bulk payload example: `{"data":[{"type":"helicopter_file_create","attributes":{"section":"bfi","position":1,"is_required":true,"helicopter_id":"019d6771-5fb5-7337-837f-bc5ed85181a1","upload_intent_uuid":"019d6d0d-2de2-7db1-80a2-2862d43af620","file_name":"A.pdf"}}]}`
Note: OpenAPI 2.0 cannot express object-or-array union in one schema; request schema below represents bulk envelope.
parameters:
- description: JSON:API helicopter file create request (single object or bulk
array)
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create helicopter file
tags:
- Helicopter - Master File
/api/v1/helicopter-files/delete:
delete:
consumes:
- application/json
description: Delete helicopter file template record
parameters:
- description: JSON:API helicopter file delete request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileDeleteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete helicopter file
tags:
- Helicopter - Master File
/api/v1/helicopter-files/get-all:
get:
description: |-
List helicopter file template records grouped by helicopter.
Pagination is applied per helicopter group (not per file row), so one helicopter's files stay in the same page.
parameters:
- description: Search text
in: query
name: filter[search]
type: string
- description: Search text (fallback)
in: query
name: search
type: string
- description: Sort field
in: query
name: sort
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List helicopter files
tags:
- Helicopter - Master File
/api/v1/helicopter-files/get/{helicopter_id}:
get:
description: Return helicopter file template collection for selected helicopter
parameters:
- description: Helicopter ID
in: path
name: helicopter_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get helicopter files by helicopter ID
tags:
- Helicopter - Master File
/api/v1/helicopter-files/update:
patch:
consumes:
- application/json
description: |-
Update a helicopter file template record.
Section allowed values: `bfi` (Before First Flight Inspection), `fpwb` (Flight Preparation and WB), `afi` (After Last Flight Inspection).
Optional attributes: `section`, `position`, `is_required`, `helicopter_id`, `file_name`.
parameters:
- description: JSON:API helicopter file update request (single object or bulk
array)
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update helicopter file
tags:
- Helicopter - Master File
/api/v1/helicopter-files/upload:
post:
consumes:
- application/json
description: |-
Control-plane endpoint for helicopter file upload intent + presigned URL flow.
Public flow: POST /api/v1/helicopter-files/upload -> PUT to presigned URL -> POST /api/v1/helicopter-files/create.
Canonical type is `helicopter_file_upload`.
`required_headers` must be sent exactly as returned when doing PUT to `upload_url`.
Example `required_headers`: `{"content-type":"application/pdf","x-amz-acl":"private"}`
Supports single and bulk payload.
Single payload example: `{"data":{"type":"helicopter_file_upload","attributes":{"name":"A.pdf","content_type":"application/pdf","size_bytes":12345}}}`
Bulk payload example: `{"data":[{"type":"helicopter_file_upload","attributes":{"name":"A.pdf","content_type":"application/pdf","size_bytes":12345}}]}`
Note: OpenAPI 2.0 cannot express object-or-array union in one schema; request schema below represents bulk envelope.
parameters:
- description: Helicopter file upload intent request (single object or bulk
array)
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResponse'
"207":
description: Multi-Status
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Request upload intents + presigned PUT URLs (helicopter file)
tags:
- Helicopter - Master File
/api/v1/helicopter-usage/create:
post:
consumes:
- application/json
description: Create helicopter usage counters for a helicopter.
parameters:
- description: JSON:API helicopter usage create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create helicopter usage
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopter-usage/delete/{uuid}:
delete:
parameters:
- description: Helicopter Usage UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete helicopter usage
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopter-usage/get-all:
get:
description: 'JSON:API list without pagination. Sort values: helicopter_id,
-helicopter_id, total_landing, -total_landing, total_airframe_hours, -total_airframe_hours,
total_airframe_cycles, -total_airframe_cycles, total_engine_1_hours, -total_engine_1_hours,
total_engine_1_gpc_ng_n1, -total_engine_1_gpc_ng_n1, total_engine_1_ptc_nf_n2,
-total_engine_1_ptc_nf_n2, total_engine_1_ccc, -total_engine_1_ccc, total_engine_2_hours,
-total_engine_2_hours, total_engine_2_gpc_ng_n1, -total_engine_2_gpc_ng_n1,
total_engine_2_ptc_nf_n2, -total_engine_2_ptc_nf_n2, total_engine_2_ccc, -total_engine_2_ccc,
total_flight_report, -total_flight_report, total_hook_release, -total_hook_release,
total_rotor_brake_cycle, -total_rotor_brake_cycle, created_at, -created_at,
updated_at, -updated_at.'
parameters:
- description: Search by helicopter or usage ID
in: query
name: search
type: string
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageListResponse'
summary: List helicopter usage
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopter-usage/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageListResponse'
summary: List helicopter usage (datatable)
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopter-usage/get/{uuid}:
get:
parameters:
- description: Helicopter Usage UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get helicopter usage
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopter-usage/update/{uuid}:
patch:
consumes:
- application/json
parameters:
- description: Helicopter Usage UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API helicopter usage update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update helicopter usage (partial)
tags:
- Helicopter - Helicopter Usage
/api/v1/helicopters/{id}/reports/next-number:
post:
description: 'Returns report number format <identifier>-NNNN (example: SN0901-0001).
The identifier is used as the report-code prefix and the numeric suffix is
auto-incremented by backend per helicopter.'
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Generate next helicopter report number
tags:
- Facility - Helicopters
/api/v1/helicopters/create:
post:
consumes:
- application/json
description: Create a helicopter configuration row.
parameters:
- description: JSON:API Helicopter create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create helicopter
tags:
- Facility - Helicopters
/api/v1/helicopters/delete/{id}:
delete:
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete helicopter
tags:
- Facility - Helicopters
/api/v1/helicopters/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
designation, -designation, sortkey, -sortkey.'
parameters:
- description: Search by designation/identifier/type
in: query
name: filter[search]
type: string
- description: 'Filter by operational status; comma-separated for multiple (e.g.
available,booked). Values: available, booked, aog, mcf'
in: query
name: filter[status]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterListResponse'
summary: List helicopters
tags:
- Facility - Helicopters
/api/v1/helicopters/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
- description: 'Filter by operational status; comma-separated for multiple (e.g.
available,booked). Values: available, booked, aog, mcf'
in: query
name: status
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterDataTableResponse'
summary: List helicopters (datatable)
tags:
- Facility - Helicopters
/api/v1/helicopters/get/{id}:
get:
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get helicopter by ID
tags:
- Facility - Helicopters
/api/v1/helicopters/update/{id}:
patch:
consumes:
- application/json
description: Patch helicopter by ID.
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API Helicopter update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update helicopter (partial)
tags:
- Facility - Helicopters
/api/v1/hems-operation-category/create:
post:
consumes:
- application/json
description: Create a HEMS operation category.
parameters:
- description: JSON:API HEMS operation category create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create HEMS operation category
tags:
- Operation - Category
/api/v1/hems-operation-category/delete/{uuid}:
delete:
parameters:
- description: HEMS operation category UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete HEMS operation category
tags:
- Operation - Category
/api/v1/hems-operation-category/get-all:
get:
parameters:
- description: Search by name/type
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryListResponse'
summary: List HEMS operation categories
tags:
- Operation - Category
/api/v1/hems-operation-category/get-all/dt:
get:
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryDataTableResponse'
summary: List HEMS operation categories (datatable)
tags:
- Operation - Category
/api/v1/hems-operation-category/get/{uuid}:
get:
parameters:
- description: HEMS operation category UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get HEMS operation category by ID
tags:
- Operation - Category
/api/v1/hems-operation-category/update/{uuid}:
patch:
consumes:
- application/json
parameters:
- description: HEMS operation category UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API HEMS operation category update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update HEMS operation category (partial)
tags:
- Operation - Category
/api/v1/hems-operation/create:
post:
consumes:
- application/json
parameters:
- description: JSON:API HEMS operation create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create HEMS operation
tags:
- Operation - HEMS Operation
/api/v1/hems-operation/delete/{uuid}:
delete:
parameters:
- description: HEMS operation UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete HEMS operation
tags:
- Operation - HEMS Operation
/api/v1/hems-operation/get-all:
get:
parameters:
- description: Search by date
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationListResponse'
summary: List HEMS operations
tags:
- Operation - HEMS Operation
/api/v1/hems-operation/get-all/dt:
get:
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationDataTableResponse'
summary: List HEMS operations (datatable)
tags:
- Operation - HEMS Operation
/api/v1/hems-operation/get/{uuid}:
get:
parameters:
- description: HEMS operation UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get HEMS operation by ID
tags:
- Operation - HEMS Operation
/api/v1/hems-operation/update/{uuid}:
patch:
consumes:
- application/json
parameters:
- description: HEMS operation UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API HEMS operation update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update HEMS operation (partial)
tags:
- Operation - HEMS Operation
/api/v1/hems-operational-data/create:
post:
consumes:
- application/json
description: Create a HEMS operational data record.
parameters:
- description: JSON:API HEMS operational data create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create HEMS operational data
tags:
- Operation - HEMS Operational Data
/api/v1/hems-operational-data/delete/{uuid}:
delete:
parameters:
- description: HEMS operational data UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete HEMS operational data
tags:
- Operation - HEMS Operational Data
/api/v1/hems-operational-data/get-all:
get:
parameters:
- description: Search by location/notes/additional_info/terrain_index
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataListResponse'
summary: List HEMS operational data
tags:
- Operation - HEMS Operational Data
/api/v1/hems-operational-data/get-all/dt:
get:
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataDataTableResponse'
summary: List HEMS operational data (datatable)
tags:
- Operation - HEMS Operational Data
/api/v1/hems-operational-data/get/{uuid}:
get:
parameters:
- description: HEMS operational data UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get HEMS operational data by ID
tags:
- Operation - HEMS Operational Data
/api/v1/hems-operational-data/update/{uuid}:
patch:
consumes:
- application/json
parameters:
- description: HEMS operational data UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API HEMS operational data update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update HEMS operational data (partial)
tags:
- Operation - HEMS Operational Data
/api/v1/hospital/create:
post:
consumes:
- application/json
description: Create a hospital row.
parameters:
- description: JSON:API hospital create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create hospital
tags:
- Hospital - Hospital
/api/v1/hospital/delete/{uuid}:
delete:
parameters:
- description: Hospital UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete hospital
tags:
- Hospital - Hospital
/api/v1/hospital/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, hospital_name, -hospital_name, sortkey, -sortkey, address, -address,
landline_number, -landline_number, mobile_number, -mobile_number, email, -email,
note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by hospital name/address/contact
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalListResponse'
summary: List hospital
tags:
- Hospital - Hospital
/api/v1/hospital/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalDataTableResponse'
summary: List hospital (datatable)
tags:
- Hospital - Hospital
/api/v1/hospital/update/{uuid}:
patch:
consumes:
- application/json
description: Patch hospital by ID.
parameters:
- description: Hospital UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API hospital update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.HospitalResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update hospital (partial)
tags:
- Hospital - Hospital
/api/v1/icao/create:
post:
consumes:
- application/json
description: Create an ICAO row.
parameters:
- description: JSON:API ICAO create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create ICAO
tags:
- Hospital - ICAO
/api/v1/icao/delete/{uuid}:
delete:
parameters:
- description: ICAO UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete ICAO
tags:
- Hospital - ICAO
/api/v1/icao/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
icao_code, -icao_code, sortkey, -sortkey, address, -address, landline_number,
-landline_number, mobile_number, -mobile_number, email, -email, note, -note,
is_active, -is_active, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by icao_code/address/contact
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOListResponse'
summary: List ICAO
tags:
- Hospital - ICAO
/api/v1/icao/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAODataTableResponse'
summary: List ICAO (datatable)
tags:
- Hospital - ICAO
/api/v1/icao/update/{uuid}:
patch:
consumes:
- application/json
description: Patch ICAO by ID.
parameters:
- description: ICAO UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API ICAO update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ICAOResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update ICAO (partial)
tags:
- Hospital - ICAO
/api/v1/insurance-patient-data/create:
post:
consumes:
- application/json
description: Create an InsurancePatientData record.
parameters:
- description: JSON:API InsurancePatientData create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create insurance patient data
tags:
- PatientData - InsurancePatientData
/api/v1/insurance-patient-data/delete/{uuid}:
delete:
description: Soft delete InsurancePatientData by ID.
parameters:
- description: InsurancePatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete insurance patient data
tags:
- PatientData - InsurancePatientData
/api/v1/insurance-patient-data/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataListResponse'
summary: List insurance patient data
tags:
- PatientData - InsurancePatientData
/api/v1/insurance-patient-data/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataDataTableResponse'
summary: List insurance patient data (datatable)
tags:
- PatientData - InsurancePatientData
/api/v1/insurance-patient-data/get/{uuid}:
get:
description: Get a single InsurancePatientData record by UUID.
parameters:
- description: InsurancePatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get insurance patient data by ID
tags:
- PatientData - InsurancePatientData
/api/v1/insurance-patient-data/update/{uuid}:
patch:
consumes:
- application/json
description: Patch InsurancePatientData by ID.
parameters:
- description: InsurancePatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API InsurancePatientData update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update insurance patient data (partial)
tags:
- PatientData - InsurancePatientData
/api/v1/land/create:
post:
consumes:
- application/json
description: Create a land row.
parameters:
- description: JSON:API land create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create land
tags:
- Hospital - Land
/api/v1/land/delete/{id}:
delete:
parameters:
- description: Land ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete land
tags:
- Hospital - Land
/api/v1/land/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, sortkey, -sortkey, is_active, -is_active, created_at, -created_at,
updated_at, -updated_at.'
parameters:
- description: Search by name
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandListResponse'
summary: List land
tags:
- Hospital - Land
/api/v1/land/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 1000)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandDataTableResponse'
summary: List land (datatable)
tags:
- Hospital - Land
/api/v1/land/update/{id}:
patch:
consumes:
- application/json
description: Patch land by ID.
parameters:
- description: Land ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API land update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.LandResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update land (partial)
tags:
- Hospital - Land
/api/v1/master-settings/create:
post:
consumes:
- application/json
description: Create a master settings row.
parameters:
- description: JSON:API master settings create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create master settings
tags:
- Master Settings
/api/v1/master-settings/delete/{uuid}:
delete:
parameters:
- description: Master Settings UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Resource'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete master settings
tags:
- Master Settings
/api/v1/master-settings/get:
get:
description: Return singleton master settings object (latest active row).
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get current master settings
tags:
- Master Settings
/api/v1/master-settings/sso/microsoft:
get:
description: Get Microsoft Entra SSO settings from master settings.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get Microsoft Entra SSO settings
tags:
- Master Settings
put:
consumes:
- application/json
description: Create or update Microsoft Entra SSO settings as master settings.
parameters:
- description: JSON:API Microsoft Entra SSO upsert request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Upsert Microsoft Entra SSO settings
tags:
- Master Settings
/api/v1/master-settings/update/{uuid}:
patch:
consumes:
- application/json
description: Patch master settings by ID.
parameters:
- description: Master Settings UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API master settings update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update master settings (partial)
tags:
- Master Settings
/api/v1/mcf/get-by-helicopter/{helicopter_id}:
get:
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFListResponse'
summary: List MCFs for a helicopter
tags:
- MCF
/api/v1/mcf/get/{id}:
get:
parameters:
- description: MCF ID (UUIDv7)
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResponse'
summary: Get MCF by ID
tags:
- MCF
/api/v1/mcf/set/{helicopter_id}:
post:
consumes:
- application/json
description: Toggles and edits a helicopter's MCF. `active:true` (or omitted)
ACTIVATES/EDITS it — creates the draft if none is open (201), or UPDATES the
open draft with the provided check-flight fields (200; af_hours, landing_count,
utc_time, date, result, notes — all optional, partial edits allowed). Finalize
it via POST /mcf/sign/{id} (sign:true). `active:false` DEACTIVATES it — cancels
the open (unsigned) draft ("tidak jadi") and releases the MCF status; the
cancelled record stays in the list. A signed MCF is a real event and is not
cancelled.
parameters:
- description: Helicopter ID (UUIDv7)
in: path
name: helicopter_id
required: true
type: string
- description: JSON:API MCF set request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFSetRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResponse'
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Set a helicopter's MCF Yes/No — draft work endpoint (create/update
or cancel)
tags:
- MCF
/api/v1/mcf/sign/{id}:
post:
consumes:
- application/json
description: 'Finalizes an MCF''s check-flight. `sign` (optional, default true):
true FINALIZES it — af_hours, landing_count, utc_time, date, result required;
"passed" clears the aircraft from MCF, "failed" keeps it grounded. false UNSIGNS
it — reverts a signed MCF back to a draft (keeps the recorded data). Editing
draft fields is done via /mcf/set; cancelling via /mcf/set (active:false).'
parameters:
- description: MCF ID (UUIDv7)
in: path
name: id
required: true
type: string
- description: JSON:API MCF sign request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MCFResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Sign (finalize) or unsign an MCF — toggle by MCF id
tags:
- MCF
/api/v1/medicine-group/create:
post:
consumes:
- application/json
description: Create a medicine group row.
parameters:
- description: JSON:API medicine group create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create medicine group
tags:
- OPC - Medicine Group
/api/v1/medicine-group/delete/{uuid}:
delete:
parameters:
- description: Medicine Group UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete medicine group
tags:
- OPC - Medicine Group
/api/v1/medicine-group/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by group name
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List medicine groups
tags:
- OPC - Medicine Group
/api/v1/medicine-group/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List medicine groups (datatable)
tags:
- OPC - Medicine Group
/api/v1/medicine-group/update/{uuid}:
patch:
consumes:
- application/json
description: Patch medicine group by ID.
parameters:
- description: Medicine Group UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API medicine group update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineGroupResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update medicine group (partial)
tags:
- OPC - Medicine Group
/api/v1/medicine/create:
post:
consumes:
- application/json
description: Create a medicine row.
parameters:
- description: JSON:API medicine create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create medicine
tags:
- OPC - Medicine
/api/v1/medicine/delete/{uuid}:
delete:
parameters:
- description: Medicine UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete medicine
tags:
- OPC - Medicine
/api/v1/medicine/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Search covers
name, note, pack, unit, and column. Sort values: name, -name, sortkey, -sortkey,
note, -note, pack, -pack, unit, -unit, column, -column, is_active, -is_active,
created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by name/note/pack/unit/column
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineListResponse'
summary: List medicine
tags:
- OPC - Medicine
/api/v1/medicine/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineDataTableResponse'
summary: List medicine (datatable)
tags:
- OPC - Medicine
/api/v1/medicine/update/{uuid}:
patch:
consumes:
- application/json
description: Patch medicine by ID.
parameters:
- description: Medicine UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API medicine update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MedicineResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update medicine (partial)
tags:
- OPC - Medicine
/api/v1/mission-type/create:
post:
consumes:
- application/json
description: Create a mission category master record for use in mission flow.
parameters:
- description: JSON:API mission type create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionTypeResource'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create mission type
tags:
- Flights - Mission
/api/v1/mission-type/get-all:
get:
description: Returns all mission categories and their available subtypes.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionTypeListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List mission types with subtypes
tags:
- Flights - Mission
/api/v1/mission/create:
post:
consumes:
- application/json
description: |-
Create a mission and link it to a flight.
`type` must be one of: `HEMS`, `CAT`, `SPO`, `NCO`.
`subtype_id` is required when `type=HEMS` and must reference mission subcategory under `HEMS` category.
`subtype_id` must be empty when `type` is not `HEMS`.
parameters:
- description: JSON:API mission create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"409":
description: Conflict
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create mission
tags:
- Flights - Mission
/api/v1/mission/delete-by-id/{mission_id}:
delete:
description: Soft delete mission by its mission UUID. This also soft deletes
flight data rows linked to the mission.
parameters:
- description: Mission ID (UUIDv7)
in: path
name: mission_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete mission by mission ID
tags:
- Flights - Mission
/api/v1/mission/delete/{flight_id}:
delete:
description: Soft delete mission by linked flight ID.
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete mission
tags:
- Flights - Mission
/api/v1/mission/file/{mission_id}/{attachment_id}:
delete:
description: Detaches the file (by its attachment id) from the mission and deletes
the attachment.
parameters:
- description: Mission UUID
in: path
name: mission_id
required: true
type: string
- description: Attachment UUID (the file's attachment_id)
in: path
name: attachment_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Remove a file from a mission
tags:
- Flights - Mission
/api/v1/mission/get-all:
get:
description: Supports `search`, `filter[search]`, `flight_id`, `sort`, `page[number]`,
`page[size]`, `page`, `size`, and `limit`.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Filter by flight UUID
in: query
name: flight_id
type: string
- description: 'Filter missions by flight data status: draft, in_progress, or
completed'
in: query
name: flight_data_status
type: string
- description: 'Sort field: type|-type|flight_date|-flight_date|created_at|-created_at|updated_at|-updated_at'
in: query
name: sort
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List missions
tags:
- Flights - Mission
/api/v1/mission/get-all/dt:
get:
description: |-
Supports `search`, `filter[search]`, `date_from`, `date_to`, `mission_type`, `pilot_id`, `helicopter_id`, `sort`, `start`, `length`, `draw`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.
`date_from` and `date_to` filter flights by their mission date range (`YYYY-MM-DD`).
`mission_type` accepts `HEMS`, `CAT`, `SPO`, or `NCO`.
`pilot_id` filters missions where the pilot is assigned on the linked flight roster.
`helicopter_id` filters missions by the helicopter used in the linked flight takeover.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Filter by linked flight UUID
in: query
name: flight_id
type: string
- description: Mission date lower bound (YYYY-MM-DD)
in: query
name: date_from
type: string
- description: Mission date upper bound (YYYY-MM-DD)
in: query
name: date_to
type: string
- description: 'Mission type: HEMS|CAT|SPO|NCO'
in: query
name: mission_type
type: string
- description: Pilot user UUID
in: query
name: pilot_id
type: string
- description: Helicopter UUID
in: query
name: helicopter_id
type: string
- description: 'Sort field: type|-type|flight_date|-flight_date|created_at|-created_at|updated_at|-updated_at'
in: query
name: sort
type: string
- description: DataTables start index
in: query
name: start
type: integer
- description: DataTables page size
in: query
name: length
type: integer
- description: DataTables draw counter
in: query
name: draw
type: integer
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List missions (datatable)
tags:
- Flights - Mission
/api/v1/mission/get/{flight_id}:
get:
description: Get mission detail by linked flight ID.
parameters:
- description: Flight ID (UUIDv7)
in: path
name: flight_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get mission by flight ID
tags:
- Flights - Mission
/api/v1/mission/update/{mission_id}:
patch:
consumes:
- application/json
description: |-
Update mission type/subtype/note by mission ID, and optionally attach files already uploaded via `upload-mission-file`.
`type` must be one of: `HEMS`, `CAT`, `SPO`, `NCO`.
`subtype_id` is required when `type=HEMS` and must reference mission subcategory under `HEMS` category.
`subtype_id` must be empty when `type` is not `HEMS`.
`files[]` items reference an `upload_intent_uuid` (from `upload-mission-file`) and an optional display `name`.
parameters:
- description: Mission ID (UUIDv7)
in: path
name: mission_id
required: true
type: string
- description: JSON:API mission update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.MissionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update mission
tags:
- Flights - Mission
/api/v1/motor-reaction/create:
post:
consumes:
- application/json
description: Create a motor reaction row.
parameters:
- description: JSON:API motor reaction create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create motor reaction
tags:
- OPC - Motor Reaction
/api/v1/motor-reaction/delete/{uuid}:
delete:
parameters:
- description: Motor Reaction UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete motor reaction
tags:
- OPC - Motor Reaction
/api/v1/motor-reaction/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, score, -score, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by reaction name or score
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List motor reactions
tags:
- OPC - Motor Reaction
/api/v1/motor-reaction/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionDataTableResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: List motor reactions (datatable)
tags:
- OPC - Motor Reaction
/api/v1/motor-reaction/update/{uuid}:
patch:
consumes:
- application/json
description: Patch motor reaction by ID.
parameters:
- description: Motor Reaction UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API motor reaction update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.MotorReactionResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"503":
description: Service Unavailable
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update motor reaction (partial)
tags:
- OPC - Motor Reaction
/api/v1/opc/create:
post:
consumes:
- application/json
description: Create an OPC row.
parameters:
- description: JSON:API OPC create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create opc
tags:
- OPC - OPC
/api/v1/opc/delete/{uuid}:
delete:
parameters:
- description: OPC UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete opc
tags:
- OPC - OPC
/api/v1/opc/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
title, -title, sortkey, -sortkey, note, -note, is_active, -is_active, created_at,
-created_at, updated_at, -updated_at.'
parameters:
- description: Search by title/note
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcListResponse'
summary: List opc
tags:
- OPC - OPC
/api/v1/opc/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcDataTableResponse'
summary: List opc (datatable)
tags:
- OPC - OPC
/api/v1/opc/update/{uuid}:
patch:
consumes:
- application/json
description: Patch opc by ID.
parameters:
- description: OPC UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API OPC update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.OpcResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update opc (partial)
tags:
- OPC - OPC
/api/v1/patient-data/create:
post:
consumes:
- application/json
description: Create a PatientData record.
parameters:
- description: JSON:API PatientData create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create patient data
tags:
- PatientData - PatientData
/api/v1/patient-data/delete/{uuid}:
delete:
description: Soft delete PatientData by ID.
parameters:
- description: PatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete patient data
tags:
- PatientData - PatientData
/api/v1/patient-data/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
family_name, -family_name, first_name, -first_name, birth_date, -birth_date,
gender, -gender, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Search by family_name/first_name/svnr/email/phone/street
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataListResponse'
summary: List patient data
tags:
- PatientData - PatientData
/api/v1/patient-data/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search by family_name/first_name/svnr/email/phone/street
in: query
name: search
type: string
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataDataTableResponse'
summary: List patient data (datatable)
tags:
- PatientData - PatientData
/api/v1/patient-data/get/{uuid}:
get:
description: Get a single PatientData record by UUID.
parameters:
- description: PatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get patient data by ID
tags:
- PatientData - PatientData
/api/v1/patient-data/update/{uuid}:
patch:
consumes:
- application/json
description: Patch PatientData by ID.
parameters:
- description: PatientData UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API PatientData update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PatientDataResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update patient data (partial)
tags:
- PatientData - PatientData
/api/v1/public/branding/email-logo:
get:
description: |-
Return a stable company logo optimized for email clients like Outlook.
Backend prefers managed raster thumbnail/logo and falls back to backend-generated PNG when necessary.
Supports conditional requests with `If-None-Match` / `If-Modified-Since`.
produces:
- image/png
- image/jpeg
- image/gif
- application/octet-stream
responses:
"200":
description: Email-safe branding logo binary
schema:
type: file
"304":
description: Not Modified
schema:
type: string
summary: Get email-safe branding logo
tags:
- Branding
/api/v1/reserve-acs/create:
post:
consumes:
- application/json
description: Create reserve AC, create draft inspection, fill before + prepare
inspection payload, and assign to flight.
parameters:
- description: Create reserve AC request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create reserve aircraft assignment
tags:
- Flights - Reserve AC
/api/v1/reserve-acs/delete:
delete:
consumes:
- application/json
description: Delete reserve AC by body `data.id`.
parameters:
- description: Delete reserve AC request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcDeleteRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.Document'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete reserve AC
tags:
- Flights - Reserve AC
/api/v1/reserve-acs/get-all:
get:
description: Supports `search`, `filter[search]`, `sort`, `page[number]`, `page[size]`,
`page`, `size`, and `limit`.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Reserve AC UUID (exact match)
in: query
name: id
type: string
- description: Flight UUID (exact match)
in: query
name: flight_id
type: string
- description: Sort field
in: query
name: sort
type: string
- description: Page number
in: query
name: page[number]
type: integer
- description: Page size
in: query
name: page[size]
type: integer
- description: Page number (fallback)
in: query
name: page
type: integer
- description: Page size (fallback)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List reserve AC
tags:
- Flights - Reserve AC
/api/v1/reserve-acs/get-all/dt:
get:
description: Datatable list scoped by auth user. Admin can see all rows; non-admin
only sees reserve AC linked to own flight assignments.
parameters:
- description: Search text
in: query
name: search
type: string
- description: Search text (JSON:API style)
in: query
name: filter[search]
type: string
- description: Reserve AC UUID (exact match)
in: query
name: id
type: string
- description: Flight UUID (exact match)
in: query
name: flight_id
type: string
- description: Sort field
in: query
name: sort
type: string
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List reserve AC (datatable)
tags:
- Flights - Reserve AC
/api/v1/reserve-acs/get/{uuid}:
get:
description: Get reserve AC detail. Path `uuid` accepts reserve_ac id, and supports
fallback to flight id.
parameters:
- description: Reserve AC UUID or Flight UUID
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get reserve AC by UUID or flight UUID
tags:
- Flights - Reserve AC
/api/v1/reserve-acs/update:
patch:
consumes:
- application/json
description: Update reserve AC using body `data.id`.
parameters:
- description: Update reserve AC request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Update reserve AC
tags:
- Flights - Reserve AC
/api/v1/roles/{uuid}/permissions:
get:
description: Returns the permissions currently assigned to the given role. Pair
with /roles/permissions/get-all to pre-check a role-permission editor.
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionListResponse'
summary: List a role's assigned permissions
tags:
- Roles
post:
consumes:
- application/json
description: Assign one permission to a role. Idempotent if already assigned.
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API role permission assign request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Assign permission to role
tags:
- Roles
/api/v1/roles/{uuid}/permissions/{permission_uuid}:
delete:
description: Remove one permission from role.
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: Permission UUID (UUIDv7)
in: path
name: permission_uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Remove permission from role
tags:
- Roles
/api/v1/roles/{uuid}/permissions/assign-bulk:
post:
consumes:
- application/json
description: Assign multiple permissions to role. Idempotent for duplicates/already
assigned.
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API role permission bulk request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionListResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Assign permissions to role (bulk)
tags:
- Roles
/api/v1/roles/{uuid}/permissions/remove-bulk:
post:
consumes:
- application/json
description: Remove multiple permissions from role.
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API role permission bulk request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionRemoveBulkRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RolePermissionListResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Remove permissions from role (bulk)
tags:
- Roles
/api/v1/roles/create:
post:
consumes:
- application/json
description: Create a new role. Name is required and must be unique.
parameters:
- description: JSON:API Role create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create role
tags:
- Roles
/api/v1/roles/delete/{uuid}:
delete:
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete role
tags:
- Roles
/api/v1/roles/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, created_at, -created_at, updated_at, -updated_at.'
parameters:
- description: Filter by name (contains)
in: query
name: filter[name]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
- description: Set to 'permissions' to embed each role's assigned permissions
in: query
name: include
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleListResponse'
summary: List roles
tags:
- Roles
/api/v1/roles/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleDataTableResponse'
summary: List roles (datatable)
tags:
- Roles
/api/v1/roles/get/{uuid}:
get:
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get role by ID
tags:
- Roles
/api/v1/roles/permissions/{permission_uuid}:
patch:
consumes:
- application/json
description: Patch permission by ID. Currently supports updating requires_pin.
parameters:
- description: Permission UUID (UUIDv7)
in: path
name: permission_uuid
required: true
type: string
- description: JSON:API permission update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionResource'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update permission
tags:
- Roles
/api/v1/roles/permissions/get-all:
get:
description: Returns every permission grouped by its module, ordered by the
module registry. Optional filter[name] narrows by permission name/key.
parameters:
- description: Filter by name/key (contains)
in: query
name: filter[name]
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.PermissionGroupedResponse'
summary: List permissions grouped by module
tags:
- Roles
/api/v1/roles/update/{uuid}:
patch:
consumes:
- application/json
description: 'Patch role by ID. Provide at least one of: name, description.
Name must be unique if provided.'
parameters:
- description: Role UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API Role update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.RoleResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update role (partial)
tags:
- Roles
/api/v1/takeovers/create:
post:
consumes:
- application/json
description: |-
Atomic create for duty roster + crews + reserve AC + pre-flight inspection + flight. The takeover inspection payload also includes fleet status files under `inspection.fleet_status_file`.
Optional takeover file uploads can be included via `data.attributes.files[*]` using upload intent UUIDs.
Edited template draft files created earlier can be linked by passing `data.attributes.edited_template_file_ids[*]`.
parameters:
- description: Create takeover request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Create takeover in one request
tags:
- Flight - Takeovers
/api/v1/takeovers/delete/{id}:
delete:
parameters:
- description: Flight UUID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Delete takeover by flight UUID
tags:
- Flight - Takeovers
/api/v1/takeovers/get-all:
get:
description: Return composite takeover records built from flight, reserve AC,
duty roster, and inspection. The inspection payload includes `before`, `prepare`,
and `fleet_status_file`.
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: List takeovers
tags:
- Flight - Takeovers
/api/v1/takeovers/get/{id}:
get:
parameters:
- description: Flight UUID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Get takeover by flight UUID
tags:
- Flight - Takeovers
/api/v1/takeovers/update/{id}:
patch:
consumes:
- application/json
parameters:
- description: Flight UUID
in: path
name: id
required: true
type: string
- description: Update takeover request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument'
summary: Replace takeover by flight UUID
tags:
- Flight - Takeovers
/api/v1/users/create:
post:
consumes:
- application/json
description: Create a new user. Email, username, first name, last name and role_id
are required. Use role_ids to assign additional roles.
parameters:
- description: JSON:API User create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create user
tags:
- Users
/api/v1/users/delete/{uuid}:
delete:
parameters:
- description: User UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete user
tags:
- Users
/api/v1/users/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
email, -email, first_name, -first_name, last_name, -last_name, created_at,
-created_at, updated_at, -updated_at.'
parameters:
- description: Search by username/email/first_name/last_name (contains)
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserListResponse'
summary: List users
tags:
- Users
/api/v1/users/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserDataTableResponse'
summary: List users (datatable)
tags:
- Users
/api/v1/users/get/{uuid}:
get:
parameters:
- description: User UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Get user by ID
tags:
- Users
/api/v1/users/update/{uuid}:
patch:
consumes:
- application/json
description: Patch user by ID. Provide at least one attribute to update.
parameters:
- description: User UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API User update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.UserResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update user (partial)
tags:
- Users
/api/v1/vocation/create:
post:
consumes:
- application/json
description: Create a vocation row.
parameters:
- description: JSON:API vocation create request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationCreateRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Create vocation
tags:
- OPC - Vocation
/api/v1/vocation/delete/{uuid}:
delete:
parameters:
- description: Vocation UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Delete vocation
tags:
- OPC - Vocation
/api/v1/vocation/get-all:
get:
description: 'JSON:API list with pagination, filtering and sorting. Sort values:
name, -name, sortkey, -sortkey, note, -note, is_active, -is_active, created_at,
-created_at, updated_at, -updated_at.'
parameters:
- description: Search by name/note
in: query
name: filter[search]
type: string
- description: Page number (default 1)
in: query
name: page[number]
type: integer
- description: Page size (default 20, max 100)
in: query
name: page[size]
type: integer
- description: Sort order
in: query
name: sort
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationListResponse'
summary: List vocation
tags:
- OPC - Vocation
/api/v1/vocation/get-all/dt:
get:
description: Datatable response with simple pagination params.
parameters:
- description: Page number (default 1)
in: query
name: page
type: integer
- description: Page size (default 20, max 100)
in: query
name: size
type: integer
- description: Page size override (same as size)
in: query
name: limit
type: integer
- description: Draw counter (optional)
in: query
name: draw
type: integer
- description: Search term
in: query
name: search
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationDataTableResponse'
summary: List vocation (datatable)
tags:
- OPC - Vocation
/api/v1/vocation/update/{uuid}:
patch:
consumes:
- application/json
description: Patch vocation by ID.
parameters:
- description: Vocation UUID (UUIDv7)
in: path
name: uuid
required: true
type: string
- description: JSON:API vocation update request
in: body
name: request
required: true
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.VocationResponse'
"404":
description: Not Found
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/wucher_internal_transport_http_dto.ErrorResponse'
summary: Update vocation (partial)
tags:
- OPC - Vocation
swagger: "2.0"
tags:
- description: Corrective-action sign-off for a helicopter. After a complaint's action_taken
is recorded, it is signed off here (POST /action-signoffs/sign with complaint_id);
a fleet-wide sign-off (no complaint_id) is also supported. A signed sign-off is
the prerequisite for creating an EASA maintenance release.
name: Complaints - Sign Off