Files
thrillwiki_django_no_react/backend/schema.yml
pacnpal e62646bcf9 feat: major API restructure and Vue.js frontend integration
- Centralize API endpoints in dedicated api app with v1 versioning
- Remove individual API modules from parks and rides apps
- Add event tracking system with analytics functionality
- Integrate Vue.js frontend with Tailwind CSS v4 and TypeScript
- Add comprehensive database migrations for event tracking
- Implement user authentication and social provider setup
- Add API schema documentation and serializers
- Configure development environment with shared scripts
- Update project structure for monorepo with frontend/backend separation
2025-08-24 16:42:20 -04:00

2989 lines
78 KiB
YAML

openapi: 3.0.3
info:
title: ThrillWiki API
version: 1.0.0
description: Comprehensive theme park and ride information API
contact:
name: ThrillWiki API Support
email: api@thrillwiki.com
url: https://thrillwiki.com/support
license:
name: MIT
url: https://opensource.org/licenses/MIT
paths:
/api/accounts/auth-status/:
post:
operationId: accounts_auth_status_create
description: Check if user is authenticated and return user data
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/accounts/login/:
post:
operationId: accounts_login_create
description: API endpoint for user login
tags:
- accounts
security:
- {}
responses:
'200':
description: No response body
/api/accounts/logout/:
post:
operationId: accounts_logout_create
description: API endpoint for user logout
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
description: No response body
/api/accounts/password/change/:
post:
operationId: accounts_password_change_create
description: API endpoint to change password
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
description: No response body
/api/accounts/password/reset/:
post:
operationId: accounts_password_reset_create
description: API endpoint to request password reset
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/accounts/signup/:
post:
operationId: accounts_signup_create
description: API endpoint for user registration
tags:
- accounts
security:
- {}
responses:
'200':
description: No response body
/api/accounts/social/providers/:
get:
operationId: accounts_social_providers_retrieve
description: API endpoint to get available social authentication providers
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/accounts/user/:
get:
operationId: accounts_user_retrieve
description: API endpoint to get current user information
tags:
- accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
description: No response body
/api/legacy/v1/parks/:
get:
operationId: legacy_v1_parks_retrieve
description: Handle GET requests for listing resources.
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
post:
operationId: legacy_v1_parks_create
description: Handle POST requests for creating resources.
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
description: No response body
/api/legacy/v1/parks/{slug}/:
get:
operationId: legacy_v1_parks_retrieve_2
description: Handle GET requests for retrieving a single resource.
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
put:
operationId: legacy_v1_parks_update
description: Handle PUT/PATCH requests for updating resources.
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
description: No response body
delete:
operationId: legacy_v1_parks_destroy
description: Handle DELETE requests for destroying resources.
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
/api/legacy/v1/parks/{slug}/reviews/:
get:
operationId: legacy_v1_parks_reviews_retrieve
description: |-
Get reviews for a specific park.
GET /api/v1/parks/{slug}/reviews/
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/legacy/v1/parks/stats/:
get:
operationId: legacy_v1_parks_stats_retrieve
description: |-
Get park statistics.
GET /api/v1/parks/stats/
tags:
- legacy
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/parks/:
get:
operationId: parks_list
description: |-
Frontend-compatible API endpoint for parks.
GET /api/parks/ - List all parks
GET /api/parks/{slug}/ - Get park detail
GET /api/search/parks/ - Search parks
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkFrontendList'
description: ''
/api/parks/{slug}/:
get:
operationId: parks_retrieve
description: |-
Frontend-compatible API endpoint for parks.
GET /api/parks/ - List all parks
GET /api/parks/{slug}/ - Get park detail
GET /api/search/parks/ - Search parks
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailFrontend'
description: ''
/api/parks/{slug}/rides/:
get:
operationId: parks_rides_retrieve
description: |-
Get rides for a specific park.
GET /api/parks/{slug}/rides/
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkFrontend'
description: ''
/api/parks/search/:
get:
operationId: parks_search_retrieve
description: |-
Search parks endpoint for frontend.
GET /api/search/parks/?q=search_term
tags:
- parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkFrontend'
description: ''
/api/rides/:
get:
operationId: rides_list
description: |-
Frontend-compatible API endpoint for rides.
GET /api/rides/ - List all rides
GET /api/rides/{park_slug}/{ride_slug}/ - Get ride detail
GET /api/search/rides/ - Search rides
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRideFrontendList'
description: ''
/api/rides/{id}/:
get:
operationId: rides_retrieve
description: |-
Frontend-compatible API endpoint for rides.
GET /api/rides/ - List all rides
GET /api/rides/{park_slug}/{ride_slug}/ - Get ride detail
GET /api/search/rides/ - Search rides
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ride.
required: true
tags:
- rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailFrontend'
description: ''
/api/rides/by-park/{park_slug}/:
get:
operationId: rides_by_park_retrieve
description: |-
Get rides for a specific park by park slug.
GET /api/rides/by-park/{park_slug}/
parameters:
- in: path
name: park_slug
schema:
type: string
required: true
tags:
- rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideFrontend'
description: ''
/api/rides/search/:
get:
operationId: rides_search_retrieve
description: |-
Search rides endpoint for frontend.
GET /api/search/rides/?q=search_term
tags:
- rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideFrontend'
description: ''
/api/v1/parks/:
get:
operationId: v1_parks_list
description: Retrieve a paginated list of theme parks with filtering and search
capabilities.
summary: List parks
parameters:
- in: query
name: country
schema:
type: string
description: Filter by country
- in: query
name: ordering
schema:
type: string
description: Order results by field (name, opening_date, average_rating, etc.)
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: query
name: search
schema:
type: string
description: Search parks by name or description
- in: query
name: state
schema:
type: string
description: Filter by state/province
- in: query
name: status
schema:
type: string
description: Filter by park status (OPERATING, CLOSED_PERM, etc.)
tags:
- Parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkListOutputList'
examples:
ParkListExample:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park list response
description: A typical park in the list view
description: ''
post:
operationId: v1_parks_create
description: Create a new theme park. Requires authentication.
summary: Create park
tags:
- Parks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailOutput'
examples:
ParkDetailExample:
value:
id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
opening_date: '1870-01-01'
website: https://cedarpoint.com
size_acres: 364.0
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
latitude: 41.4793
longitude: -82.6833
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park detail response
description: A complete park detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/{slug}/:
get:
operationId: v1_parks_retrieve
description: Retrieve detailed information about a specific park.
summary: Get park details
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailOutput'
examples:
ParkDetailExample:
value:
id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
opening_date: '1870-01-01'
website: https://cedarpoint.com
size_acres: 364.0
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
latitude: 41.4793
longitude: -82.6833
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park detail response
description: A complete park detail response
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
put:
operationId: v1_parks_update
description: Update a park's information. Requires authentication.
summary: Update park
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Parks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailOutput'
examples:
ParkDetailExample:
value:
id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
opening_date: '1870-01-01'
website: https://cedarpoint.com
size_acres: 364.0
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
latitude: 41.4793
longitude: -82.6833
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park detail response
description: A complete park detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
patch:
operationId: v1_parks_partial_update
description: Partially update a park's information. Requires authentication.
summary: Partially update park
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Parks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedParkUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedParkUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedParkUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailOutput'
examples:
ParkDetailExample:
value:
id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
opening_date: '1870-01-01'
website: https://cedarpoint.com
size_acres: 364.0
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
latitude: 41.4793
longitude: -82.6833
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park detail response
description: A complete park detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
delete:
operationId: v1_parks_destroy
description: Delete a park. Requires authentication and appropriate permissions.
summary: Delete park
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Parks
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/{slug}/reviews/:
get:
operationId: v1_parks_reviews_list
description: Retrieve reviews for a specific park.
summary: Get park reviews
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
- in: path
name: slug
schema:
type: string
required: true
tags:
- Parks
- Reviews
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkReviewOutputList'
description: ''
/api/v1/parks/stats/:
get:
operationId: v1_parks_stats_retrieve
description: Retrieve global statistics about all parks in the system.
summary: Get park statistics
tags:
- Parks
- Statistics
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkStatsOutput'
description: ''
/api/v1/ref/parks/:
get:
operationId: v1_ref_parks_list
description: |-
Read-only ViewSet for parks.
Provides list and retrieve operations for parks without
modification capabilities. Useful for reference data.
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- v1
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkListOutputList'
examples:
ParkListExample:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park list response
description: A typical park in the list view
description: ''
/api/v1/ref/parks/{slug}/:
get:
operationId: v1_ref_parks_retrieve
description: |-
Read-only ViewSet for parks.
Provides list and retrieve operations for parks without
modification capabilities. Useful for reference data.
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- v1
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkDetailOutput'
examples:
ParkDetailExample:
value:
id: 1
name: Cedar Point
slug: cedar-point
status: OPERATING
description: America's Roller Coast
opening_date: '1870-01-01'
website: https://cedarpoint.com
size_acres: 364.0
average_rating: 4.5
coaster_count: 17
ride_count: 70
location:
latitude: 41.4793
longitude: -82.6833
city: Sandusky
state: Ohio
country: United States
operator:
id: 1
name: Cedar Fair
slug: cedar-fair
summary: Example park detail response
description: A complete park detail response
description: ''
/api/v1/ref/rides/:
get:
operationId: v1_ref_rides_list
description: |-
Read-only ViewSet for rides.
Provides list and retrieve operations for rides without
modification capabilities. Useful for reference data.
parameters:
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- v1
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRideListOutputList'
examples:
RideListExample:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster
park:
id: 1
name: Cedar Point
slug: cedar-point
average_rating: 4.8
capacity_per_hour: 1200
opening_date: '2018-05-05'
summary: Example ride list response
description: A typical ride in the list view
description: ''
/api/v1/ref/rides/{slug}/:
get:
operationId: v1_ref_rides_retrieve
description: |-
Read-only ViewSet for rides.
Provides list and retrieve operations for rides without
modification capabilities. Useful for reference data.
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- v1
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailOutput'
examples:
RideDetailExample:
value:
id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster featuring RMC I-Box track
park:
id: 1
name: Cedar Point
slug: cedar-point
opening_date: '2018-05-05'
min_height_in: 48
capacity_per_hour: 1200
ride_duration_seconds: 150
average_rating: 4.8
manufacturer:
id: 1
name: Rocky Mountain Construction
slug: rocky-mountain-construction
summary: Example ride detail response
description: A complete ride detail response
description: ''
/api/v1/rides/:
get:
operationId: v1_rides_list
description: Retrieve a paginated list of rides with filtering and search capabilities.
summary: List rides
parameters:
- in: query
name: category
schema:
type: string
description: Filter by ride category (RC, DR, FR, WR, TR, OT)
- in: query
name: ordering
schema:
type: string
description: Order results by field (name, opening_date, average_rating, etc.)
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: query
name: park_id
schema:
type: integer
description: Filter by park ID
- in: query
name: park_slug
schema:
type: string
description: Filter by park slug
- in: query
name: search
schema:
type: string
description: Search rides by name or description
- in: query
name: status
schema:
type: string
description: Filter by ride status
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRideListOutputList'
examples:
RideListExample:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster
park:
id: 1
name: Cedar Point
slug: cedar-point
average_rating: 4.8
capacity_per_hour: 1200
opening_date: '2018-05-05'
summary: Example ride list response
description: A typical ride in the list view
description: ''
post:
operationId: v1_rides_create
description: Create a new ride. Requires authentication.
summary: Create ride
tags:
- Rides
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RideCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/RideCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/RideCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailOutput'
examples:
RideDetailExample:
value:
id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster featuring RMC I-Box track
park:
id: 1
name: Cedar Point
slug: cedar-point
opening_date: '2018-05-05'
min_height_in: 48
capacity_per_hour: 1200
ride_duration_seconds: 150
average_rating: 4.8
manufacturer:
id: 1
name: Rocky Mountain Construction
slug: rocky-mountain-construction
summary: Example ride detail response
description: A complete ride detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rides/{slug}/:
get:
operationId: v1_rides_retrieve
description: Retrieve detailed information about a specific ride.
summary: Get ride details
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailOutput'
examples:
RideDetailExample:
value:
id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster featuring RMC I-Box track
park:
id: 1
name: Cedar Point
slug: cedar-point
opening_date: '2018-05-05'
min_height_in: 48
capacity_per_hour: 1200
ride_duration_seconds: 150
average_rating: 4.8
manufacturer:
id: 1
name: Rocky Mountain Construction
slug: rocky-mountain-construction
summary: Example ride detail response
description: A complete ride detail response
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
put:
operationId: v1_rides_update
description: Update a ride's information. Requires authentication.
summary: Update ride
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Rides
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RideUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/RideUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/RideUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailOutput'
examples:
RideDetailExample:
value:
id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster featuring RMC I-Box track
park:
id: 1
name: Cedar Point
slug: cedar-point
opening_date: '2018-05-05'
min_height_in: 48
capacity_per_hour: 1200
ride_duration_seconds: 150
average_rating: 4.8
manufacturer:
id: 1
name: Rocky Mountain Construction
slug: rocky-mountain-construction
summary: Example ride detail response
description: A complete ride detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
patch:
operationId: v1_rides_partial_update
description: Partially update a ride's information. Requires authentication.
summary: Partially update ride
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Rides
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedRideUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedRideUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedRideUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideDetailOutput'
examples:
RideDetailExample:
value:
id: 1
name: Steel Vengeance
slug: steel-vengeance
category: ROLLER_COASTER
status: OPERATING
description: Hybrid roller coaster featuring RMC I-Box track
park:
id: 1
name: Cedar Point
slug: cedar-point
opening_date: '2018-05-05'
min_height_in: 48
capacity_per_hour: 1200
ride_duration_seconds: 150
average_rating: 4.8
manufacturer:
id: 1
name: Rocky Mountain Construction
slug: rocky-mountain-construction
summary: Example ride detail response
description: A complete ride detail response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
delete:
operationId: v1_rides_destroy
description: Delete a ride. Requires authentication and appropriate permissions.
summary: Delete ride
parameters:
- in: path
name: slug
schema:
type: string
required: true
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rides/stats/:
get:
operationId: v1_rides_stats_retrieve
description: Retrieve global statistics about all rides in the system.
summary: Get ride statistics
tags:
- Rides
- Statistics
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideStatsOutput'
description: ''
/health/api/:
get:
operationId: health_api_retrieve
description: Return comprehensive health check information
tags:
- health
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/health/metrics/:
get:
operationId: health_metrics_retrieve
description: Return performance metrics and analysis
tags:
- health
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
components:
schemas:
CompanyOutput:
type: object
description: Shared serializer for company data.
properties:
id:
type: integer
name:
type: string
slug:
type: string
roles:
type: array
items:
type: string
required:
- id
- name
- slug
LocationOutput:
type: object
description: Shared serializer for location data.
properties:
latitude:
type: string
readOnly: true
longitude:
type: string
readOnly: true
city:
type: string
readOnly: true
state:
type: string
readOnly: true
country:
type: string
readOnly: true
formatted_address:
type: string
readOnly: true
required:
- city
- country
- formatted_address
- latitude
- longitude
- state
PaginatedParkFrontendList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ParkFrontend'
PaginatedParkListOutputList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ParkListOutput'
PaginatedParkReviewOutputList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ParkReviewOutput'
PaginatedRideFrontendList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/RideFrontend'
PaginatedRideListOutputList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
ParkAreaOutput:
type: object
description: Output serializer for park area data.
properties:
id:
type: integer
name:
type: string
slug:
type: string
description:
type: string
required:
- description
- id
- name
- slug
ParkCreateInputRequest:
type: object
description: Input serializer for creating parks.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
default: ''
status:
enum:
- OPERATING
- CLOSED_TEMP
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 0e3d3f905847ed5f
default: OPERATING
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
operating_season:
type: string
maxLength: 255
size_acres:
type: string
format: decimal
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
nullable: true
website:
type: string
format: uri
operator_id:
type: integer
property_owner_id:
type: integer
nullable: true
required:
- name
- operator_id
ParkDetailFrontend:
type: object
description: |-
Extended frontend serializer for park details.
Includes additional fields needed for park detail view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
location:
type: string
readOnly: true
operator:
type: string
readOnly: true
openingYear:
type: string
readOnly: true
status:
type: string
readOnly: true
description:
type: string
website:
type: string
format: uri
imageUrl:
type: string
readOnly: true
averageRating:
type: string
readOnly: true
rideCount:
type: integer
nullable: true
coasterCount:
type: integer
nullable: true
sizeAcres:
type: string
format: decimal
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
nullable: true
operatingSeason:
type: string
required:
- averageRating
- coasterCount
- description
- id
- imageUrl
- location
- name
- openingYear
- operatingSeason
- operator
- rideCount
- sizeAcres
- slug
- status
- website
ParkDetailOutput:
type: object
description: Output serializer for park detail view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
status:
type: string
description:
type: string
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
operating_season:
type: string
size_acres:
type: string
format: decimal
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
nullable: true
website:
type: string
format: uri
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
coaster_count:
type: integer
nullable: true
ride_count:
type: integer
nullable: true
location:
allOf:
- $ref: '#/components/schemas/LocationOutput'
nullable: true
operator:
$ref: '#/components/schemas/CompanyOutput'
property_owner:
allOf:
- $ref: '#/components/schemas/CompanyOutput'
nullable: true
areas:
type: array
items:
$ref: '#/components/schemas/ParkAreaOutput'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- areas
- average_rating
- closing_date
- coaster_count
- created_at
- description
- id
- location
- name
- opening_date
- operating_season
- operator
- property_owner
- ride_count
- size_acres
- slug
- status
- updated_at
- website
ParkFrontend:
type: object
description: |-
Frontend-compatible serializer for parks.
Matches the Park interface in frontend/src/stores/parks.ts
properties:
id:
type: integer
name:
type: string
slug:
type: string
location:
type: string
readOnly: true
operator:
type: string
readOnly: true
openingYear:
type: string
readOnly: true
status:
type: string
readOnly: true
description:
type: string
website:
type: string
format: uri
imageUrl:
type: string
readOnly: true
required:
- description
- id
- imageUrl
- location
- name
- openingYear
- operator
- slug
- status
- website
ParkListOutput:
type: object
description: Output serializer for park list view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
status:
type: string
description:
type: string
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
coaster_count:
type: integer
nullable: true
ride_count:
type: integer
nullable: true
location:
allOf:
- $ref: '#/components/schemas/LocationOutput'
nullable: true
operator:
$ref: '#/components/schemas/CompanyOutput'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- average_rating
- coaster_count
- created_at
- description
- id
- location
- name
- operator
- ride_count
- slug
- status
- updated_at
ParkReviewOutput:
type: object
description: Output serializer for park reviews.
properties:
id:
type: integer
rating:
type: integer
title:
type: string
content:
type: string
visit_date:
type: string
format: date
created_at:
type: string
format: date-time
user:
type: string
readOnly: true
required:
- content
- created_at
- id
- rating
- title
- user
- visit_date
ParkStatsOutput:
type: object
description: Output serializer for park statistics.
properties:
total_parks:
type: integer
operating_parks:
type: integer
closed_parks:
type: integer
under_construction:
type: integer
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
average_coaster_count:
type: string
format: decimal
pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
nullable: true
top_countries:
type: array
items:
type: object
additionalProperties: {}
recently_added_count:
type: integer
required:
- average_coaster_count
- average_rating
- closed_parks
- operating_parks
- recently_added_count
- top_countries
- total_parks
- under_construction
ParkUpdateInputRequest:
type: object
description: Input serializer for updating parks.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
status:
enum:
- OPERATING
- CLOSED_TEMP
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 0e3d3f905847ed5f
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
operating_season:
type: string
maxLength: 255
size_acres:
type: string
format: decimal
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
nullable: true
website:
type: string
format: uri
operator_id:
type: integer
property_owner_id:
type: integer
nullable: true
PatchedParkUpdateInputRequest:
type: object
description: Input serializer for updating parks.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
status:
enum:
- OPERATING
- CLOSED_TEMP
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 0e3d3f905847ed5f
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
operating_season:
type: string
maxLength: 255
size_acres:
type: string
format: decimal
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
nullable: true
website:
type: string
format: uri
operator_id:
type: integer
property_owner_id:
type: integer
nullable: true
PatchedRideUpdateInputRequest:
type: object
description: Input serializer for updating rides.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
category:
enum:
- ''
- RC
- DR
- FR
- WR
- TR
- OT
type: string
description: |-
* `` - Select ride type
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `TR` - Transport
* `OT` - Other
x-spec-enum-id: 5c57e6fc7d8e9340
status:
enum:
- ''
- OPERATING
- CLOSED_TEMP
- SBNO
- CLOSING
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `` - Select status
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `SBNO` - Standing But Not Operating
* `CLOSING` - Closing
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 1479301ee25596a0
post_closing_status:
enum:
- SBNO
- CLOSED_PERM
- null
type: string
description: |-
* `SBNO` - Standing But Not Operating
* `CLOSED_PERM` - Permanently Closed
x-spec-enum-id: 6014d88333e8ac3f
nullable: true
park_id:
type: integer
park_area_id:
type: integer
nullable: true
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
status_since:
type: string
format: date
nullable: true
min_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
max_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
capacity_per_hour:
type: integer
minimum: 1
nullable: true
ride_duration_seconds:
type: integer
minimum: 1
nullable: true
manufacturer_id:
type: integer
nullable: true
designer_id:
type: integer
nullable: true
ride_model_id:
type: integer
nullable: true
RideCreateInputRequest:
type: object
description: Input serializer for creating rides.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
default: ''
category:
enum:
- ''
- RC
- DR
- FR
- WR
- TR
- OT
type: string
description: |-
* `` - Select ride type
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `TR` - Transport
* `OT` - Other
x-spec-enum-id: 5c57e6fc7d8e9340
status:
enum:
- ''
- OPERATING
- CLOSED_TEMP
- SBNO
- CLOSING
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `` - Select status
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `SBNO` - Standing But Not Operating
* `CLOSING` - Closing
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 1479301ee25596a0
default: OPERATING
park_id:
type: integer
park_area_id:
type: integer
nullable: true
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
status_since:
type: string
format: date
nullable: true
min_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
max_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
capacity_per_hour:
type: integer
minimum: 1
nullable: true
ride_duration_seconds:
type: integer
minimum: 1
nullable: true
manufacturer_id:
type: integer
nullable: true
designer_id:
type: integer
nullable: true
ride_model_id:
type: integer
nullable: true
required:
- category
- name
- park_id
RideDetailFrontend:
type: object
description: |-
Extended frontend serializer for ride details.
Includes additional fields needed for ride detail view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
parkId:
type: integer
parkName:
type: string
parkSlug:
type: string
category:
type: string
readOnly: true
manufacturer:
type: string
readOnly: true
designer:
type: string
readOnly: true
openingYear:
type: string
readOnly: true
height:
type: string
readOnly: true
speed:
type: string
readOnly: true
length:
type: string
readOnly: true
inversions:
type: string
readOnly: true
status:
type: string
readOnly: true
description:
type: string
imageUrl:
type: string
readOnly: true
thrillLevel:
type: string
readOnly: true
minHeightIn:
type: integer
nullable: true
maxHeightIn:
type: integer
nullable: true
capacityPerHour:
type: integer
nullable: true
rideDurationSeconds:
type: integer
nullable: true
averageRating:
type: string
readOnly: true
closingDate:
type: string
format: date
nullable: true
statusSince:
type: string
format: date
nullable: true
coasterStats:
type: string
readOnly: true
required:
- averageRating
- capacityPerHour
- category
- closingDate
- coasterStats
- description
- designer
- height
- id
- imageUrl
- inversions
- length
- manufacturer
- maxHeightIn
- minHeightIn
- name
- openingYear
- parkId
- parkName
- parkSlug
- rideDurationSeconds
- slug
- speed
- status
- statusSince
- thrillLevel
RideDetailOutput:
type: object
description: Output serializer for ride detail view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
category:
type: string
status:
type: string
post_closing_status:
type: string
nullable: true
description:
type: string
park:
$ref: '#/components/schemas/RideParkOutput'
park_area:
type: string
readOnly: true
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
status_since:
type: string
format: date
nullable: true
min_height_in:
type: integer
nullable: true
max_height_in:
type: integer
nullable: true
capacity_per_hour:
type: integer
nullable: true
ride_duration_seconds:
type: integer
nullable: true
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
manufacturer:
type: string
readOnly: true
designer:
type: string
readOnly: true
ride_model:
allOf:
- $ref: '#/components/schemas/RideModelOutput'
nullable: true
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- average_rating
- capacity_per_hour
- category
- closing_date
- created_at
- description
- designer
- id
- manufacturer
- max_height_in
- min_height_in
- name
- opening_date
- park
- park_area
- post_closing_status
- ride_duration_seconds
- ride_model
- slug
- status
- status_since
- updated_at
RideFrontend:
type: object
description: |-
Frontend-compatible serializer for rides.
Matches the Ride interface in frontend/src/stores/rides.ts
properties:
id:
type: integer
name:
type: string
slug:
type: string
parkId:
type: integer
parkName:
type: string
parkSlug:
type: string
category:
type: string
readOnly: true
manufacturer:
type: string
readOnly: true
designer:
type: string
readOnly: true
openingYear:
type: string
readOnly: true
height:
type: string
readOnly: true
speed:
type: string
readOnly: true
length:
type: string
readOnly: true
inversions:
type: string
readOnly: true
status:
type: string
readOnly: true
description:
type: string
imageUrl:
type: string
readOnly: true
thrillLevel:
type: string
readOnly: true
required:
- category
- description
- designer
- height
- id
- imageUrl
- inversions
- length
- manufacturer
- name
- openingYear
- parkId
- parkName
- parkSlug
- slug
- speed
- status
- thrillLevel
RideListOutput:
type: object
description: Output serializer for ride list view.
properties:
id:
type: integer
name:
type: string
slug:
type: string
category:
type: string
status:
type: string
description:
type: string
park:
$ref: '#/components/schemas/RideParkOutput'
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
capacity_per_hour:
type: integer
nullable: true
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- average_rating
- capacity_per_hour
- category
- closing_date
- created_at
- description
- id
- name
- opening_date
- park
- slug
- status
- updated_at
RideModelOutput:
type: object
description: Output serializer for ride model data.
properties:
id:
type: integer
name:
type: string
description:
type: string
category:
type: string
manufacturer:
type: string
readOnly: true
required:
- category
- description
- id
- manufacturer
- name
RideParkOutput:
type: object
description: Output serializer for ride's park data.
properties:
id:
type: integer
name:
type: string
slug:
type: string
required:
- id
- name
- slug
RideStatsOutput:
type: object
description: Output serializer for ride statistics.
properties:
total_rides:
type: integer
operating_rides:
type: integer
closed_rides:
type: integer
under_construction:
type: integer
rides_by_category:
type: object
additionalProperties: {}
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
average_capacity:
type: string
format: decimal
pattern: ^-?\d{0,6}(?:\.\d{0,2})?$
nullable: true
top_manufacturers:
type: array
items:
type: object
additionalProperties: {}
recently_added_count:
type: integer
required:
- average_capacity
- average_rating
- closed_rides
- operating_rides
- recently_added_count
- rides_by_category
- top_manufacturers
- total_rides
- under_construction
RideUpdateInputRequest:
type: object
description: Input serializer for updating rides.
properties:
name:
type: string
minLength: 1
maxLength: 255
description:
type: string
category:
enum:
- ''
- RC
- DR
- FR
- WR
- TR
- OT
type: string
description: |-
* `` - Select ride type
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `TR` - Transport
* `OT` - Other
x-spec-enum-id: 5c57e6fc7d8e9340
status:
enum:
- ''
- OPERATING
- CLOSED_TEMP
- SBNO
- CLOSING
- CLOSED_PERM
- UNDER_CONSTRUCTION
- DEMOLISHED
- RELOCATED
type: string
description: |-
* `` - Select status
* `OPERATING` - Operating
* `CLOSED_TEMP` - Temporarily Closed
* `SBNO` - Standing But Not Operating
* `CLOSING` - Closing
* `CLOSED_PERM` - Permanently Closed
* `UNDER_CONSTRUCTION` - Under Construction
* `DEMOLISHED` - Demolished
* `RELOCATED` - Relocated
x-spec-enum-id: 1479301ee25596a0
post_closing_status:
enum:
- SBNO
- CLOSED_PERM
- null
type: string
description: |-
* `SBNO` - Standing But Not Operating
* `CLOSED_PERM` - Permanently Closed
x-spec-enum-id: 6014d88333e8ac3f
nullable: true
park_id:
type: integer
park_area_id:
type: integer
nullable: true
opening_date:
type: string
format: date
nullable: true
closing_date:
type: string
format: date
nullable: true
status_since:
type: string
format: date
nullable: true
min_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
max_height_in:
type: integer
maximum: 90
minimum: 30
nullable: true
capacity_per_hour:
type: integer
minimum: 1
nullable: true
ride_duration_seconds:
type: integer
minimum: 1
nullable: true
manufacturer_id:
type: integer
nullable: true
designer_id:
type: integer
nullable: true
ride_model_id:
type: integer
nullable: true
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: sessionid
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Token-based authentication with required prefix "Token"
tags:
- name: Parks
description: Theme park operations
- name: Rides
description: Ride information and management
- name: Statistics
description: Statistical endpoints providing aggregated data and insights
- name: Reviews
description: User reviews and ratings for parks and rides
- name: locations
description: Geographic location services
- name: accounts
description: User account management
- name: media
description: Media and image management
- name: moderation
description: Content moderation
- name: Parks
description: Operations related to theme parks, including CRUD operations and statistics
- name: Rides
description: Operations related to rides and attractions within theme parks
- name: Statistics
description: Statistical endpoints providing aggregated data and insights
- name: Reviews
description: User reviews and ratings for parks and rides
servers:
- url: https://api.thrillwiki.com/v1
description: Production server
- url: https://staging-api.thrillwiki.com/v1
description: Staging server
- url: http://localhost:8000/api/v1
description: Development server