openapi: 3.0.3
info:
title: 'ORBIT API Documentation'
description: ''
version: 1.0.0
servers:
-
url: 'https://api.orbit.intranet.recentglobe.org'
tags:
-
name: Endpoints
description: ''
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'Obtain a bearer token via the OIDC login flow and send it as Authorization: Bearer <token>.'
security:
-
default: []
paths:
/api/v1:
get:
summary: ''
operationId: getApiV1
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'ORBIT API v1'
properties:
message:
type: string
example: 'ORBIT API v1'
tags:
- Endpoints
/api/v1/enums/event-types:
get:
summary: 'Get all event types.'
operationId: getAllEventTypes
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
status: 200
message: null
data:
-
value: conference
label: Conference
-
value: workshop
label: Workshop
-
value: lecture
label: Lecture
-
value: seminar
label: Seminar
-
value: meeting
label: Meeting
-
value: panel
label: Panel
-
value: exhibition
label: Exhibition
-
value: performance
label: Performance
-
value: other
label: Other
properties:
status:
type: integer
example: 200
message:
type: string
example: null
nullable: true
data:
type: array
example:
-
value: conference
label: Conference
-
value: workshop
label: Workshop
-
value: lecture
label: Lecture
-
value: seminar
label: Seminar
-
value: meeting
label: Meeting
-
value: panel
label: Panel
-
value: exhibition
label: Exhibition
-
value: performance
label: Performance
-
value: other
label: Other
items:
type: object
properties:
value:
type: string
example: conference
label:
type: string
example: Conference
tags:
- Endpoints
/api/v1/enums/event-formats:
get:
summary: 'Get all event formats.'
operationId: getAllEventFormats
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
status: 200
message: null
data:
-
value: in_person
label: 'In Person'
-
value: online
label: Online
-
value: hybrid
label: Hybrid
properties:
status:
type: integer
example: 200
message:
type: string
example: null
nullable: true
data:
type: array
example:
-
value: in_person
label: 'In Person'
-
value: online
label: Online
-
value: hybrid
label: Hybrid
items:
type: object
properties:
value:
type: string
example: in_person
label:
type: string
example: 'In Person'
tags:
- Endpoints
/api/v1/enums/seating-types:
get:
summary: 'Get all seating types.'
operationId: getAllSeatingTypes
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
status: 200
message: null
data:
-
value: theater
label: Theater
-
value: classroom
label: Classroom
-
value: boardroom
label: Boardroom
-
value: u_shape
label: 'U Shape'
-
value: banquet
label: Banquet
-
value: reception
label: Reception
-
value: hollow_square
label: 'Hollow Square'
-
value: cinema
label: Cinema
-
value: podium
label: Podium
-
value: horseshoe
label: Horseshoe
-
value: other
label: Other
properties:
status:
type: integer
example: 200
message:
type: string
example: null
nullable: true
data:
type: array
example:
-
value: theater
label: Theater
-
value: classroom
label: Classroom
-
value: boardroom
label: Boardroom
-
value: u_shape
label: 'U Shape'
-
value: banquet
label: Banquet
-
value: reception
label: Reception
-
value: hollow_square
label: 'Hollow Square'
-
value: cinema
label: Cinema
-
value: podium
label: Podium
-
value: horseshoe
label: Horseshoe
-
value: other
label: Other
items:
type: object
properties:
value:
type: string
example: theater
label:
type: string
example: Theater
tags:
- Endpoints
/api/v1/institutions:
get:
summary: 'Display a listing of institutions.'
operationId: displayAListingOfInstitutions
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
status: 200
message: null
data: []
properties:
status:
type: integer
example: 200
message:
type: string
example: null
nullable: true
data:
type: array
example: []
tags:
- Endpoints
post:
summary: 'Store a newly created institution.'
operationId: storeANewlyCreatedInstitution
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
code:
type: string
description: 'Must not be greater than 50 characters.'
example: 'n'
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
is_active:
type: boolean
description: ''
example: false
sort_order:
type: integer
description: 'Must be at least 0.'
example: 60
required:
- name
- code
/api/v1/calendar.ics:
get:
summary: 'Export all events as iCal format.'
operationId: exportAllEventsAsICalFormat
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Token required'
properties:
message:
type: string
example: 'Token required'
tags:
- Endpoints
'/api/v1/calendar/rooms/{room}.ics':
get:
summary: 'Export events for a specific room as iCal format.'
operationId: exportEventsForASpecificRoomAsICalFormat
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Token required'
properties:
message:
type: string
example: 'Token required'
tags:
- Endpoints
parameters:
-
in: path
name: room
description: ''
example: architecto
required: true
schema:
type: string
/api/v1/me:
get:
summary: 'Get the current authenticated user info.'
operationId: getTheCurrentAuthenticatedUserInfo
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
/api/v1/auth/logout:
post:
summary: 'Log the user out - invalidates the session.'
operationId: logTheUserOutInvalidatesTheSession
description: ''
parameters: []
responses: { }
tags:
- Endpoints
/api/v1/events/pending:
get:
summary: 'Get pending events (for managers).'
operationId: getPendingEventsforManagers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
/api/v1/events/batch-approve:
post:
summary: 'Batch approve multiple events.'
operationId: batchApproveMultipleEvents
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
event_ids:
type: array
description: 'Must be a valid UUID.'
example:
- 6ff8f7f6-1eb3-3525-be4a-3932c805afed
items:
type: string
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: g
nullable: true
required:
- event_ids
/api/v1/events/batch-reject:
post:
summary: 'Batch reject multiple events.'
operationId: batchRejectMultipleEvents
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
event_ids:
type: array
description: 'Must be a valid UUID.'
example:
- 6ff8f7f6-1eb3-3525-be4a-3932c805afed
items:
type: string
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: g
nullable: true
required:
- event_ids
/api/v1/push-subscriptions/vapid-key:
get:
summary: ''
operationId: getApiV1PushSubscriptionsVapidKey
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
/api/v1/push-subscriptions:
post:
summary: ''
operationId: postApiV1PushSubscriptions
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
endpoint:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: b
keys:
type: object
description: ''
example: []
properties:
auth:
type: string
description: ''
example: architecto
p256dh:
type: string
description: ''
example: architecto
required:
- auth
- p256dh
content_encoding:
type: string
description: ''
example: aes128gcm
enum:
- aesgcm
- aes128gcm
required:
- endpoint
- keys
- content_encoding
delete:
summary: ''
operationId: deleteApiV1PushSubscriptions
description: ''
parameters: []
responses: { }
tags:
- Endpoints
/api/v1/digest-subscriptions:
get:
summary: ''
operationId: getApiV1DigestSubscriptions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: ''
operationId: putApiV1DigestSubscriptions
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
types:
type: array
description: ''
example:
- weekly_upcoming
items:
type: string
enum:
- pending_approvals
- todays_events
- weekly_upcoming
/api/v1/notifications:
get:
summary: 'List notifications for the current user.'
operationId: listNotificationsForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
/api/v1/notifications/unread-count:
get:
summary: 'Get unread notification count for the current user.'
operationId: getUnreadNotificationCountForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
'/api/v1/notifications/{id}/read':
post:
summary: 'Mark a single notification as read.'
operationId: markASingleNotificationAsRead
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the notification.'
example: architecto
required: true
schema:
type: string
/api/v1/notifications/read-all:
post:
summary: 'Mark all notifications as read.'
operationId: markAllNotificationsAsRead
description: ''
parameters: []
responses: { }
tags:
- Endpoints
/api/v1/events:
get:
summary: 'Display a listing of events.'
operationId: displayAListingOfEvents
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Store a newly created event.'
operationId: storeANewlyCreatedEvent
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
start_at:
type: string
description: 'Must be a valid date.'
example: '2026-03-10T08:57:57'
end_at:
type: string
description: 'Must be a valid date. Must be a date after start_at.'
example: '2052-04-02'
is_recurring:
type: boolean
description: ''
example: false
recurrence_rule:
type: string
description: 'This field is required when is_recurring is true. Must not be greater than 2000 characters.'
example: 'n'
nullable: true
recurrence_ends_at:
type: string
description: 'Must be a valid date. Must be a date after start_at.'
example: '2052-04-02'
nullable: true
recurrence_count:
type: integer
description: 'Must be at least 1. Must not be greater than 1000.'
example: 22
nullable: true
recurrence_timezone:
type: string
description: 'Must be a valid time zone, such as Africa/Accra. Must not be greater than 64 characters.'
example: Antarctica/Rothera
nullable: true
prep_before_minutes:
type: integer
description: 'Must be at least 0.'
example: 12
nullable: true
cleanup_after_minutes:
type: integer
description: 'Must be at least 0.'
example: 77
nullable: true
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: a1a0a47d-e8c3-3cf0-8e6e-c1ff9dca5d1f
notes:
type: string
description: ''
example: architecto
nullable: true
website:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: 'n'
nullable: true
contact_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: ashly64@example.com
nullable: true
attachments:
type: object
description: ''
example: null
properties: { }
nullable: true
status:
type: string
description: ''
example: approved
enum:
- draft
- pending
- approved
- cancelled
nullable: true
category:
type: object
description: ''
example: null
properties:
event_type:
type: string
description: ''
example: meeting
enum:
- conference
- workshop
- lecture
- seminar
- meeting
- panel
- exhibition
- performance
- other
nullable: true
format:
type: string
description: ''
example: hybrid
enum:
- in_person
- online
- hybrid
nullable: true
institution_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the institutions table.'
example: 21c4122b-d554-3723-966c-6d723ea5293f
nullable: true
institution:
type: string
description: 'Must not be greater than 255 characters.'
example: l
nullable: true
nullable: true
roles:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
user_name:
type: string
description: 'Must not be greater than 255 characters.'
example: j
user_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: lafayette.considine@example.com
nullable: true
role:
type: string
description: ''
example: core_responsible
enum:
- core_responsible
- extra_responsible
- room_responsible
- room_user
required:
- user_name
- role
requirements:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
kind:
type: string
description: ''
example: setup
enum:
- media
- pr
- setup
- catering
is_required:
type: boolean
description: ''
example: false
details:
type: string
description: ''
example: architecto
nullable: true
required:
- kind
required:
- title
- start_at
- end_at
- room_id
'/api/v1/events/{id}':
get:
summary: 'Display the specified event.'
operationId: displayTheSpecifiedEvent
description: "If $id contains '::' it is an occurrence ID in format {series_id}::{occurrence_date}."
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Update the specified event.'
operationId: updateTheSpecifiedEvent
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
start_at:
type: string
description: 'Must be a valid date.'
example: '2026-03-10T08:57:57'
end_at:
type: string
description: 'Must be a valid date. Must be a date after start_at.'
example: '2052-04-02'
is_recurring:
type: boolean
description: ''
example: false
recurrence_rule:
type: string
description: 'Must not be greater than 2000 characters.'
example: 'n'
nullable: true
recurrence_ends_at:
type: string
description: 'Must be a valid date.'
example: '2026-03-10T08:57:57'
nullable: true
recurrence_count:
type: integer
description: 'Must be at least 1. Must not be greater than 1000.'
example: 7
nullable: true
recurrence_timezone:
type: string
description: 'Must be a valid time zone, such as Africa/Accra. Must not be greater than 64 characters.'
example: America/Bahia_Banderas
nullable: true
prep_before_minutes:
type: integer
description: 'Must be at least 0.'
example: 77
cleanup_after_minutes:
type: integer
description: 'Must be at least 0.'
example: 8
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: d6fa562b-acd5-35ff-babb-d11194d3737b
notes:
type: string
description: ''
example: architecto
nullable: true
website:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: 'n'
nullable: true
contact_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: ashly64@example.com
nullable: true
attachments:
type: object
description: ''
example: null
properties: { }
nullable: true
category:
type: object
description: ''
example: null
properties:
event_type:
type: string
description: ''
example: exhibition
enum:
- conference
- workshop
- lecture
- seminar
- meeting
- panel
- exhibition
- performance
- other
nullable: true
format:
type: string
description: ''
example: in_person
enum:
- in_person
- online
- hybrid
nullable: true
institution_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the institutions table.'
example: 21c4122b-d554-3723-966c-6d723ea5293f
nullable: true
institution:
type: string
description: 'Must not be greater than 255 characters.'
example: l
nullable: true
nullable: true
delete:
summary: 'Remove the specified event.'
operationId: removeTheSpecifiedEvent
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the event.'
example: architecto
required: true
schema:
type: string
/api/v1/event-templates:
get:
summary: 'Display a listing of event templates for the current user.'
operationId: displayAListingOfEventTemplatesForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Store a newly created event template.'
operationId: storeANewlyCreatedEventTemplate
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 120 characters.'
example: b
template:
type: object
description: ''
example: []
properties:
title:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: 21c4122b-d554-3723-966c-6d723ea5293f
notes:
type: string
description: ''
example: architecto
nullable: true
website:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: 'n'
nullable: true
contact_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: ashly64@example.com
nullable: true
prep_before_minutes:
type: integer
description: 'Must be at least 0.'
example: 60
nullable: true
cleanup_after_minutes:
type: integer
description: 'Must be at least 0.'
example: 42
nullable: true
category:
type: object
description: ''
example: null
properties:
event_type:
type: string
description: ''
example: seminar
enum:
- conference
- workshop
- lecture
- seminar
- meeting
- panel
- exhibition
- performance
- other
nullable: true
format:
type: string
description: ''
example: in_person
enum:
- in_person
- online
- hybrid
nullable: true
institution_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the institutions table.'
example: add3503c-ebff-3875-93af-b8c6a695762b
nullable: true
nullable: true
roles:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
user_name:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
user_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: cecil42@example.com
nullable: true
role:
type: string
description: ''
example: room_user
enum:
- core_responsible
- extra_responsible
- room_responsible
- room_user
required:
- user_name
- role
requirements:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
kind:
type: string
description: ''
example: setup
enum:
- media
- pr
- setup
- catering
is_required:
type: boolean
description: ''
example: true
details:
type: string
description: ''
example: architecto
nullable: true
required:
- kind
required:
- title
- room_id
required:
- name
- template
'/api/v1/event-templates/{event_template}':
get:
summary: 'Display a single event template for the current user.'
operationId: displayASingleEventTemplateForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Update an event template.'
operationId: updateAnEventTemplate
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 120 characters.'
example: b
template:
type: object
description: ''
example: []
properties:
title:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: 21c4122b-d554-3723-966c-6d723ea5293f
notes:
type: string
description: ''
example: architecto
nullable: true
website:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: 'n'
nullable: true
contact_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: ashly64@example.com
nullable: true
prep_before_minutes:
type: integer
description: 'Must be at least 0.'
example: 60
nullable: true
cleanup_after_minutes:
type: integer
description: 'Must be at least 0.'
example: 42
nullable: true
category:
type: object
description: ''
example: null
properties:
event_type:
type: string
description: ''
example: exhibition
enum:
- conference
- workshop
- lecture
- seminar
- meeting
- panel
- exhibition
- performance
- other
nullable: true
format:
type: string
description: ''
example: in_person
enum:
- in_person
- online
- hybrid
nullable: true
institution_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the institutions table.'
example: add3503c-ebff-3875-93af-b8c6a695762b
nullable: true
nullable: true
roles:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
user_name:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
user_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: cecil42@example.com
nullable: true
role:
type: string
description: ''
example: room_user
enum:
- core_responsible
- extra_responsible
- room_responsible
- room_user
required:
- user_name
- role
requirements:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
kind:
type: string
description: ''
example: pr
enum:
- media
- pr
- setup
- catering
is_required:
type: boolean
description: ''
example: true
details:
type: string
description: ''
example: architecto
nullable: true
required:
- kind
required:
- title
- room_id
required:
- name
- template
delete:
summary: 'Delete an event template.'
operationId: deleteAnEventTemplate
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: event_template
description: ''
example: architecto
required: true
schema:
type: string
'/api/v1/events/{event_id}/submit':
post:
summary: 'Submit event for approval (DRAFT -> PENDING).'
operationId: submitEventForApprovalDRAFTPENDING
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/approve':
post:
summary: 'Approve event (PENDING -> APPROVED).'
operationId: approveEventPENDINGAPPROVED
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: b
nullable: true
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/reject':
post:
summary: 'Reject event (PENDING -> DRAFT).'
operationId: rejectEventPENDINGDRAFT
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: b
nullable: true
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/return':
post:
summary: 'Return event in the approval flow.'
operationId: returnEventInTheApprovalFlow
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: b
required:
- comment
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/discard':
post:
summary: 'Discard event in the approval flow.'
operationId: discardEventInTheApprovalFlow
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: b
required:
- comment
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/cancel':
post:
summary: 'Cancel event (any -> CANCELLED).'
operationId: cancelEventanyCANCELLED
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
comment:
type: string
description: 'Must not be greater than 1000 characters.'
example: b
nullable: true
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/approval-history':
get:
summary: 'Get approval history for an event.'
operationId: getApprovalHistoryForAnEvent
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/approval-summary':
get:
summary: 'Get approval summary steps for an event.'
operationId: getApprovalSummaryStepsForAnEvent
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event_id}/occurrences/{occurrence}':
get:
summary: 'Show the merged series + override data for a single occurrence.'
operationId: showTheMergedSeries+OverrideDataForASingleOccurrence
description: "Returns the series event data merged with any non-null override fields.\n{occurrence} is a URL-encoded ISO 8601 datetime of the occurrence's original start_at."
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Upsert an override for a single occurrence.'
operationId: upsertAnOverrideForASingleOccurrence
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
is_cancelled:
type: boolean
description: ''
example: false
title:
type: string
description: 'Must not be greater than 255 characters.'
example: b
nullable: true
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
start_at:
type: string
description: 'Must be a valid date.'
example: '2026-03-10T08:57:57'
nullable: true
end_at:
type: string
description: 'Must be a valid date. Must be a date after start_at.'
example: '2052-04-02'
nullable: true
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: a4855dc5-0acb-33c3-b921-f4291f719ca0
nullable: true
notes:
type: string
description: ''
example: architecto
nullable: true
website:
type: string
description: 'Must be a valid URL. Must not be greater than 500 characters.'
example: 'n'
nullable: true
contact_email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: ashly64@example.com
nullable: true
prep_before_minutes:
type: integer
description: 'Must be at least 0.'
example: 60
nullable: true
cleanup_after_minutes:
type: integer
description: 'Must be at least 0.'
example: 42
nullable: true
delete:
summary: 'Remove the override for a single occurrence (reverts to series defaults).'
operationId: removeTheOverrideForASingleOccurrencerevertsToSeriesDefaults
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: event_id
description: 'The ID of the event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
-
in: path
name: occurrence
description: 'The occurrence.'
example: '|{+'
required: true
schema:
type: string
'/api/v1/events/{event}/attachments':
post:
summary: 'Upload an attachment to an event.'
operationId: uploadAnAttachmentToAnEvent
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: 'Must be a file. Must not be greater than 10240 kilobytes.'
required:
- file
parameters:
-
in: path
name: event
description: 'The event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
'/api/v1/events/{event}/attachments/{media}':
delete:
summary: 'Delete an event attachment.'
operationId: deleteAnEventAttachment
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: event
description: 'The event.'
example: 019bfc2a-05e0-7385-b6d6-5e929b30e2f8
required: true
schema:
type: string
-
in: path
name: media
description: ''
example: architecto
required: true
schema:
type: string
/api/v1/rooms:
get:
summary: 'Display a listing of rooms.'
operationId: displayAListingOfRooms
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Store a newly created room.'
operationId: storeANewlyCreatedRoom
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
capacity:
type: integer
description: 'Must be at least 1.'
example: 16
nullable: true
equipment:
type: string
description: ''
example: architecto
nullable: true
location:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
nullable: true
is_active:
type: boolean
description: ''
example: false
venue_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the venues table.'
example: 6b72fe4a-5b40-307c-bc24-f79acf9a1bb9
nullable: true
seating_type:
type: string
description: ''
example: banquet
enum:
- theater
- classroom
- boardroom
- u_shape
- banquet
- reception
- hollow_square
- cinema
- podium
- horseshoe
- other
nullable: true
required:
- name
'/api/v1/rooms/{id}':
get:
summary: 'Display the specified room.'
operationId: displayTheSpecifiedRoom
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Update the specified room.'
operationId: updateTheSpecifiedRoom
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
capacity:
type: integer
description: 'Must be at least 1.'
example: 16
nullable: true
equipment:
type: string
description: ''
example: architecto
nullable: true
location:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
nullable: true
is_active:
type: boolean
description: ''
example: false
venue_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the venues table.'
example: 6b72fe4a-5b40-307c-bc24-f79acf9a1bb9
nullable: true
seating_type:
type: string
description: ''
example: other
enum:
- theater
- classroom
- boardroom
- u_shape
- banquet
- reception
- hollow_square
- cinema
- podium
- horseshoe
- other
nullable: true
delete:
summary: 'Remove the specified room.'
operationId: removeTheSpecifiedRoom
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/activity':
get:
summary: ''
operationId: getApiV1RoomsRoom_idActivity
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/restore':
post:
summary: ''
operationId: postApiV1RoomsRoom_idRestore
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/force':
delete:
summary: ''
operationId: deleteApiV1RoomsRoom_idForce
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/availability':
get:
summary: 'Get availability schedules for a room.'
operationId: getAvailabilitySchedulesForARoom
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Set availability for a room.'
operationId: setAvailabilityForARoom
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
type:
type: string
description: ''
example: blocked
enum:
- availability
- blocked
days:
type: array
description: ''
example:
- thursday
items:
type: string
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
periods:
type: array
description: 'This field is required when type is availability. Must have at least 1 items.'
example: null
items:
type: object
properties:
start:
type: string
description: 'Must be a valid date in the format H:i.'
example: '08:57'
end:
type: string
description: 'Must be a valid date in the format H:i. Must be a date after periods.*.start.'
example: '2052-04-02'
required:
- start
- end
start_date:
type: string
description: 'Must be a valid date. Must be a valid date in the format Y-m-d.'
example: '2026-03-10'
end_date:
type: string
description: 'Must be a valid date. Must be a valid date in the format Y-m-d. Must be a date after or equal to start_date.'
example: '2052-04-02'
required:
- name
- type
- start_date
- end_date
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/availability/{schedule}':
delete:
summary: 'Delete an availability schedule.'
operationId: deleteAnAvailabilitySchedule
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
-
in: path
name: schedule
description: ''
example: architecto
required: true
schema:
type: string
'/api/v1/rooms/{room_id}/available-slots':
get:
summary: 'Get available time slots for a room.'
operationId: getAvailableTimeSlotsForARoom
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
description: 'Must be a valid date. Must be a valid date in the format Y-m-d.'
example: '2026-03-10'
to:
type: string
description: 'Must be a valid date. Must be a valid date in the format Y-m-d. Must be a date after or equal to from.'
example: '2052-04-02'
duration:
type: integer
description: 'Must be at least 15. Must not be greater than 480.'
example: 22
required:
- from
- to
parameters:
-
in: path
name: room_id
description: 'The ID of the room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room}/images':
post:
summary: 'Upload an image to a room.'
operationId: uploadAnImageToARoom
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: 'Must be a file. Must not be greater than 5120 kilobytes.'
required:
- file
parameters:
-
in: path
name: room
description: 'The room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
'/api/v1/rooms/{room}/images/{media}':
delete:
summary: 'Delete a room image.'
operationId: deleteARoomImage
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: room
description: 'The room.'
example: 019bfc23-d2d1-7306-8600-ede2570ef8f5
required: true
schema:
type: string
-
in: path
name: media
description: ''
example: architecto
required: true
schema:
type: string
/api/v1/venues:
get:
summary: 'Display a listing of venues.'
operationId: displayAListingOfVenues
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Store a newly created venue.'
operationId: storeANewlyCreatedVenue
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
address:
type: string
description: ''
example: architecto
nullable: true
is_active:
type: boolean
description: ''
example: false
required:
- name
'/api/v1/venues/{id}':
get:
summary: 'Display the specified venue.'
operationId: displayTheSpecifiedVenue
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Update the specified venue.'
operationId: updateTheSpecifiedVenue
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
address:
type: string
description: ''
example: architecto
nullable: true
is_active:
type: boolean
description: ''
example: true
delete:
summary: 'Remove the specified venue.'
operationId: removeTheSpecifiedVenue
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the venue.'
example: 019bfc20-711c-73a6-ad8c-8754d6bdc03e
required: true
schema:
type: string
'/api/v1/venues/{venue_id}/rooms':
get:
summary: 'Get rooms for a specific venue.'
operationId: getRoomsForASpecificVenue
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: venue_id
description: 'The ID of the venue.'
example: 019bfc20-711c-73a6-ad8c-8754d6bdc03e
required: true
schema:
type: string
'/api/v1/venues/{venue_id}/activity':
get:
summary: ''
operationId: getApiV1VenuesVenue_idActivity
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: venue_id
description: 'The ID of the venue.'
example: 019bfc20-711c-73a6-ad8c-8754d6bdc03e
required: true
schema:
type: string
'/api/v1/venues/{venue_id}/restore':
post:
summary: ''
operationId: postApiV1VenuesVenue_idRestore
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: venue_id
description: 'The ID of the venue.'
example: 019bfc20-711c-73a6-ad8c-8754d6bdc03e
required: true
schema:
type: string
'/api/v1/venues/{venue_id}/force':
delete:
summary: ''
operationId: deleteApiV1VenuesVenue_idForce
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: venue_id
description: 'The ID of the venue.'
example: 019bfc20-711c-73a6-ad8c-8754d6bdc03e
required: true
schema:
type: string
'/api/v1/institutions/{institution_id}':
get:
summary: 'Display the specified institution.'
operationId: displayTheSpecifiedInstitution
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
put:
summary: 'Update the specified institution.'
operationId: updateTheSpecifiedInstitution
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
code:
type: string
description: 'Must not be greater than 50 characters.'
example: 'n'
description:
type: string
description: ''
example: 'Eius et animi quos velit et.'
nullable: true
is_active:
type: boolean
description: ''
example: true
sort_order:
type: integer
description: 'Must be at least 0.'
example: 60
delete:
summary: 'Remove the specified institution.'
operationId: removeTheSpecifiedInstitution
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: institution_id
description: 'The ID of the institution.'
example: architecto
required: true
schema:
type: string
'/api/v1/institutions/{institution_id}/activity':
get:
summary: ''
operationId: getApiV1InstitutionsInstitution_idActivity
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: institution_id
description: 'The ID of the institution.'
example: architecto
required: true
schema:
type: string
'/api/v1/institutions/{institution_id}/restore':
post:
summary: ''
operationId: postApiV1InstitutionsInstitution_idRestore
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: institution_id
description: 'The ID of the institution.'
example: architecto
required: true
schema:
type: string
'/api/v1/institutions/{institution_id}/force':
delete:
summary: ''
operationId: deleteApiV1InstitutionsInstitution_idForce
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: institution_id
description: 'The ID of the institution.'
example: architecto
required: true
schema:
type: string
/api/v1/calendar/tokens:
get:
summary: "Display a listing of the user's calendar tokens."
operationId: displayAListingOfTheUsersCalendarTokens
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: 'Store a newly created calendar token.'
operationId: storeANewlyCreatedCalendarToken
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: b
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: a4855dc5-0acb-33c3-b921-f4291f719ca0
nullable: true
required:
- name
'/api/v1/calendar/tokens/{id}':
get:
summary: 'Display the specified calendar token.'
operationId: displayTheSpecifiedCalendarToken
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
delete:
summary: 'Remove the specified calendar token.'
operationId: removeTheSpecifiedCalendarToken
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the token.'
example: architecto
required: true
schema:
type: string
/api/v1/admin/exports:
get:
summary: ''
operationId: getApiV1AdminExports
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
post:
summary: ''
operationId: postApiV1AdminExports
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: ''
example: room_schedule
enum:
- event_list
- room_schedule
from_date:
type: string
description: 'Must be a valid date.'
example: '2026-03-10T08:57:57'
to_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to from_date.'
example: '2052-04-02'
status:
type: string
description: ''
example: draft
enum:
- draft
- pending
- approved
- cancelled
nullable: true
room_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the rooms table.'
example: a4855dc5-0acb-33c3-b921-f4291f719ca0
nullable: true
venue_id:
type: string
description: 'Must be a valid UUID. The id of an existing record in the venues table.'
example: c90237e9-ced5-3af6-88ea-84aeaa148878
nullable: true
required:
- type
- from_date
- to_date
'/api/v1/admin/exports/{id}':
get:
summary: ''
operationId: getApiV1AdminExportsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the export.'
example: architecto
required: true
schema:
type: string
'/api/v1/admin/exports/{id}/run':
post:
summary: ''
operationId: postApiV1AdminExportsIdRun
description: ''
parameters: []
responses: { }
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the export.'
example: architecto
required: true
schema:
type: string
'/api/v1/admin/exports/{id}/download':
get:
summary: ''
operationId: getApiV1AdminExportsIdDownload
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
parameters:
-
in: path
name: id
description: 'The ID of the export.'
example: architecto
required: true
schema:
type: string