Files
thrillwiki_django_no_react/schema_no_duplicate.yaml
pacnpal 75cc618c2b update
2025-09-21 20:04:42 -04:00

8136 lines
237 KiB
YAML

openapi: 3.0.3
info:
title: ThrillWiki API
version: 1.0.0
description: Comprehensive theme park and ride information API
paths:
/api/v1/accounts/profiles/:
get:
operationId: v1_accounts_profiles_list
description: Retrieve a list of user profiles.
summary: List user profiles
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:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUserProfileOutputList'
description: ''
post:
operationId: v1_accounts_profiles_create
description: Create a new user profile.
summary: Create user profile
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserProfileCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserProfileCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileOutput'
description: ''
/api/v1/accounts/profiles/{id}/:
get:
operationId: v1_accounts_profiles_retrieve
description: Retrieve a specific user profile by ID.
summary: Get user profile
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user profile.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileOutput'
description: ''
put:
operationId: v1_accounts_profiles_update
description: Update a user profile.
summary: Update user profile
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user profile.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserProfileUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserProfileUpdateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileOutput'
description: ''
patch:
operationId: v1_accounts_profiles_partial_update
description: Partially update a user profile.
summary: Partially update user profile
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user profile.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUserProfileUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUserProfileUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUserProfileUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileOutput'
description: ''
delete:
operationId: v1_accounts_profiles_destroy
description: Delete a user profile.
summary: Delete user profile
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user profile.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
/api/v1/accounts/profiles/me/:
get:
operationId: v1_accounts_profiles_me_retrieve
description: Retrieve the current authenticated user's profile.
summary: Get current user's profile
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileOutput'
description: ''
/api/v1/accounts/toplist-items/:
get:
operationId: v1_accounts_toplist_items_list
description: Retrieve a list of top list items.
summary: List top list items
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:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTopListItemOutputList'
description: ''
post:
operationId: v1_accounts_toplist_items_create
description: Add a new item to a top list.
summary: Create top list item
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListItemCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListItemCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemOutput'
description: ''
/api/v1/accounts/toplist-items/{id}/:
get:
operationId: v1_accounts_toplist_items_retrieve
description: Retrieve a specific top list item by ID.
summary: Get top list item
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list item.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemOutput'
description: ''
put:
operationId: v1_accounts_toplist_items_update
description: Update a top list item.
summary: Update top list item
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list item.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListItemUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListItemUpdateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemOutput'
description: ''
patch:
operationId: v1_accounts_toplist_items_partial_update
description: Partially update a top list item.
summary: Partially update top list item
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list item.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedTopListItemUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedTopListItemUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedTopListItemUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemOutput'
description: ''
delete:
operationId: v1_accounts_toplist_items_destroy
description: Remove an item from a top list.
summary: Delete top list item
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list item.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
/api/v1/accounts/toplist-items/reorder/:
post:
operationId: v1_accounts_toplist_items_reorder_create
description: Reorder items within a top list.
summary: Reorder top list items
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListItemOutputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListItemOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListItemOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
description: ''
/api/v1/accounts/toplists/:
get:
operationId: v1_accounts_toplists_list
description: Retrieve a list of top lists.
summary: List top lists
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:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTopListOutputList'
description: ''
post:
operationId: v1_accounts_toplists_create
description: Create a new top list.
summary: Create top list
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutput'
description: ''
/api/v1/accounts/toplists/{id}/:
get:
operationId: v1_accounts_toplists_retrieve
description: Retrieve a specific top list by ID.
summary: Get top list
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutput'
description: ''
put:
operationId: v1_accounts_toplists_update
description: Update a top list.
summary: Update top list
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListUpdateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutput'
description: ''
patch:
operationId: v1_accounts_toplists_partial_update
description: Partially update a top list.
summary: Partially update top list
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedTopListUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedTopListUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedTopListUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutput'
description: ''
delete:
operationId: v1_accounts_toplists_destroy
description: Delete a top list.
summary: Delete top list
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list.
required: true
tags:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
/api/v1/accounts/toplists/{id}/duplicate/:
post:
operationId: v1_accounts_toplists_duplicate_create
description: Create a copy of an existing top list for the current user.
summary: Duplicate top list
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this top list.
required: true
tags:
- Accounts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TopListOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TopListOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TopListOutput'
description: ''
/api/v1/accounts/toplists/my_lists/:
get:
operationId: v1_accounts_toplists_my_lists_list
description: Retrieve all top lists belonging to the current user.
summary: Get current user's top lists
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:
- Accounts
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTopListOutputList'
description: ''
/api/v1/auth/login/:
post:
operationId: v1_auth_login_create
description: Authenticate user with username/email and password.
summary: User login
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LoginInputRequest'
examples:
LoginInputExample:
value:
username: thrillseeker
password: securepassword123
summary: Example login request
description: Login with username or email and password
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/LoginInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/LoginInputRequest'
required: true
security:
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/LoginOutput'
examples:
LoginOutputExample:
value:
token: abc123def456ghi789
user:
id: 1
username: thrillseeker
email: user@example.com
first_name: John
last_name: Doe
message: Login successful
summary: Example login response
description: Successful login response with token and user data
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/logout/:
post:
operationId: v1_auth_logout_create
description: Logout the current user and invalidate their token.
summary: User logout
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LogoutOutputRequest'
examples:
LogoutOutputExample:
value:
message: Logout successful
summary: Example logout response
description: Successful logout response
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/LogoutOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/LogoutOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/LogoutOutput'
examples:
LogoutOutputExample:
value:
message: Logout successful
summary: Example logout response
description: Successful logout response
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/password/change/:
post:
operationId: v1_auth_password_change_create
description: Change the current user's password.
summary: Change password
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordChangeInputRequest'
examples:
PasswordChangeInputExample:
value:
old_password: oldpassword123
new_password: newpassword456
new_password_confirm: newpassword456
summary: Example password change request
description: Change current user's password
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PasswordChangeInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PasswordChangeInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordChangeOutput'
examples:
PasswordChangeOutputExample:
value:
detail: Password changed successfully
summary: Example password change response
description: Password changed successfully response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/password/reset/:
post:
operationId: v1_auth_password_reset_create
description: Send a password reset email to the user.
summary: Request password reset
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordResetInputRequest'
examples:
PasswordResetInputExample:
value:
email: user@example.com
summary: Example password reset request
description: Request password reset email
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PasswordResetInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PasswordResetInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordResetOutput'
examples:
PasswordResetOutputExample:
value:
detail: Password reset email sent
summary: Example password reset response
description: Password reset email sent response
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/providers/:
get:
operationId: v1_auth_providers_retrieve
description: Retrieve available social authentication providers.
summary: Get social providers
tags:
- Authentication
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/signup/:
post:
operationId: v1_auth_signup_create
description: Register a new user account.
summary: User registration
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SignupInputRequest'
examples:
SignupInputExample:
value:
username: newuser
email: newuser@example.com
password: securepassword123
password_confirm: securepassword123
first_name: Jane
last_name: Smith
summary: Example registration request
description: Register a new user account
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/SignupInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/SignupInputRequest'
required: true
security:
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/SignupOutput'
examples:
SignupOutputExample:
value:
token: abc123def456ghi789
user:
id: 2
username: newuser
email: newuser@example.com
first_name: Jane
last_name: Smith
message: Registration successful
summary: Example registration response
description: Successful registration response with token and user
data
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/auth/status/:
post:
operationId: v1_auth_status_create
description: Check if user is authenticated and return user data.
summary: Check authentication status
tags:
- Authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AuthStatusOutputRequest'
examples:
AuthStatusAuthenticatedExample:
value:
authenticated: true
user:
id: 1
username: thrillseeker
email: user@example.com
first_name: John
last_name: Doe
summary: Example authenticated status
description: Response when user is authenticated
AuthStatusUnauthenticatedExample:
value:
authenticated: false
user: null
summary: Example unauthenticated status
description: Response when user is not authenticated
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AuthStatusOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AuthStatusOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AuthStatusOutput'
examples:
AuthStatusAuthenticatedExample:
value:
authenticated: true
user:
id: 1
username: thrillseeker
email: user@example.com
first_name: John
last_name: Doe
summary: Example authenticated status
description: Response when user is authenticated
AuthStatusUnauthenticatedExample:
value:
authenticated: false
user: null
summary: Example unauthenticated status
description: Response when user is not authenticated
description: ''
/api/v1/auth/user/:
get:
operationId: v1_auth_user_retrieve
description: Retrieve information about the currently authenticated user.
summary: Get current user
tags:
- Authentication
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserOutput'
examples:
UserOutputExample:
value:
id: 1
username: thrillseeker
email: user@example.com
first_name: John
last_name: Doe
is_active: true
date_joined: '2024-01-01T00:00:00Z'
summary: Example user response
description: A typical user object in API responses
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/core/entities/not-found/:
post:
operationId: v1_core_entities_not_found_create
description: Handle entity not found scenarios with fuzzy matching suggestions
and authentication prompts
summary: Handle entity not found
tags:
- Core
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/core/entities/search/:
post:
operationId: v1_core_entities_search_create
description: Perform fuzzy entity search with authentication prompts for entity
creation
summary: Fuzzy entity search
tags:
- Core
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/core/entities/suggestions/:
get:
operationId: v1_core_entities_suggestions_retrieve
description: Lightweight endpoint for quick entity suggestions (e.g., autocomplete)
summary: Quick entity suggestions
tags:
- Core
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/email/send/:
post:
operationId: v1_email_send_create
description: Send an email via the email service.
summary: Send email
tags:
- Email
requestBody:
content:
type:
schema:
type: object
additionalProperties: {}
description: Unspecified request body
properties:
schema:
to:
type: string
format: email
description: Recipient email address
subject:
type: string
description: Email subject
text:
type: string
description: Email body text
from_email:
type: string
format: email
description: Sender email address (optional)
required:
schema:
type: object
additionalProperties: {}
description: Unspecified request body
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
properties:
message:
type: string
response:
type: object
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
'500':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/health/:
get:
operationId: v1_health_retrieve
description: Get comprehensive health check information including system metrics.
summary: Health check
tags:
- Health
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckOutput'
description: ''
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckOutput'
description: ''
/api/v1/health/performance/:
get:
operationId: v1_health_performance_retrieve
description: Get performance metrics and database analysis (debug mode only).
summary: Performance metrics
tags:
- Health
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PerformanceMetricsOutput'
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: Unspecified response body
description: ''
/api/v1/health/simple/:
get:
operationId: v1_health_simple_retrieve
description: Simple health check endpoint for load balancers.
summary: Simple health check
tags:
- Health
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleHealthOutput'
description: ''
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleHealthOutput'
description: ''
/api/v1/history/parks/{park_slug}/:
get:
operationId: v1_history_parks_list
description: Retrieve history timeline for a specific park including all changes
over time.
summary: Get park history
parameters:
- in: query
name: end_date
schema:
type: string
format: date
description: Filter events before this date (YYYY-MM-DD)
- in: query
name: event_type
schema:
type: string
description: Filter by event type (created, updated, deleted)
- in: query
name: limit
schema:
type: integer
description: 'Number of history events to return (default: 50, max: 500)'
- in: query
name: offset
schema:
type: integer
description: Offset for pagination
- 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
- in: path
name: park_slug
schema:
type: string
required: true
- in: query
name: start_date
schema:
type: string
format: date
description: Filter events after this date (YYYY-MM-DD)
tags:
- History
- Parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkHistoryEventList'
description: ''
/api/v1/history/parks/{park_slug}/detail/:
get:
operationId: v1_history_parks_detail_retrieve
description: Retrieve complete history for a park including current state and
timeline.
summary: Get complete park history
parameters:
- in: path
name: park_slug
schema:
type: string
required: true
tags:
- History
- Parks
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkHistoryOutput'
description: ''
/api/v1/history/parks/{park_slug}/rides/{ride_slug}/:
get:
operationId: v1_history_parks_rides_list
description: Retrieve history timeline for a specific ride including all changes
over time.
summary: Get ride history
parameters:
- in: query
name: end_date
schema:
type: string
format: date
description: Filter events before this date (YYYY-MM-DD)
- in: query
name: event_type
schema:
type: string
description: Filter by event type (created, updated, deleted)
- in: query
name: limit
schema:
type: integer
description: 'Number of history events to return (default: 50, max: 500)'
- in: query
name: offset
schema:
type: integer
description: Offset for pagination
- 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
- in: path
name: park_slug
schema:
type: string
required: true
- in: path
name: ride_slug
schema:
type: string
required: true
- in: query
name: start_date
schema:
type: string
format: date
description: Filter events after this date (YYYY-MM-DD)
tags:
- History
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRideHistoryEventList'
description: ''
/api/v1/history/parks/{park_slug}/rides/{ride_slug}/detail/:
get:
operationId: v1_history_parks_rides_detail_retrieve
description: Retrieve complete history for a ride including current state and
timeline.
summary: Get complete ride history
parameters:
- in: path
name: park_slug
schema:
type: string
required: true
- in: path
name: ride_slug
schema:
type: string
required: true
tags:
- History
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideHistoryOutput'
description: ''
/api/v1/history/timeline/:
get:
operationId: v1_history_timeline_list
description: Retrieve a unified timeline of all changes across parks, rides,
and companies.
summary: Unified history timeline
parameters:
- in: query
name: end_date
schema:
type: string
format: date
description: Filter events before this date (YYYY-MM-DD)
- in: query
name: event_type
schema:
type: string
description: Filter by event type (created, updated, deleted)
- in: query
name: limit
schema:
type: integer
description: 'Number of history events to return (default: 100, max: 1000)'
- in: query
name: model_type
schema:
type: string
description: Filter by model type (park, ride, company)
- in: query
name: offset
schema:
type: integer
description: Offset for pagination
- 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
- in: query
name: significance
schema:
type: string
description: Filter by change significance (major, minor, routine)
- in: query
name: start_date
schema:
type: string
format: date
description: Filter events after this date (YYYY-MM-DD)
tags:
- History
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUnifiedHistoryTimelineList'
description: ''
/api/v1/history/timeline/{id}/:
get:
operationId: v1_history_timeline_retrieve
description: Retrieve a specific item from the unified history timeline.
summary: Get unified history timeline item
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- History
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UnifiedHistoryTimeline'
description: ''
/api/v1/maps/bounds/:
get:
operationId: v1_maps_bounds_retrieve
description: Get locations within specific geographic bounds.
summary: Get locations within bounds
parameters:
- in: query
name: east
schema:
type: number
description: Eastern longitude bound
required: true
- in: query
name: north
schema:
type: number
description: Northern latitude bound
required: true
- in: query
name: south
schema:
type: number
description: Southern latitude bound
required: true
- in: query
name: west
schema:
type: number
description: Western longitude bound
required: true
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/cache/:
post:
operationId: v1_maps_cache_create
description: Invalidate specific cache entries.
summary: Invalidate specific cache entries
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
delete:
operationId: v1_maps_cache_destroy
description: Clear all map cache (admin only).
summary: Clear map cache
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/cache/invalidate/:
post:
operationId: v1_maps_cache_invalidate_create
description: Invalidate specific cache entries.
summary: Invalidate specific cache entries
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
delete:
operationId: v1_maps_cache_invalidate_destroy
description: Clear all map cache (admin only).
summary: Clear map cache
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/locations/:
get:
operationId: v1_maps_locations_retrieve
description: Get map locations with optional clustering and filtering.
summary: Get map locations
parameters:
- in: query
name: cluster
schema:
type: boolean
description: Enable clustering
- in: query
name: east
schema:
type: number
description: Eastern longitude bound
- in: query
name: north
schema:
type: number
description: Northern latitude bound
- in: query
name: q
schema:
type: string
description: Text query
- in: query
name: south
schema:
type: number
description: Southern latitude bound
- in: query
name: types
schema:
type: string
description: Comma-separated location types
- in: query
name: west
schema:
type: number
description: Western longitude bound
- in: query
name: zoom
schema:
type: integer
description: Map zoom level
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/locations/{location_type}/{location_id}/:
get:
operationId: v1_maps_locations_retrieve_2
description: Get detailed information about a specific location.
summary: Get location details
parameters:
- in: path
name: location_id
schema:
type: integer
description: ID of the location
required: true
- in: path
name: location_type
schema:
type: string
description: Type of location
required: true
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/search/:
get:
operationId: v1_maps_search_retrieve
description: Search locations by text query with optional bounds filtering.
summary: Search map locations
parameters:
- in: query
name: q
schema:
type: string
description: Search query
required: true
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/maps/stats/:
get:
operationId: v1_maps_stats_retrieve
description: Get map service statistics and performance metrics.
summary: Get map service statistics
tags:
- Maps
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/media/photos/:
get:
operationId: v1_media_photos_list
description: Retrieve a list of photos with optional filtering
summary: List photos
parameters:
- in: query
name: content_type
schema:
type: string
description: Filter by content type (e.g., 'parks.park', 'rides.ride')
- in: query
name: is_primary
schema:
type: boolean
description: Filter by primary photos only
- in: query
name: object_id
schema:
type: integer
description: Filter by object ID
- 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:
- Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedPhotoListOutputList'
description: ''
post:
operationId: v1_media_photos_create
description: 'Create a new photo entry (note: use PhotoUploadAPIView for actual
file uploads)'
summary: Create photo
tags:
- Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoDetailOutput'
examples:
PhotoDetailExample:
value:
id: 1
url: https://example.com/media/photos/ride123.jpg
thumbnail_url: https://example.com/media/thumbnails/ride123_thumb.jpg
caption: Amazing view of Steel Vengeance
alt_text: Steel Vengeance roller coaster with blue sky
is_primary: true
uploaded_at: '2024-08-15T10:30:00Z'
uploaded_by:
id: 1
username: coaster_photographer
display_name: Coaster Photographer
content_type: Ride
object_id: 123
summary: Example photo detail response
description: A photo with full details
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/media/photos/{id}/:
get:
operationId: v1_media_photos_retrieve
description: Retrieve detailed information about a specific photo
summary: Get photo details
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoDetailOutput'
examples:
PhotoDetailExample:
value:
id: 1
url: https://example.com/media/photos/ride123.jpg
thumbnail_url: https://example.com/media/thumbnails/ride123_thumb.jpg
caption: Amazing view of Steel Vengeance
alt_text: Steel Vengeance roller coaster with blue sky
is_primary: true
uploaded_at: '2024-08-15T10:30:00Z'
uploaded_by:
id: 1
username: coaster_photographer
display_name: Coaster Photographer
content_type: Ride
object_id: 123
summary: Example photo detail response
description: A photo with full details
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
put:
operationId: v1_media_photos_update
description: Update photo information (caption, alt text, etc.)
summary: Update photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PhotoUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoDetailOutput'
examples:
PhotoDetailExample:
value:
id: 1
url: https://example.com/media/photos/ride123.jpg
thumbnail_url: https://example.com/media/thumbnails/ride123_thumb.jpg
caption: Amazing view of Steel Vengeance
alt_text: Steel Vengeance roller coaster with blue sky
is_primary: true
uploaded_at: '2024-08-15T10:30:00Z'
uploaded_by:
id: 1
username: coaster_photographer
display_name: Coaster Photographer
content_type: Ride
object_id: 123
summary: Example photo detail response
description: A photo with full details
description: ''
'400':
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: ''
patch:
operationId: v1_media_photos_partial_update
description: Partially update photo information (caption, alt text, etc.)
summary: Partially update photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedPhotoUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedPhotoUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedPhotoUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoDetailOutput'
examples:
PhotoDetailExample:
value:
id: 1
url: https://example.com/media/photos/ride123.jpg
thumbnail_url: https://example.com/media/thumbnails/ride123_thumb.jpg
caption: Amazing view of Steel Vengeance
alt_text: Steel Vengeance roller coaster with blue sky
is_primary: true
uploaded_at: '2024-08-15T10:30:00Z'
uploaded_by:
id: 1
username: coaster_photographer
display_name: Coaster Photographer
content_type: Ride
object_id: 123
summary: Example photo detail response
description: A photo with full details
description: ''
'400':
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: ''
delete:
operationId: v1_media_photos_destroy
description: Delete a photo (only by owner or admin)
summary: Delete photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'204':
description: No response body
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/media/photos/{id}/set_primary/:
post:
operationId: v1_media_photos_set_primary_create
description: Set this photo as the primary photo for its content object
summary: Set photo as primary
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoDetailOutputRequest'
examples:
PhotoDetailExample:
value:
id: 1
url: https://example.com/media/photos/ride123.jpg
thumbnail_url: https://example.com/media/thumbnails/ride123_thumb.jpg
caption: Amazing view of Steel Vengeance
alt_text: Steel Vengeance roller coaster with blue sky
is_primary: true
uploaded_at: '2024-08-15T10:30:00Z'
uploaded_by:
id: 1
username: coaster_photographer
display_name: Coaster Photographer
content_type: Ride
object_id: 123
summary: Example photo detail response
description: A photo with full details
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PhotoDetailOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PhotoDetailOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
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/media/photos/bulk-action/:
post:
operationId: v1_media_photos_bulk_action_create
description: Perform bulk actions on multiple photos (delete, approve, etc.)
summary: Bulk photo actions
tags:
- Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPhotoActionInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/BulkPhotoActionInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/BulkPhotoActionInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPhotoActionOutput'
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/media/stats/:
get:
operationId: v1_media_stats_retrieve
description: Retrieve statistics about photos and media usage
summary: Get media statistics
tags:
- Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MediaStatsOutput'
description: ''
/api/v1/media/upload/:
post:
operationId: v1_media_upload_create
description: Upload a photo and associate it with a content object (park, ride,
etc.)
summary: Upload photo
tags:
- Media
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/PhotoUploadInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PhotoUploadInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/PhotoUploadOutput'
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/photos/:
get:
operationId: v1_parks_photos_list
description: Retrieve a paginated list of park photos with filtering capabilities.
summary: List park photos
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:
- Park Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedParkPhotoListOutputList'
description: ''
post:
operationId: v1_parks_photos_create
description: Upload a new photo for a park. Requires authentication.
summary: Upload park photo
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoCreateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkPhotoCreateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkPhotoCreateInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutput'
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'401':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/photos/{id}/:
get:
operationId: v1_parks_photos_retrieve
description: Retrieve detailed information about a specific park photo.
summary: Get park photo details
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutput'
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
put:
operationId: v1_parks_photos_update
description: Update park photo information. Requires authentication and ownership
or admin privileges.
summary: Update park photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkPhotoUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkPhotoUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutput'
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'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: ''
patch:
operationId: v1_parks_photos_partial_update
description: Partially update park photo information. Requires authentication
and ownership or admin privileges.
summary: Partially update park photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedParkPhotoUpdateInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedParkPhotoUpdateInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedParkPhotoUpdateInputRequest'
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutput'
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'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: ''
delete:
operationId: v1_parks_photos_destroy
description: Delete a park photo. Requires authentication and ownership or admin
privileges.
summary: Delete park photo
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
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/photos/{id}/set_primary/:
post:
operationId: v1_parks_photos_set_primary_create
description: Set this photo as the primary photo for the park
summary: Set photo as primary
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'400':
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/photos/{id}/set_primary_legacy/:
post:
operationId: v1_parks_photos_set_primary_legacy_create
description: Legacy set primary action for backwards compatibility
summary: Set photo as primary (legacy)
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this park photo.
required: true
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkPhotoOutputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/photos/bulk_approve/:
post:
operationId: v1_parks_photos_bulk_approve_create
description: Bulk approve or reject multiple park photos (admin only)
summary: Bulk approve/reject photos
tags:
- Park Media
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoApprovalInputRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ParkPhotoApprovalInputRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ParkPhotoApprovalInputRequest'
required: true
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'400':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/parks/photos/stats/:
get:
operationId: v1_parks_photos_stats_retrieve
description: Get photo statistics for the park
summary: Get park photo statistics
tags:
- Park Media
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ParkPhotoStatsOutput'
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'500':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rankings/:
get:
operationId: v1_rankings_list
description: Get the current ride rankings calculated using the Internet Roller
Coaster Poll algorithm.
summary: List ride rankings
parameters:
- in: query
name: category
schema:
type: string
enum:
- DR
- FR
- OT
- RC
- TR
- WR
description: Filter by ride category (RC, DR, FR, WR, TR, OT)
- in: query
name: min_riders
schema:
type: integer
description: Minimum number of mutual riders required
- in: query
name: ordering
schema:
type: string
description: Order results (rank, -rank, winning_percentage, -winning_percentage)
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: query
name: park
schema:
type: string
description: Filter by park slug
- in: query
name: ride__category
schema:
type: string
enum:
- ''
- DR
- FR
- OT
- RC
- TR
- WR
description: |-
* `` - Select ride type
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `TR` - Transport
* `OT` - Other
tags:
- Rankings
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRideRankingList'
examples:
RideRankingExample:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- id: 1
rank: 1
ride:
id: 123
name: Steel Vengeance
slug: steel-vengeance
park:
id: 45
name: Cedar Point
slug: cedar-point
category: RC
wins: 523
losses: 87
ties: 45
winning_percentage: 0.8234
mutual_riders_count: 1250
comparison_count: 655
average_rating: 9.2
last_calculated: '2024-01-15T02:00:00Z'
rank_change: 2
previous_rank: 3
summary: Example ranking response
description: A ride ranking with all metrics
description: ''
/api/v1/rankings/{ride_slug}/:
get:
operationId: v1_rankings_retrieve
description: Get detailed ranking information for a specific ride.
summary: Get ranking details
parameters:
- in: path
name: ride_slug
schema:
type: string
required: true
tags:
- Rankings
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RideRankingDetail'
description: ''
'404':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rankings/{ride_slug}/comparisons/:
get:
operationId: v1_rankings_comparisons_retrieve
description: Get head-to-head comparisons for a specific ride
summary: Get ride comparisons
parameters:
- in: path
name: ride_slug
schema:
type: string
required: true
tags:
- Rankings
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rankings/{ride_slug}/history/:
get:
operationId: v1_rankings_history_list
description: Get historical ranking data for a specific ride.
summary: Get ranking history
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
- in: query
name: ride__category
schema:
type: string
enum:
- ''
- DR
- FR
- OT
- RC
- TR
- WR
description: |-
* `` - Select ride type
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `TR` - Transport
* `OT` - Other
- in: path
name: ride_slug
schema:
type: string
required: true
tags:
- Rankings
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRankingSnapshotList'
description: ''
/api/v1/rankings/calculate/:
post:
operationId: v1_rankings_calculate_create
description: Manually trigger a ranking calculation (admin only).
summary: Trigger ranking calculation
tags:
- Rankings
- Admin
security:
- cookieAuth: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
'403':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rankings/statistics/:
get:
operationId: v1_rankings_statistics_retrieve
description: Get overall statistics about the ranking system.
summary: Get ranking statistics
tags:
- Rankings
- Statistics
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RankingStats'
description: ''
/api/v1/rides/:
get:
operationId: v1_rides_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/{id}/:
get:
operationId: v1_rides_retrieve
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
put:
operationId: v1_rides_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
patch:
operationId: v1_rides_partial_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
delete:
operationId: v1_rides_destroy
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
/api/v1/rides/{id}/delete/:
get:
operationId: v1_rides_delete_retrieve
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
put:
operationId: v1_rides_delete_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
patch:
operationId: v1_rides_delete_partial_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
delete:
operationId: v1_rides_delete_destroy
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
/api/v1/rides/{id}/publish/:
get:
operationId: v1_rides_publish_retrieve
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
put:
operationId: v1_rides_publish_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
patch:
operationId: v1_rides_publish_partial_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
delete:
operationId: v1_rides_publish_destroy
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
/api/v1/rides/{id}/unpublish/:
get:
operationId: v1_rides_unpublish_retrieve
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
put:
operationId: v1_rides_unpublish_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
patch:
operationId: v1_rides_unpublish_partial_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
delete:
operationId: v1_rides_unpublish_destroy
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
/api/v1/rides/{id}/update/:
get:
operationId: v1_rides_update_retrieve
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
put:
operationId: v1_rides_update_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
patch:
operationId: v1_rides_update_partial_update
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
delete:
operationId: v1_rides_update_destroy
summary: Retrieve, update or delete a ride
parameters:
- in: path
name: id
schema:
type: integer
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: ''
/api/v1/rides/bulk-create/:
get:
operationId: v1_rides_bulk_create_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_bulk_create_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/bulk-delete/:
get:
operationId: v1_rides_bulk_delete_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_bulk_delete_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/bulk-update/:
get:
operationId: v1_rides_bulk_update_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_bulk_update_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/create/:
get:
operationId: v1_rides_create_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_create_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/export/:
get:
operationId: v1_rides_export_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_export_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/featured/:
get:
operationId: v1_rides_featured_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_featured_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/filter-options/:
get:
operationId: v1_rides_filter_options_retrieve
description: Return static/dynamic filter options used by the frontend.
summary: Get filter options for rides
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rides/import/:
get:
operationId: v1_rides_import_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_import_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/list/:
get:
operationId: v1_rides_list_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_list_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/recommendations/:
get:
operationId: v1_rides_recommendations_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_recommendations_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/related/:
get:
operationId: v1_rides_related_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_related_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/search/:
get:
operationId: v1_rides_search_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_search_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/search-suggestions/:
get:
operationId: v1_rides_search_suggestions_retrieve
summary: Search suggestions for ride search box
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/rides/search/companies/:
get:
operationId: v1_rides_search_companies_retrieve
summary: Search companies (manufacturers/designers) for autocomplete
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/rides/search/ride-models/:
get:
operationId: v1_rides_search_ride_models_retrieve
summary: Search ride models for autocomplete
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/rides/stats/:
get:
operationId: v1_rides_stats_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_stats_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/rides/trending/:
get:
operationId: v1_rides_trending_list
description: List rides with basic filtering and pagination.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
post:
operationId: v1_rides_trending_create
description: Create a new ride.
summary: List rides or create a new ride
tags:
- Rides
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RideListOutput'
examples:
RideListExample:
value:
- 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: ''
'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: ''
/api/v1/trending/content/:
get:
operationId: v1_trending_content_retrieve
description: Retrieve trending parks and rides based on view counts, ratings,
and recency.
summary: Get trending content
parameters:
- in: query
name: limit
schema:
type: integer
default: 20
description: 'Number of trending items to return (default: 20, max: 100)'
- in: query
name: timeframe
schema:
type: string
enum:
- day
- month
- week
default: week
description: 'Timeframe for trending calculation (day, week, month) - default:
week'
tags:
- Trending
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
/api/v1/trending/new/:
get:
operationId: v1_trending_new_retrieve
description: Retrieve recently added parks and rides.
summary: Get new content
parameters:
- in: query
name: days
schema:
type: integer
default: 30
description: 'Number of days to look back for new content (default: 30, max:
365)'
- in: query
name: limit
schema:
type: integer
default: 20
description: 'Number of new items to return (default: 20, max: 100)'
tags:
- Trending
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: object
additionalProperties: {}
description: ''
components:
schemas:
ActionEnum:
enum:
- delete
- approve
- reject
type: string
description: |-
* `delete` - Delete
* `approve` - Approve
* `reject` - Reject
AuthStatusOutput:
type: object
description: Output serializer for authentication status.
properties:
authenticated:
type: boolean
description: Whether user is authenticated
user:
allOf:
- $ref: '#/components/schemas/UserOutput'
nullable: true
description: User information if authenticated
required:
- authenticated
- user
AuthStatusOutputRequest:
type: object
description: Output serializer for authentication status.
properties:
authenticated:
type: boolean
description: Whether user is authenticated
user:
allOf:
- $ref: '#/components/schemas/UserOutputRequest'
nullable: true
description: User information if authenticated
required:
- authenticated
- user
BulkPhotoActionInputRequest:
type: object
description: Input serializer for bulk photo actions.
properties:
photo_ids:
type: array
items:
type: integer
description: List of photo IDs to perform action on
action:
allOf:
- $ref: '#/components/schemas/ActionEnum'
description: |-
Action to perform on selected photos
* `delete` - Delete
* `approve` - Approve
* `reject` - Reject
required:
- action
- photo_ids
BulkPhotoActionOutput:
type: object
description: Output serializer for bulk photo actions.
properties:
success_count:
type: integer
failed_count:
type: integer
error_messages:
type: array
items:
type: string
message:
type: string
required:
- failed_count
- message
- success_count
CategoryEnum:
enum:
- RC
- DR
- FR
- WR
- PK
type: string
description: |-
* `RC` - Roller Coaster
* `DR` - Dark Ride
* `FR` - Flat Ride
* `WR` - Water Ride
* `PK` - Park
HealthCheckOutput:
type: object
description: Output serializer for health check responses.
properties:
status:
$ref: '#/components/schemas/HealthCheckOutputStatusEnum'
timestamp:
type: string
format: date-time
version:
type: string
environment:
type: string
response_time_ms:
type: number
format: double
checks:
type: object
additionalProperties: {}
metrics:
type: object
additionalProperties: {}
required:
- checks
- environment
- metrics
- response_time_ms
- status
- timestamp
- version
HealthCheckOutputStatusEnum:
enum:
- healthy
- unhealthy
type: string
description: |-
* `healthy` - healthy
* `unhealthy` - unhealthy
HistorySummary:
type: object
description: Serializer for history summary information.
properties:
total_events:
type: integer
first_recorded:
type: string
format: date-time
nullable: true
last_modified:
type: string
format: date-time
nullable: true
required:
- first_recorded
- last_modified
- total_events
LoginInputRequest:
type: object
description: Input serializer for user login.
properties:
username:
type: string
minLength: 1
description: Username or email address
maxLength: 150
password:
type: string
writeOnly: true
minLength: 1
description: User password
required:
- password
- username
LoginOutput:
type: object
description: Output serializer for login response.
properties:
token:
type: string
description: Authentication token
user:
allOf:
- $ref: '#/components/schemas/UserOutput'
description: User information
message:
type: string
description: Success message
required:
- message
- token
- user
LogoutOutput:
type: object
description: Output serializer for logout response.
properties:
message:
type: string
description: Success message
required:
- message
LogoutOutputRequest:
type: object
description: Output serializer for logout response.
properties:
message:
type: string
minLength: 1
description: Success message
required:
- message
MediaStatsOutput:
type: object
description: Output serializer for media statistics.
properties:
total_photos:
type: integer
photos_by_content_type:
type: object
additionalProperties: {}
recent_uploads:
type: integer
top_uploaders:
type: array
items: {}
storage_usage:
type: object
additionalProperties: {}
required:
- photos_by_content_type
- recent_uploads
- storage_usage
- top_uploaders
- total_photos
PaginatedParkHistoryEventList:
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/ParkHistoryEvent'
PaginatedParkPhotoListOutputList:
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/ParkPhotoListOutput'
PaginatedPhotoListOutputList:
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/PhotoListOutput'
PaginatedRankingSnapshotList:
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/RankingSnapshot'
PaginatedRideHistoryEventList:
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/RideHistoryEvent'
PaginatedRideRankingList:
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/RideRanking'
PaginatedTopListItemOutputList:
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/TopListItemOutput'
PaginatedTopListOutputList:
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/TopListOutput'
PaginatedUnifiedHistoryTimelineList:
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/UnifiedHistoryTimeline'
PaginatedUserProfileOutputList:
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/UserProfileOutput'
ParkHistoryEvent:
type: object
description: Serializer for park history events.
properties:
pgh_id:
type: integer
readOnly: true
pgh_created_at:
type: string
format: date-time
readOnly: true
pgh_label:
type: string
readOnly: true
pgh_obj_id:
type: integer
readOnly: true
pgh_context:
readOnly: true
nullable: true
pgh_data:
readOnly: true
event_type:
type: string
readOnly: true
changes:
type: object
additionalProperties: {}
readOnly: true
required:
- changes
- event_type
- pgh_context
- pgh_created_at
- pgh_data
- pgh_id
- pgh_label
- pgh_obj_id
ParkHistoryOutput:
type: object
description: Output serializer for complete park history.
properties:
park:
type: object
additionalProperties: {}
readOnly: true
current_state:
type: object
additionalProperties: {}
readOnly: true
summary:
$ref: '#/components/schemas/HistorySummary'
events:
type: array
items:
$ref: '#/components/schemas/ParkHistoryEvent'
required:
- current_state
- events
- park
- summary
ParkPhotoApprovalInputRequest:
type: object
description: Input serializer for bulk photo approval operations.
properties:
photo_ids:
type: array
items:
type: integer
description: List of photo IDs to approve
approve:
type: boolean
default: true
description: Whether to approve (True) or reject (False) the photos
required:
- photo_ids
ParkPhotoCreateInputRequest:
type: object
description: Input serializer for creating park photos.
properties:
image:
type: string
format: binary
caption:
type: string
maxLength: 255
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
required:
- image
ParkPhotoListOutput:
type: object
description: Optimized output serializer for park photo lists.
properties:
id:
type: integer
readOnly: true
image:
type: string
format: uri
readOnly: true
caption:
type: string
readOnly: true
is_primary:
type: boolean
readOnly: true
is_approved:
type: boolean
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
uploaded_by_username:
type: string
readOnly: true
required:
- caption
- created_at
- id
- image
- is_approved
- is_primary
- uploaded_by_username
ParkPhotoOutput:
type: object
description: Enhanced output serializer for park photos with rich field structure.
properties:
id:
type: integer
readOnly: true
image:
type: string
format: uri
caption:
type: string
maxLength: 255
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
is_approved:
type: boolean
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
date_taken:
type: string
format: date-time
nullable: true
uploaded_by_username:
type: string
readOnly: true
file_size:
type: integer
nullable: true
description: File size in bytes
readOnly: true
dimensions:
type: array
items:
type: integer
nullable: true
description: Image dimensions as [width, height] in pixels
readOnly: true
park_slug:
type: string
readOnly: true
park_name:
type: string
readOnly: true
required:
- created_at
- dimensions
- file_size
- id
- image
- park_name
- park_slug
- updated_at
- uploaded_by_username
ParkPhotoOutputRequest:
type: object
description: Enhanced output serializer for park photos with rich field structure.
properties:
image:
type: string
format: binary
caption:
type: string
maxLength: 255
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
is_approved:
type: boolean
date_taken:
type: string
format: date-time
nullable: true
required:
- image
ParkPhotoStatsOutput:
type: object
description: Output serializer for park photo statistics.
properties:
total_photos:
type: integer
approved_photos:
type: integer
pending_photos:
type: integer
has_primary:
type: boolean
recent_uploads:
type: integer
required:
- approved_photos
- has_primary
- pending_photos
- recent_uploads
- total_photos
ParkPhotoUpdateInputRequest:
type: object
description: Input serializer for updating park photos.
properties:
caption:
type: string
maxLength: 255
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
PasswordChangeInputRequest:
type: object
description: Input serializer for password change.
properties:
old_password:
type: string
writeOnly: true
minLength: 1
description: Current password
new_password:
type: string
writeOnly: true
minLength: 1
description: New password
new_password_confirm:
type: string
writeOnly: true
minLength: 1
description: New password confirmation
required:
- new_password
- new_password_confirm
- old_password
PasswordChangeOutput:
type: object
description: Output serializer for password change response.
properties:
detail:
type: string
description: Success message
required:
- detail
PasswordResetInputRequest:
type: object
description: Input serializer for password reset request.
properties:
email:
type: string
format: email
minLength: 1
description: Email address for password reset
required:
- email
PasswordResetOutput:
type: object
description: Output serializer for password reset response.
properties:
detail:
type: string
description: Success message
required:
- detail
PatchedParkPhotoUpdateInputRequest:
type: object
description: Input serializer for updating park photos.
properties:
caption:
type: string
maxLength: 255
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
PatchedPhotoUpdateInputRequest:
type: object
description: Input serializer for updating photos.
properties:
caption:
type: string
maxLength: 500
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
PatchedTopListItemUpdateInputRequest:
type: object
properties:
object_id:
type: integer
maximum: 2147483647
minimum: 0
rank:
type: integer
maximum: 2147483647
minimum: 0
notes:
type: string
top_list:
type: integer
content_type:
type: integer
PatchedTopListUpdateInputRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 100
category:
$ref: '#/components/schemas/CategoryEnum'
description:
type: string
PatchedUserProfileUpdateInputRequest:
type: object
properties:
display_name:
type: string
minLength: 1
description: This is the name that will be displayed on the site
maxLength: 50
avatar:
type: string
format: binary
pronouns:
type: string
maxLength: 50
bio:
type: string
maxLength: 500
twitter:
type: string
format: uri
maxLength: 200
instagram:
type: string
format: uri
maxLength: 200
youtube:
type: string
format: uri
maxLength: 200
discord:
type: string
maxLength: 100
coaster_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
dark_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
flat_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
water_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
PerformanceMetricsOutput:
type: object
description: Output serializer for performance metrics.
properties:
timestamp:
type: string
format: date-time
database_analysis:
type: object
additionalProperties: {}
cache_performance:
type: object
additionalProperties: {}
recent_slow_queries:
type: array
items: {}
required:
- cache_performance
- database_analysis
- recent_slow_queries
- timestamp
PhotoDetailOutput:
type: object
description: Output serializer for photo details.
properties:
id:
type: integer
url:
type: string
format: uri
thumbnail_url:
type: string
format: uri
caption:
type: string
alt_text:
type: string
is_primary:
type: boolean
uploaded_at:
type: string
format: date-time
content_type:
type: string
object_id:
type: integer
file_size:
type: integer
width:
type: integer
height:
type: integer
format:
type: string
uploaded_by:
type: object
additionalProperties: {}
readOnly: true
required:
- alt_text
- caption
- content_type
- file_size
- format
- height
- id
- is_primary
- object_id
- uploaded_at
- uploaded_by
- url
- width
PhotoDetailOutputRequest:
type: object
description: Output serializer for photo details.
properties:
id:
type: integer
url:
type: string
format: uri
minLength: 1
thumbnail_url:
type: string
format: uri
minLength: 1
caption:
type: string
minLength: 1
alt_text:
type: string
minLength: 1
is_primary:
type: boolean
uploaded_at:
type: string
format: date-time
content_type:
type: string
minLength: 1
object_id:
type: integer
file_size:
type: integer
width:
type: integer
height:
type: integer
format:
type: string
minLength: 1
required:
- alt_text
- caption
- content_type
- file_size
- format
- height
- id
- is_primary
- object_id
- uploaded_at
- url
- width
PhotoListOutput:
type: object
description: Output serializer for photo list view.
properties:
id:
type: integer
url:
type: string
format: uri
thumbnail_url:
type: string
format: uri
caption:
type: string
is_primary:
type: boolean
uploaded_at:
type: string
format: date-time
uploaded_by:
type: object
additionalProperties: {}
readOnly: true
required:
- caption
- id
- is_primary
- uploaded_at
- uploaded_by
- url
PhotoUpdateInputRequest:
type: object
description: Input serializer for updating photos.
properties:
caption:
type: string
maxLength: 500
alt_text:
type: string
maxLength: 255
is_primary:
type: boolean
PhotoUploadInputRequest:
type: object
description: Input serializer for photo uploads.
properties:
photo:
type: string
format: binary
description: The image file to upload
app_label:
type: string
minLength: 1
description: App label of the content object (e.g., 'parks', 'rides')
maxLength: 100
model:
type: string
minLength: 1
description: Model name of the content object (e.g., 'park', 'ride')
maxLength: 100
object_id:
type: integer
description: ID of the content object
caption:
type: string
description: Optional caption for the photo
maxLength: 500
alt_text:
type: string
description: Optional alt text for accessibility
maxLength: 255
is_primary:
type: boolean
default: false
description: Whether this should be the primary photo
photo_type:
type: string
minLength: 1
default: general
description: 'Type of photo (for rides: ''general'', ''on_ride'', ''construction'',
etc.)'
maxLength: 50
required:
- app_label
- model
- object_id
- photo
PhotoUploadOutput:
type: object
description: Output serializer for photo uploads.
properties:
id:
type: integer
url:
type: string
caption:
type: string
alt_text:
type: string
is_primary:
type: boolean
message:
type: string
required:
- alt_text
- caption
- id
- is_primary
- message
- url
RankingSnapshot:
type: object
description: Serializer for ranking history snapshots.
properties:
id:
type: integer
readOnly: true
ride:
type: integer
ride_name:
type: string
readOnly: true
park_name:
type: string
readOnly: true
rank:
type: integer
maximum: 2147483647
minimum: 0
winning_percentage:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,4})?$
snapshot_date:
type: string
format: date
description: Date when this ranking snapshot was taken
required:
- id
- park_name
- rank
- ride
- ride_name
- snapshot_date
- winning_percentage
RankingStats:
type: object
description: Serializer for ranking system statistics.
properties:
total_ranked_rides:
type: integer
total_comparisons:
type: integer
last_calculation_time:
type: string
format: date-time
calculation_duration:
type: number
format: double
top_rated_ride:
type: object
additionalProperties: {}
most_compared_ride:
type: object
additionalProperties: {}
biggest_rank_change:
type: object
additionalProperties: {}
required:
- biggest_rank_change
- calculation_duration
- last_calculation_time
- most_compared_ride
- top_rated_ride
- total_comparisons
- total_ranked_rides
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: object
additionalProperties: {}
nullable: true
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: object
additionalProperties: {}
nullable: true
readOnly: true
designer:
type: object
additionalProperties: {}
nullable: true
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
RideHistoryEvent:
type: object
description: Serializer for ride history events.
properties:
pgh_id:
type: integer
readOnly: true
pgh_created_at:
type: string
format: date-time
readOnly: true
pgh_label:
type: string
readOnly: true
pgh_obj_id:
type: integer
readOnly: true
pgh_context:
readOnly: true
nullable: true
pgh_data:
readOnly: true
event_type:
type: string
readOnly: true
changes:
type: object
additionalProperties: {}
readOnly: true
required:
- changes
- event_type
- pgh_context
- pgh_created_at
- pgh_data
- pgh_id
- pgh_label
- pgh_obj_id
RideHistoryOutput:
type: object
description: Output serializer for complete ride history.
properties:
ride:
type: object
additionalProperties: {}
readOnly: true
current_state:
type: object
additionalProperties: {}
readOnly: true
summary:
$ref: '#/components/schemas/HistorySummary'
events:
type: array
items:
$ref: '#/components/schemas/RideHistoryEvent'
required:
- current_state
- events
- ride
- summary
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: object
additionalProperties: {}
nullable: true
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
RideRanking:
type: object
description: Serializer for ride rankings.
properties:
id:
type: integer
readOnly: true
rank:
type: integer
maximum: 2147483647
minimum: 0
description: Overall rank position (1 = best)
ride:
type: object
additionalProperties: {}
readOnly: true
wins:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides this ride beats in pairwise comparisons
losses:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides that beat this ride in pairwise comparisons
ties:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides with equal preference in pairwise comparisons
winning_percentage:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,4})?$
description: Win percentage where ties count as 0.5
mutual_riders_count:
type: integer
maximum: 2147483647
minimum: 0
description: Total number of users who have rated this ride
comparison_count:
type: integer
maximum: 2147483647
minimum: 0
description: Number of other rides this was compared against
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
description: Average rating from all users who have rated this ride
last_calculated:
type: string
format: date-time
description: When this ranking was last calculated
rank_change:
type: integer
nullable: true
readOnly: true
previous_rank:
type: integer
nullable: true
readOnly: true
required:
- id
- previous_rank
- rank
- rank_change
- ride
- winning_percentage
RideRankingDetail:
type: object
description: Detailed serializer for a specific ride's ranking.
properties:
id:
type: integer
readOnly: true
rank:
type: integer
maximum: 2147483647
minimum: 0
description: Overall rank position (1 = best)
ride:
type: object
additionalProperties: {}
readOnly: true
wins:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides this ride beats in pairwise comparisons
losses:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides that beat this ride in pairwise comparisons
ties:
type: integer
maximum: 2147483647
minimum: 0
description: Number of rides with equal preference in pairwise comparisons
winning_percentage:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,4})?$
description: Win percentage where ties count as 0.5
mutual_riders_count:
type: integer
maximum: 2147483647
minimum: 0
description: Total number of users who have rated this ride
comparison_count:
type: integer
maximum: 2147483647
minimum: 0
description: Number of other rides this was compared against
average_rating:
type: string
format: decimal
pattern: ^-?\d{0,1}(?:\.\d{0,2})?$
nullable: true
description: Average rating from all users who have rated this ride
last_calculated:
type: string
format: date-time
description: When this ranking was last calculated
calculation_version:
type: string
description: Algorithm version used for calculation
maxLength: 10
head_to_head_comparisons:
type: array
items:
type: object
additionalProperties: {}
readOnly: true
ranking_history:
type: array
items:
type: object
additionalProperties: {}
readOnly: true
required:
- head_to_head_comparisons
- id
- rank
- ranking_history
- ride
- winning_percentage
SignupInputRequest:
type: object
description: Input serializer for user registration.
properties:
username:
type: string
minLength: 1
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
password:
type: string
writeOnly: true
minLength: 1
description: User password
password_confirm:
type: string
writeOnly: true
minLength: 1
description: Password confirmation
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
required:
- password
- password_confirm
- username
SignupOutput:
type: object
description: Output serializer for registration response.
properties:
token:
type: string
description: Authentication token
user:
allOf:
- $ref: '#/components/schemas/UserOutput'
description: User information
message:
type: string
description: Success message
required:
- message
- token
- user
SimpleHealthOutput:
type: object
description: Output serializer for simple health check.
properties:
status:
$ref: '#/components/schemas/SimpleHealthOutputStatusEnum'
timestamp:
type: string
format: date-time
error:
type: string
required:
- status
- timestamp
SimpleHealthOutputStatusEnum:
enum:
- ok
- error
type: string
description: |-
* `ok` - ok
* `error` - error
TopListCreateInputRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 100
category:
$ref: '#/components/schemas/CategoryEnum'
description:
type: string
user:
type: integer
required:
- category
- title
- user
TopListItemCreateInputRequest:
type: object
properties:
object_id:
type: integer
maximum: 2147483647
minimum: 0
rank:
type: integer
maximum: 2147483647
minimum: 0
notes:
type: string
top_list:
type: integer
content_type:
type: integer
required:
- content_type
- object_id
- rank
- top_list
TopListItemOutput:
type: object
properties:
id:
type: integer
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
object_id:
type: integer
maximum: 2147483647
minimum: 0
rank:
type: integer
maximum: 2147483647
minimum: 0
notes:
type: string
top_list:
type: integer
content_type:
type: integer
required:
- content_type
- created_at
- id
- object_id
- rank
- top_list
- updated_at
TopListItemOutputRequest:
type: object
properties:
object_id:
type: integer
maximum: 2147483647
minimum: 0
rank:
type: integer
maximum: 2147483647
minimum: 0
notes:
type: string
top_list:
type: integer
content_type:
type: integer
required:
- content_type
- object_id
- rank
- top_list
TopListItemUpdateInputRequest:
type: object
properties:
object_id:
type: integer
maximum: 2147483647
minimum: 0
rank:
type: integer
maximum: 2147483647
minimum: 0
notes:
type: string
top_list:
type: integer
content_type:
type: integer
required:
- content_type
- object_id
- rank
- top_list
TopListOutput:
type: object
properties:
id:
type: integer
readOnly: true
user:
allOf:
- $ref: '#/components/schemas/User'
readOnly: true
items:
type: array
items:
$ref: '#/components/schemas/TopListItemOutput'
readOnly: true
title:
type: string
maxLength: 100
category:
$ref: '#/components/schemas/CategoryEnum'
description:
type: string
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
required:
- category
- created_at
- id
- items
- title
- updated_at
- user
TopListOutputRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 100
category:
$ref: '#/components/schemas/CategoryEnum'
description:
type: string
required:
- category
- title
TopListUpdateInputRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 100
category:
$ref: '#/components/schemas/CategoryEnum'
description:
type: string
required:
- category
- title
UnifiedHistoryTimeline:
type: object
description: Serializer for unified history timeline.
properties:
summary:
type: object
additionalProperties: {}
readOnly: true
events:
type: array
items:
type: object
additionalProperties: {}
readOnly: true
required:
- events
- summary
User:
type: object
description: User serializer for API responses
properties:
id:
type: integer
readOnly: true
username:
type: string
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
date_joined:
type: string
format: date-time
readOnly: true
is_active:
type: boolean
readOnly: true
title: Active
description: Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
avatar_url:
type: string
nullable: true
description: Get user avatar URL
readOnly: true
required:
- avatar_url
- date_joined
- id
- is_active
- username
UserOutput:
type: object
description: Output serializer for user data.
properties:
id:
type: integer
readOnly: true
username:
type: string
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
is_active:
type: boolean
title: Active
description: Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
date_joined:
type: string
format: date-time
readOnly: true
required:
- date_joined
- id
- username
UserOutputRequest:
type: object
description: Output serializer for user data.
properties:
username:
type: string
minLength: 1
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
is_active:
type: boolean
title: Active
description: Designates whether this user should be treated as active. Unselect
this instead of deleting accounts.
required:
- username
UserProfileCreateInputRequest:
type: object
properties:
display_name:
type: string
minLength: 1
description: This is the name that will be displayed on the site
maxLength: 50
avatar:
type: string
format: binary
pronouns:
type: string
maxLength: 50
bio:
type: string
maxLength: 500
twitter:
type: string
format: uri
maxLength: 200
instagram:
type: string
format: uri
maxLength: 200
youtube:
type: string
format: uri
maxLength: 200
discord:
type: string
maxLength: 100
coaster_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
dark_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
flat_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
water_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
user:
type: integer
required:
- display_name
- user
UserProfileOutput:
type: object
properties:
id:
type: integer
readOnly: true
user:
allOf:
- $ref: '#/components/schemas/User'
readOnly: true
avatar_url:
type: string
format: uri
nullable: true
readOnly: true
profile_id:
type: string
readOnly: true
description: Unique identifier for this profile that remains constant
display_name:
type: string
description: This is the name that will be displayed on the site
maxLength: 50
avatar:
type: string
format: uri
pronouns:
type: string
maxLength: 50
bio:
type: string
maxLength: 500
twitter:
type: string
format: uri
maxLength: 200
instagram:
type: string
format: uri
maxLength: 200
youtube:
type: string
format: uri
maxLength: 200
discord:
type: string
maxLength: 100
coaster_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
dark_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
flat_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
water_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
required:
- avatar_url
- display_name
- id
- profile_id
- user
UserProfileUpdateInputRequest:
type: object
properties:
display_name:
type: string
minLength: 1
description: This is the name that will be displayed on the site
maxLength: 50
avatar:
type: string
format: binary
pronouns:
type: string
maxLength: 50
bio:
type: string
maxLength: 500
twitter:
type: string
format: uri
maxLength: 200
instagram:
type: string
format: uri
maxLength: 200
youtube:
type: string
format: uri
maxLength: 200
discord:
type: string
maxLength: 100
coaster_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
dark_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
flat_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
water_ride_credits:
type: integer
maximum: 2147483647
minimum: -2147483648
required:
- display_name
UserRequest:
type: object
description: User serializer for API responses
properties:
username:
type: string
minLength: 1
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
pattern: ^[\w.@+-]+$
maxLength: 150
email:
type: string
format: email
title: Email address
maxLength: 254
first_name:
type: string
maxLength: 150
last_name:
type: string
maxLength: 150
required:
- username
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