openapi: 3.0.3 info: title: Holy Flavors API version: 1.0.0 description: API for rating flavors paths: /api/admin-custom/{id}/trigger_job/: post: operationId: admin_custom_trigger_job_create parameters: - in: path name: id schema: type: string required: true tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/{id}/update_job_schedule/: patch: operationId: admin_custom_update_job_schedule_partial_update parameters: - in: path name: id schema: type: string required: true tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/{id}/user_detail/: get: operationId: admin_custom_user_detail_retrieve parameters: - in: path name: id schema: type: string required: true tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body patch: operationId: admin_custom_user_detail_partial_update parameters: - in: path name: id schema: type: string required: true tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body delete: operationId: admin_custom_user_detail_destroy parameters: - in: path name: id schema: type: string required: true tags: - admin-custom security: - cookieAuth: [] responses: '204': description: No response body /api/admin-custom/config/: get: operationId: admin_custom_config_retrieve tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body patch: operationId: admin_custom_config_partial_update tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/jobs/: get: operationId: admin_custom_jobs_retrieve tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/send_test_email/: post: operationId: admin_custom_send_test_email_create tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/stats/: get: operationId: admin_custom_stats_retrieve tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/admin-custom/users/: get: operationId: admin_custom_users_retrieve tags: - admin-custom security: - cookieAuth: [] responses: '200': description: No response body /api/auth/logout/: post: operationId: auth_logout_create tags: - auth security: - cookieAuth: [] - {} responses: '200': description: No response body /api/auth/token/: post: operationId: auth_token_create description: |- Takes a set of user credentials and returns an access and refresh JSON web token pair to prove the authentication of those credentials. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenObtainPair' multipart/form-data: schema: $ref: '#/components/schemas/TokenObtainPair' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' description: '' /api/auth/token/refresh/: post: operationId: auth_token_refresh_create description: |- Takes a refresh type JSON web token and returns an access type JSON web token if the refresh token is valid. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenRefresh' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenRefresh' multipart/form-data: schema: $ref: '#/components/schemas/TokenRefresh' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenRefresh' description: '' /api/auth/token/verify/: post: operationId: auth_token_verify_create description: |- Takes a token and indicates if it is valid. This view provides no information about a token's fitness for a particular use. tags: - auth requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenVerify' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenVerify' multipart/form-data: schema: $ref: '#/components/schemas/TokenVerify' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenVerify' description: '' /api/banners/: get: operationId: banners_list tags: - banners security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Banner' description: '' post: operationId: banners_create tags: - banners requestBody: content: application/json: schema: $ref: '#/components/schemas/Banner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Banner' multipart/form-data: schema: $ref: '#/components/schemas/Banner' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' /api/banners/{id}/: get: operationId: banners_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' put: operationId: banners_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners requestBody: content: application/json: schema: $ref: '#/components/schemas/Banner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Banner' multipart/form-data: schema: $ref: '#/components/schemas/Banner' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' patch: operationId: banners_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedBanner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedBanner' multipart/form-data: schema: $ref: '#/components/schemas/PatchedBanner' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' delete: operationId: banners_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners security: - cookieAuth: [] responses: '204': description: No response body /api/banners/{id}/activate/: post: operationId: banners_activate_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners requestBody: content: application/json: schema: $ref: '#/components/schemas/Banner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Banner' multipart/form-data: schema: $ref: '#/components/schemas/Banner' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' /api/banners/{id}/toggle_enabled/: post: operationId: banners_toggle_enabled_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this banner. required: true tags: - banners requestBody: content: application/json: schema: $ref: '#/components/schemas/Banner' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Banner' multipart/form-data: schema: $ref: '#/components/schemas/Banner' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' /api/banners/active/: get: operationId: banners_active_retrieve tags: - banners security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Banner' description: '' /api/categories/: get: operationId: categories_list parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer tags: - categories security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCategoryList' description: '' /api/categories/{id}/: get: operationId: categories_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this category. required: true tags: - categories security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Category' description: '' /api/flavors/: get: operationId: flavors_list parameters: - in: query name: category schema: type: integer - in: query name: category__slug 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: - flavors security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedFlavorList' description: '' post: operationId: flavors_create tags: - flavors requestBody: content: application/json: schema: $ref: '#/components/schemas/Flavor' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Flavor' multipart/form-data: schema: $ref: '#/components/schemas/Flavor' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' /api/flavors/{id}/: get: operationId: flavors_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this flavor. required: true tags: - flavors security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' put: operationId: flavors_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this flavor. required: true tags: - flavors requestBody: content: application/json: schema: $ref: '#/components/schemas/Flavor' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Flavor' multipart/form-data: schema: $ref: '#/components/schemas/Flavor' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' patch: operationId: flavors_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this flavor. required: true tags: - flavors requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedFlavor' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedFlavor' multipart/form-data: schema: $ref: '#/components/schemas/PatchedFlavor' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' delete: operationId: flavors_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this flavor. required: true tags: - flavors security: - cookieAuth: [] responses: '204': description: No response body /api/flavors/followed_top/: get: operationId: flavors_followed_top_retrieve tags: - flavors security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' /api/flavors/newest/: get: operationId: flavors_newest_retrieve tags: - flavors security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' /api/flavors/search/: get: operationId: flavors_search_retrieve tags: - flavors security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' /api/flavors/top/: get: operationId: flavors_top_retrieve tags: - flavors security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Flavor' description: '' /api/notifications/: get: operationId: notifications_list tags: - notifications security: - cookieAuth: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/Notification' description: '' /api/notifications/{id}/: get: operationId: notifications_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification. required: true tags: - notifications security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Notification' description: '' /api/notifications/{id}/mark_read/: post: operationId: notifications_mark_read_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this notification. required: true tags: - notifications requestBody: content: application/json: schema: $ref: '#/components/schemas/Notification' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Notification' multipart/form-data: schema: $ref: '#/components/schemas/Notification' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Notification' description: '' /api/notifications/mark_all_read/: post: operationId: notifications_mark_all_read_create tags: - notifications requestBody: content: application/json: schema: $ref: '#/components/schemas/Notification' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Notification' multipart/form-data: schema: $ref: '#/components/schemas/Notification' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Notification' description: '' /api/ratings/: get: operationId: ratings_list parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer tags: - ratings security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedRatingList' description: '' post: operationId: ratings_create tags: - ratings requestBody: content: application/json: schema: $ref: '#/components/schemas/Rating' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Rating' multipart/form-data: schema: $ref: '#/components/schemas/Rating' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' /api/ratings/{id}/: get: operationId: ratings_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this rating. required: true tags: - ratings security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' put: operationId: ratings_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this rating. required: true tags: - ratings requestBody: content: application/json: schema: $ref: '#/components/schemas/Rating' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Rating' multipart/form-data: schema: $ref: '#/components/schemas/Rating' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' patch: operationId: ratings_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this rating. required: true tags: - ratings requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedRating' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedRating' multipart/form-data: schema: $ref: '#/components/schemas/PatchedRating' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' delete: operationId: ratings_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this rating. required: true tags: - ratings security: - cookieAuth: [] responses: '204': description: No response body /api/ratings/{id}/reply/: post: operationId: ratings_reply_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this rating. required: true tags: - ratings requestBody: content: application/json: schema: $ref: '#/components/schemas/Rating' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Rating' multipart/form-data: schema: $ref: '#/components/schemas/Rating' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' /api/ratings/feed/: get: operationId: ratings_feed_retrieve tags: - ratings security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' /api/ratings/recent/: get: operationId: ratings_recent_retrieve tags: - ratings security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/Rating' description: '' /api/replies/: get: operationId: replies_list parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer tags: - replies security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedReplyList' description: '' post: operationId: replies_create tags: - replies requestBody: content: application/json: schema: $ref: '#/components/schemas/Reply' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Reply' multipart/form-data: schema: $ref: '#/components/schemas/Reply' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Reply' description: '' /api/replies/{id}/: get: operationId: replies_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this reply. required: true tags: - replies security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Reply' description: '' put: operationId: replies_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this reply. required: true tags: - replies requestBody: content: application/json: schema: $ref: '#/components/schemas/Reply' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Reply' multipart/form-data: schema: $ref: '#/components/schemas/Reply' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Reply' description: '' patch: operationId: replies_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this reply. required: true tags: - replies requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedReply' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedReply' multipart/form-data: schema: $ref: '#/components/schemas/PatchedReply' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Reply' description: '' delete: operationId: replies_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this reply. required: true tags: - replies security: - cookieAuth: [] responses: '204': description: No response body /api/tickets/: get: operationId: tickets_list parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer tags: - tickets security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTicketList' description: '' post: operationId: tickets_create tags: - tickets requestBody: content: application/json: schema: $ref: '#/components/schemas/Ticket' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Ticket' multipart/form-data: schema: $ref: '#/components/schemas/Ticket' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' /api/tickets/{id}/: get: operationId: tickets_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' put: operationId: tickets_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets requestBody: content: application/json: schema: $ref: '#/components/schemas/Ticket' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Ticket' multipart/form-data: schema: $ref: '#/components/schemas/Ticket' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' patch: operationId: tickets_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTicket' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedTicket' multipart/form-data: schema: $ref: '#/components/schemas/PatchedTicket' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' delete: operationId: tickets_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets security: - cookieAuth: [] responses: '204': description: No response body /api/tickets/{id}/add_message/: post: operationId: tickets_add_message_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets requestBody: content: application/json: schema: $ref: '#/components/schemas/Ticket' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Ticket' multipart/form-data: schema: $ref: '#/components/schemas/Ticket' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' /api/tickets/{id}/update_status/: post: operationId: tickets_update_status_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this ticket. required: true tags: - tickets requestBody: content: application/json: schema: $ref: '#/components/schemas/Ticket' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Ticket' multipart/form-data: schema: $ref: '#/components/schemas/Ticket' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Ticket' description: '' /api/token/: post: operationId: token_create description: |- Takes a set of user credentials and returns an access and refresh JSON web token pair to prove the authentication of those credentials. tags: - token requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TokenObtainPair' multipart/form-data: schema: $ref: '#/components/schemas/TokenObtainPair' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TokenObtainPair' description: '' /api/users/: get: operationId: users_list parameters: - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer tags: - users security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUserList' description: '' post: operationId: users_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/{id}/: get: operationId: users_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' put: operationId: users_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' patch: operationId: users_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUser' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' delete: operationId: users_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users security: - cookieAuth: [] responses: '204': description: No response body /api/users/{id}/add_comment/: post: operationId: users_add_comment_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/{id}/delete_comment/{comment_id}/: delete: operationId: users_delete_comment_destroy parameters: - in: path name: comment_id schema: type: string required: true - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users security: - cookieAuth: [] responses: '204': description: No response body /api/users/{id}/follow/: post: operationId: users_follow_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/{id}/unfollow/: post: operationId: users_unfollow_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this user. required: true tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/change_password/: post: operationId: users_change_password_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/complete_password_reset/: post: operationId: users_complete_password_reset_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/confirm_account_deletion/: post: operationId: users_confirm_account_deletion_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/confirm_email/: post: operationId: users_confirm_email_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/dashboard/: get: operationId: users_dashboard_retrieve tags: - users security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/following_list/: get: operationId: users_following_list_retrieve tags: - users security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/me/: get: operationId: users_me_retrieve tags: - users security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/profile/{username}/: get: operationId: users_profile_retrieve parameters: - in: path name: username schema: type: string description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. required: true tags: - users security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/request_account_deletion/: post: operationId: users_request_account_deletion_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/request_password_reset/: post: operationId: users_request_password_reset_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/resend_verification/: post: operationId: users_resend_verification_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/signup/: post: operationId: users_signup_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/update_avatar/: post: operationId: users_update_avatar_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/update_preferences/: patch: operationId: users_update_preferences_partial_update tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUser' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/update_profile/: patch: operationId: users_update_profile_partial_update tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedUser' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedUser' multipart/form-data: schema: $ref: '#/components/schemas/PatchedUser' security: - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' /api/users/verify_signup/: post: operationId: users_verify_signup_create tags: - users requestBody: content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' multipart/form-data: schema: $ref: '#/components/schemas/User' required: true security: - cookieAuth: [] - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: '' components: schemas: Banner: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ description: type: string is_active: type: boolean description: Designates this as the global default banner. is_enabled: type: boolean description: Allows users to select this banner. settings: {} schema: {} created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true required: - created_at - id - name - slug - updated_at Category: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 50 slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ required: - id - name - slug Flavor: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 category: type: integer category_name: type: string readOnly: true category_slug: type: string readOnly: true description: type: string average_rating: type: number format: double readOnly: true followed_average_rating: type: number format: double readOnly: true user_rating: type: integer nullable: true readOnly: true ratings: type: array items: $ref: '#/components/schemas/Rating' readOnly: true image_url: type: string nullable: true readOnly: true image_urls: type: array items: type: string readOnly: true image: type: string format: uri writeOnly: true nullable: true is_available: type: boolean is_legacy: type: boolean shop_url: type: string format: uri nullable: true maxLength: 500 rating_distribution: type: object additionalProperties: type: integer readOnly: true required: - average_rating - category - category_name - category_slug - followed_average_rating - id - image_url - image_urls - name - rating_distribution - ratings - user_rating LanguageEnum: enum: - en - de type: string description: |- * `en` - English * `de` - Deutsch Notification: type: object properties: id: type: integer readOnly: true actor_username: type: string readOnly: true actor_avatar: type: string nullable: true readOnly: true notification_type: $ref: '#/components/schemas/NotificationTypeEnum' rating: type: integer nullable: true reply: type: integer nullable: true ticket: type: integer nullable: true profile_comment: type: integer nullable: true profile_owner_username: type: string nullable: true readOnly: true is_read: type: boolean created_at: type: string format: date-time readOnly: true flavor_name: type: string nullable: true readOnly: true flavor_id: type: integer nullable: true readOnly: true required: - actor_avatar - actor_username - created_at - flavor_id - flavor_name - id - notification_type - profile_owner_username NotificationTypeEnum: enum: - reply - mention - follow - ticket_new - ticket_reply - profile_comment type: string description: |- * `reply` - Reply * `mention` - Mention * `follow` - Follow * `ticket_new` - New Ticket * `ticket_reply` - Ticket Reply * `profile_comment` - Profile Comment PaginatedCategoryList: 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/Category' PaginatedFlavorList: 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/Flavor' PaginatedRatingList: 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/Rating' PaginatedReplyList: 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/Reply' PaginatedTicketList: 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/Ticket' PaginatedUserList: 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/User' PatchedBanner: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 slug: type: string maxLength: 50 pattern: ^[-a-zA-Z0-9_]+$ description: type: string is_active: type: boolean description: Designates this as the global default banner. is_enabled: type: boolean description: Allows users to select this banner. settings: {} schema: {} created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true PatchedFlavor: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 category: type: integer category_name: type: string readOnly: true category_slug: type: string readOnly: true description: type: string average_rating: type: number format: double readOnly: true followed_average_rating: type: number format: double readOnly: true user_rating: type: integer nullable: true readOnly: true ratings: type: array items: $ref: '#/components/schemas/Rating' readOnly: true image_url: type: string nullable: true readOnly: true image_urls: type: array items: type: string readOnly: true image: type: string format: uri writeOnly: true nullable: true is_available: type: boolean is_legacy: type: boolean shop_url: type: string format: uri nullable: true maxLength: 500 rating_distribution: type: object additionalProperties: type: integer readOnly: true PatchedRating: type: object properties: id: type: integer readOnly: true user: type: string readOnly: true user_id: type: integer readOnly: true user_avatar: type: string nullable: true readOnly: true flavor: type: integer flavor_name: type: string readOnly: true flavor_image: type: string nullable: true readOnly: true category_name: type: string readOnly: true category_slug: type: string readOnly: true is_available: type: boolean readOnly: true is_legacy: type: boolean readOnly: true score: type: integer maximum: 10 minimum: 1 comment: type: string nullable: true created_at: type: string format: date-time readOnly: true replies: type: array items: $ref: '#/components/schemas/Reply' readOnly: true PatchedReply: type: object properties: id: type: integer readOnly: true user: type: string readOnly: true rating: type: integer readOnly: true text: type: string created_at: type: string format: date-time readOnly: true PatchedTicket: type: object properties: id: type: integer readOnly: true user: type: integer readOnly: true username: type: string readOnly: true user_email: type: string format: email readOnly: true user_avatar: type: string nullable: true readOnly: true subject: type: string maxLength: 200 description: type: string status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true messages: type: array items: $ref: '#/components/schemas/TicketMessage' readOnly: true PatchedUser: type: object 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 theme: $ref: '#/components/schemas/ThemeEnum' language: $ref: '#/components/schemas/LanguageEnum' avatar: type: string nullable: true readOnly: true following_count: type: integer readOnly: true followers_count: type: integer readOnly: true is_following: type: boolean readOnly: true unread_notifications_count: type: integer readOnly: true is_superuser: type: boolean readOnly: true selected_banner: type: integer nullable: true selected_banner_slug: type: string readOnly: true nullable: true Rating: type: object properties: id: type: integer readOnly: true user: type: string readOnly: true user_id: type: integer readOnly: true user_avatar: type: string nullable: true readOnly: true flavor: type: integer flavor_name: type: string readOnly: true flavor_image: type: string nullable: true readOnly: true category_name: type: string readOnly: true category_slug: type: string readOnly: true is_available: type: boolean readOnly: true is_legacy: type: boolean readOnly: true score: type: integer maximum: 10 minimum: 1 comment: type: string nullable: true created_at: type: string format: date-time readOnly: true replies: type: array items: $ref: '#/components/schemas/Reply' readOnly: true required: - category_name - category_slug - created_at - flavor - flavor_image - flavor_name - id - is_available - is_legacy - replies - score - user - user_avatar - user_id Reply: type: object properties: id: type: integer readOnly: true user: type: string readOnly: true rating: type: integer readOnly: true text: type: string created_at: type: string format: date-time readOnly: true required: - created_at - id - rating - text - user StatusEnum: enum: - open - in_progress - resolved - closed type: string description: |- * `open` - Open * `in_progress` - In Progress * `resolved` - Resolved * `closed` - Closed ThemeEnum: enum: - holy_light - holy_dark - latte - frappe - macchiato - mocha - pink_pastel - mint_pastel - lavender_pastel - dracula - nord - gruvbox - oceanic - t0p_sai - t0p_trench - t0p_blurryface - t0p_clancy type: string description: |- * `holy_light` - Holy Light * `holy_dark` - Holy Dark * `latte` - Catppuccin Latte * `frappe` - Catppuccin Frappé * `macchiato` - Catppuccin Macchiato * `mocha` - Catppuccin Mocha * `pink_pastel` - Pink Pastel * `mint_pastel` - Mint Pastel * `lavender_pastel` - Lavender Pastel * `dracula` - Dracula * `nord` - Nordic Frost * `gruvbox` - Gruvbox Retro * `oceanic` - Oceanic Deep * `t0p_sai` - SAI (T0P) * `t0p_trench` - Trench (T0P) * `t0p_blurryface` - Blurryface (T0P) * `t0p_clancy` - Clancy (T0P) Ticket: type: object properties: id: type: integer readOnly: true user: type: integer readOnly: true username: type: string readOnly: true user_email: type: string format: email readOnly: true user_avatar: type: string nullable: true readOnly: true subject: type: string maxLength: 200 description: type: string status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true messages: type: array items: $ref: '#/components/schemas/TicketMessage' readOnly: true required: - created_at - description - id - messages - status - subject - updated_at - user - user_avatar - user_email - username TicketMessage: type: object properties: id: type: integer readOnly: true username: type: string readOnly: true text: type: string created_at: type: string format: date-time readOnly: true is_admin: type: boolean readOnly: true required: - created_at - id - is_admin - text - username TokenObtainPair: type: object properties: username: type: string writeOnly: true password: type: string writeOnly: true access: type: string readOnly: true refresh: type: string readOnly: true required: - access - password - refresh - username TokenRefresh: type: object properties: access: type: string readOnly: true refresh: type: string required: - access - refresh TokenVerify: type: object properties: token: type: string writeOnly: true required: - token User: type: object 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 theme: $ref: '#/components/schemas/ThemeEnum' language: $ref: '#/components/schemas/LanguageEnum' avatar: type: string nullable: true readOnly: true following_count: type: integer readOnly: true followers_count: type: integer readOnly: true is_following: type: boolean readOnly: true unread_notifications_count: type: integer readOnly: true is_superuser: type: boolean readOnly: true selected_banner: type: integer nullable: true selected_banner_slug: type: string readOnly: true nullable: true required: - avatar - followers_count - following_count - id - is_following - is_superuser - selected_banner_slug - unread_notifications_count - username securitySchemes: cookieAuth: type: apiKey in: cookie name: access_token