{
    "openapi": "3.0.0",
    "info": {
        "title": "E621",
        "description": "OpenAPI definition for E621's API. You can find the source [here](https://github.com/DonovanDMC/E621OpenAPI)<br>\nThis document is intended to compliment E621's existing [API Documentation](https://e621.net/help/api).<br>\nIf the api is not working, you can check this [Unofficial Status Page](https://status.e621.church).\n",
        "license": {
            "name": "MIT",
            "url": "https://opensource.org/licenses/MIT"
        },
        "termsOfService": "https://e621.net/static/terms_of_service",
        "contact": {
            "name": "Donovan_DMC",
            "url": "https://e621.net/forum_topics/46279"
        },
        "version": "4b7c2cd",
        "x-e621ng-commit": "76a023eecea450486d1f1143c4ed9cb257a2be06",
        "x-e621ng-master-behind-by": 0,
        "x-e621ng-master-compare-url": "https://github.com/e621ng/e621ng/compare/76a023eecea450486d1f1143c4ed9cb257a2be06...master"
    },
    "servers": [
        {
            "url": "https://e621.net",
            "description": "E621 (Production)"
        },
        {
            "url": "https://e926.net",
            "description": "E621 (Safe)"
        },
        {
            "url": "http://localhost:3000",
            "description": "E621 (Development)"
        }
    ],
    "components": {
        "securitySchemes": {
            "basicAuth": {
                "type": "http",
                "scheme": "basic"
            },
            "browserAuth": {
                "type": "apiKey",
                "in": "cookie",
                "name": "_danbooru_session"
            },
            "csrfToken": {
                "type": "apiKey",
                "in": "query",
                "name": "authenticity_token",
                "description": "Retrieved via scraping html for the `csrf-token` meta tag."
            }
        },
        "parameters": {
            "idQuery": {
                "name": "search[id]",
                "in": "query",
                "description": "Search for a specific id. Multiple can be separated by commas, up to 100.",
                "schema": {
                    "oneOf": [
                        {
                            "type": "integer"
                        },
                        {
                            "type": "string"
                        }
                    ]
                }
            },
            "limitQuery": {
                "name": "limit",
                "in": "query",
                "description": "The maximum number of results to return. Between 0 and 320.",
                "schema": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 320
                }
            },
            "pageQuery": {
                "name": "page",
                "in": "query",
                "description": "The page number of results to get. Between 1 and 750.",
                "schema": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 750
                }
            },
            "ipAddrQuery": {
                "name": "search[ip_addr]",
                "in": "query",
                "description": "Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).",
                "schema": {
                    "type": "string"
                }
            },
            "orderQuery": {
                "name": "search[order]",
                "in": "query",
                "description": "The order of the results.",
                "schema": {
                    "type": "string",
                    "enum": [
                        "id_asc",
                        "id_desc"
                    ]
                }
            },
            "idPath": {
                "name": "id",
                "in": "path",
                "description": "The ID of the item.",
                "required": true,
                "schema": {
                    "type": "integer"
                }
            },
            "idOrNamePath": {
                "name": "idOrName",
                "in": "path",
                "required": true,
                "schema": {
                    "oneOf": [
                        {
                            "type": "integer"
                        },
                        {
                            "type": "string"
                        }
                    ]
                },
                "description": "An ID that can be either an integer or a name."
            }
        },
        "schemas": {
            "AccessDeniedResponse": {
                "type": "object",
                "required": [
                    "success",
                    "reason"
                ],
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string",
                        "enum": [
                            "Access Denied"
                        ]
                    }
                }
            },
            "NotFoundResponse": {
                "type": "object",
                "required": [
                    "success",
                    "reason"
                ],
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string",
                        "enum": [
                            "not found"
                        ]
                    }
                }
            },
            "WarningRecordType": {
                "type": "object",
                "required": [
                    "record_type"
                ],
                "properties": {
                    "record_type": {
                        "type": "string",
                        "enum": [
                            "unmark",
                            "ban",
                            "record",
                            "warning"
                        ]
                    }
                }
            },
            "ModActionActions": {
                "type": "string",
                "enum": [
                    "artist_page_rename",
                    "artist_page_lock",
                    "artist_page_unlock",
                    "artist_user_linked",
                    "artist_user_unlinked",
                    "avoid_posting_create",
                    "avoid_posting_update",
                    "avoid_posting_delete",
                    "avoid_posting_undelete",
                    "avoid_posting_destroy",
                    "blip_destroy",
                    "blip_delete",
                    "blip_undelete",
                    "blip_update",
                    "comment_delete",
                    "comment_hide",
                    "comment_unhide",
                    "comment_update",
                    "forum_category_create",
                    "forum_category_delete",
                    "forum_category_update",
                    "forum_post_delete",
                    "forum_post_hide",
                    "forum_post_unhide",
                    "forum_post_update",
                    "forum_topic_delete",
                    "forum_topic_hide",
                    "forum_topic_unhide",
                    "forum_topic_lock",
                    "forum_topic_unlock",
                    "forum_topic_stick",
                    "forum_topic_unstick",
                    "forum_topic_update",
                    "help_create",
                    "help_delete",
                    "help_update",
                    "ip_ban_create",
                    "ip_ban_delete",
                    "mascot_create",
                    "mascot_update",
                    "mascot_delete",
                    "pool_delete",
                    "report_reason_create",
                    "report_reason_delete",
                    "report_reason_update",
                    "set_update",
                    "set_delete",
                    "set_change_visibility",
                    "tag_alias_create",
                    "tag_alias_update",
                    "tag_implication_create",
                    "tag_implication_update",
                    "ticket_claim",
                    "ticket_unclaim",
                    "ticket_update",
                    "upload_whitelist_create",
                    "upload_whitelist_update",
                    "upload_whitelist_delete",
                    "user_blacklist_changed",
                    "user_text_change",
                    "user_upload_limit_change",
                    "user_flags_change",
                    "user_level_change",
                    "user_name_change",
                    "user_delete",
                    "user_ban",
                    "user_ban_update",
                    "user_unban",
                    "user_feedback_create",
                    "user_feedback_update",
                    "user_feedback_delete",
                    "user_feedback_undelete",
                    "user_feedback_destroy",
                    "wiki_page_rename",
                    "wiki_page_delete",
                    "wiki_page_lock",
                    "wiki_page_unlock",
                    "mass_update",
                    "nuke_tag",
                    "takedown_delete",
                    "takedown_process",
                    "user_flush_favorites",
                    "post_version_hide",
                    "post_version_unhide",
                    "user_uploads_toggle",
                    "staff_note_create",
                    "staff_note_update",
                    "staff_note_delete",
                    "staff_note_undelete",
                    "search_trend_blacklist_purge",
                    "created_positive_record",
                    "created_neutral_record",
                    "created_negative_record",
                    "created_flag_reason",
                    "edited_flag_reason",
                    "deleted_flag_reason",
                    "post_move_favorites",
                    "post_delete",
                    "post_undelete",
                    "post_destroy",
                    "post_rating_lock",
                    "post_unapprove",
                    "post_replacement_accept",
                    "post_replacement_reject",
                    "post_replacement_delete"
                ]
            },
            "PostEventActions": {
                "type": "string",
                "enum": [
                    "deleted",
                    "undeleted",
                    "approved",
                    "unapproved",
                    "flag_created",
                    "flag_removed",
                    "favorites_moved",
                    "favorites_received",
                    "rating_locked",
                    "rating_unlocked",
                    "status_locked",
                    "status_unlocked",
                    "note_locked",
                    "note_unlocked",
                    "comment_locked",
                    "comment_unlocked",
                    "replacement_accepted",
                    "replacement_rejected",
                    "replacement_promoted",
                    "replacement_deleted",
                    "expunged",
                    "changed_bg_color",
                    "replacement_penalty_changed"
                ]
            },
            "Ratings": {
                "type": "string",
                "enum": [
                    "s",
                    "q",
                    "e"
                ]
            },
            "TagCategories": {
                "type": "integer",
                "enum": [
                    0,
                    1,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8
                ]
            },
            "FeedbackCategories": {
                "type": "string",
                "enum": [
                    "negative",
                    "neutral",
                    "positive"
                ]
            },
            "TagRequestStatuses": {
                "type": "string",
                "enum": [
                    "active",
                    "deleted",
                    "processing",
                    "queued",
                    "retired",
                    "error",
                    "pending"
                ]
            },
            "WarningTypes": {
                "type": "string",
                "enum": [
                    "warning",
                    "record",
                    "ban"
                ]
            },
            "PoolCategories": {
                "type": "string",
                "enum": [
                    "collection",
                    "series"
                ]
            },
            "TicketTypes": {
                "type": "string",
                "enum": [
                    "blip",
                    "comment",
                    "dmail",
                    "forum",
                    "pool",
                    "post",
                    "set",
                    "user",
                    "wiki",
                    "replacement"
                ]
            },
            "TicketStatuses": {
                "type": "string",
                "enum": [
                    "pending",
                    "partial",
                    "approved"
                ]
            },
            "Artist": {
                "type": "object",
                "required": [
                    "id",
                    "name",
                    "updated_at",
                    "is_active",
                    "other_names",
                    "group_name",
                    "linked_user_id",
                    "created_at",
                    "creator_id",
                    "is_locked",
                    "notes",
                    "urls"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "other_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "group_name": {
                        "type": "string"
                    },
                    "linked_user_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "ArtistUrl": {
                "type": "object",
                "required": [
                    "id",
                    "artist_id",
                    "url",
                    "normalized_url",
                    "created_at",
                    "updated_at",
                    "is_active"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "artist_id": {
                        "type": "integer"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "normalized_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_active": {
                        "type": "boolean"
                    }
                }
            },
            "ArtistVersion": {
                "type": "object",
                "required": [
                    "id",
                    "artist_id",
                    "name",
                    "updater_id",
                    "created_at",
                    "updated_at",
                    "is_active",
                    "other_names",
                    "notes_changed",
                    "urls"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "artist_id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "other_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "notes_changed": {
                        "type": "boolean"
                    },
                    "urls": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "format": "uri"
                        }
                    }
                }
            },
            "AvoidPosting": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "updater_id",
                    "artist_id",
                    "details",
                    "is_active",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "artist_id": {
                        "type": "integer"
                    },
                    "staff_notes": {
                        "type": "string",
                        "description": "Only visible to Janitor+"
                    },
                    "details": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "AvoidPostingVersion": {
                "type": "object",
                "required": [
                    "id",
                    "updater_id",
                    "avoid_posting_id",
                    "details",
                    "is_active",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "avoid_posting_id": {
                        "type": "integer"
                    },
                    "details": {
                        "type": "string"
                    },
                    "staff_notes": {
                        "type": "string",
                        "description": "Only visible to Janitor+"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "Ban": {
                "type": "object",
                "required": [
                    "id",
                    "user_id",
                    "reason",
                    "expires_at",
                    "banner_id",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "expires_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "banner_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "Blip": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "body",
                    "response_to",
                    "created_at",
                    "updated_at",
                    "is_deleted",
                    "warning_type",
                    "warning_user_id",
                    "updater_id",
                    "creator_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "response_to": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "warning_type": {
                        "$ref": "#/components/schemas/WarningTypes"
                    },
                    "warning_user_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "creator_name": {
                        "type": "string"
                    }
                }
            },
            "BulkRelatedTag": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/RelatedTag"
                    },
                    {
                        "type": "object",
                        "required": [
                            "count"
                        ],
                        "properties": {
                            "count": {
                                "type": "integer"
                            }
                        }
                    }
                ]
            },
            "BulkUpdateRequest": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "forum_topic_id",
                    "script",
                    "status",
                    "created_at",
                    "updated_at",
                    "approver_id",
                    "forum_post_id",
                    "title"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "forum_topic_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "script": {
                        "type": "string",
                        "example": [
                            "alias a -> b"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "approved",
                            "rejected",
                            "pending"
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "forum_post_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "title": {
                        "type": "string"
                    }
                }
            },
            "Comment": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "post_id",
                    "creator_id",
                    "body",
                    "score",
                    "updated_at",
                    "updater_id",
                    "do_not_bump_post",
                    "is_hidden",
                    "is_sticky",
                    "warning_type",
                    "warning_user_id",
                    "creator_name",
                    "updater_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "score": {
                        "type": "integer"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "do_not_bump_post": {
                        "type": "boolean",
                        "deprecated": true
                    },
                    "is_hidden": {
                        "type": "boolean"
                    },
                    "is_sticky": {
                        "type": "boolean"
                    },
                    "warning_type": {
                        "$ref": "#/components/schemas/WarningTypes"
                    },
                    "warning_user_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "creator_name": {
                        "type": "string"
                    },
                    "updater_name": {
                        "type": "string"
                    }
                }
            },
            "CurrentUser": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/User"
                    },
                    {
                        "type": "object",
                        "required": [
                            "blacklist_users",
                            "description_collapsed_initially",
                            "hide_comments",
                            "show_hidden_comments",
                            "show_post_statistics",
                            "receive_email_notifications",
                            "enable_keyboard_navigation",
                            "enable_privacy_mode",
                            "style_usernames",
                            "enable_auto_complete",
                            "disable_cropped_thumbnails",
                            "enable_safe_mode",
                            "disable_responsive_mode",
                            "no_flagging",
                            "disable_user_dmails",
                            "enable_compact_uploader",
                            "replacements_beta",
                            "updated_at",
                            "email",
                            "last_logged_in_at",
                            "last_forum_read_at",
                            "recent_tags",
                            "comment_threshold",
                            "default_image_size",
                            "favorite_tags",
                            "blacklisted_tags",
                            "time_zone",
                            "per_page",
                            "custom_style",
                            "favorite_count",
                            "api_regen_multiplier",
                            "api_burst_limit",
                            "remaining_api_limit",
                            "statement_timeout",
                            "favorite_limit",
                            "tag_query_limit",
                            "has_mail",
                            "forum_notification_dot"
                        ],
                        "properties": {
                            "blacklist_users": {
                                "type": "boolean"
                            },
                            "description_collapsed_initially": {
                                "type": "boolean"
                            },
                            "hide_comments": {
                                "type": "boolean"
                            },
                            "show_hidden_comments": {
                                "type": "boolean"
                            },
                            "show_post_statistics": {
                                "type": "boolean"
                            },
                            "receive_email_notifications": {
                                "type": "boolean"
                            },
                            "enable_keyboard_navigation": {
                                "type": "boolean"
                            },
                            "enable_privacy_mode": {
                                "type": "boolean"
                            },
                            "style_usernames": {
                                "type": "boolean"
                            },
                            "enable_auto_complete": {
                                "type": "boolean"
                            },
                            "can_approve_posts": {
                                "type": "boolean"
                            },
                            "disable_cropped_thumbnails": {
                                "type": "boolean"
                            },
                            "enable_safe_mode": {
                                "type": "boolean"
                            },
                            "disable_responsive_mode": {
                                "type": "boolean"
                            },
                            "no_flagging": {
                                "type": "boolean"
                            },
                            "disable_user_dmails": {
                                "type": "boolean"
                            },
                            "enable_compact_uploader": {
                                "type": "boolean"
                            },
                            "replacements_beta": {
                                "type": "boolean"
                            },
                            "updated_at": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "email": {
                                "type": "string"
                            },
                            "last_logged_in_at": {
                                "type": "string"
                            },
                            "last_forum_read_at": {
                                "type": "string"
                            },
                            "recent_tags": {
                                "type": "string"
                            },
                            "comment_threshold": {
                                "type": "integer"
                            },
                            "default_image_size": {
                                "type": "string",
                                "enum": [
                                    "large",
                                    "fit",
                                    "fitv",
                                    "original"
                                ]
                            },
                            "favorite_tags": {
                                "type": "string"
                            },
                            "blacklisted_tags": {
                                "type": "string"
                            },
                            "time_zone": {
                                "type": "string"
                            },
                            "per_page": {
                                "type": "integer"
                            },
                            "custom_style": {
                                "type": "string"
                            },
                            "favorite_count": {
                                "type": "integer"
                            },
                            "api_regen_multiplier": {
                                "type": "integer"
                            },
                            "api_burst_limit": {
                                "type": "integer"
                            },
                            "remaining_api_limit": {
                                "type": "integer"
                            },
                            "statement_timeout": {
                                "type": "integer"
                            },
                            "favorite_limit": {
                                "type": "integer"
                            },
                            "tag_query_limit": {
                                "type": "integer"
                            },
                            "has_mail": {
                                "type": "boolean"
                            },
                            "forum_notification_dot": {
                                "type": "boolean"
                            }
                        }
                    }
                ]
            },
            "DMail": {
                "type": "object",
                "required": [
                    "id",
                    "owner_id",
                    "from_id",
                    "to_id",
                    "title",
                    "body",
                    "is_read",
                    "is_deleted",
                    "created_at",
                    "updated_at",
                    "to_name",
                    "from_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "owner_id": {
                        "type": "integer"
                    },
                    "from_id": {
                        "type": "integer"
                    },
                    "to_id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "body": {
                        "type": "string"
                    },
                    "is_read": {
                        "type": "boolean"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "to_name": {
                        "type": "string"
                    },
                    "from_name": {
                        "type": "string"
                    }
                }
            },
            "DeferredPost": {
                "type": "object",
                "required": [
                    "id",
                    "flags",
                    "tags",
                    "rating",
                    "file_ext",
                    "width",
                    "height",
                    "size",
                    "created_at",
                    "uploader",
                    "uploader_id",
                    "score",
                    "fav_count",
                    "is_favorited",
                    "pools",
                    "md5",
                    "preview_url",
                    "large_url",
                    "file_url",
                    "preview_width",
                    "preview_height"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "flags": {
                        "type": "string"
                    },
                    "tags": {
                        "type": "string"
                    },
                    "rating": {
                        "$ref": "#/components/schemas/Ratings"
                    },
                    "file_ext": {
                        "type": "string"
                    },
                    "width": {
                        "type": "integer"
                    },
                    "height": {
                        "type": "integer"
                    },
                    "size": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "uploader": {
                        "type": "string"
                    },
                    "uploader_id": {
                        "type": "integer"
                    },
                    "score": {
                        "type": "integer"
                    },
                    "fav_count": {
                        "type": "integer"
                    },
                    "is_favorited": {
                        "type": "boolean"
                    },
                    "pools": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "md5": {
                        "type": "string"
                    },
                    "preview_url": {
                        "type": "string",
                        "nullable": true
                    },
                    "large_url": {
                        "type": "string",
                        "nullable": true
                    },
                    "file_url": {
                        "type": "string",
                        "nullable": true
                    },
                    "preview_width": {
                        "type": "integer"
                    },
                    "preview_height": {
                        "type": "integer"
                    }
                }
            },
            "DTextResponse": {
                "type": "object",
                "required": [
                    "html",
                    "posts"
                ],
                "properties": {
                    "html": {
                        "type": "string"
                    },
                    "posts": {
                        "$ref": "#/components/schemas/DeferredPost"
                    }
                }
            },
            "EmailBlacklist": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "domain",
                    "creator_id",
                    "reason"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "domain": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string"
                    }
                }
            },
            "ForumPost": {
                "type": "object",
                "required": [
                    "id",
                    "topic_id",
                    "creator_id",
                    "updater_id",
                    "body",
                    "is_hidden",
                    "created_at",
                    "updated_at",
                    "warning_type",
                    "warning_user_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "topic_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "is_hidden": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "warning_type": {
                        "$ref": "#/components/schemas/WarningTypes"
                    },
                    "warning_user_id": {
                        "type": "integer",
                        "nullable": true
                    }
                }
            },
            "ForumPostVote": {
                "type": "object",
                "required": [
                    "id",
                    "forum_post_id",
                    "creator_id",
                    "score",
                    "created_at",
                    "updated_at",
                    "creator_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "forum_post_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "score": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_name": {
                        "type": "string"
                    }
                }
            },
            "ForumTopic": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "updater_id",
                    "title",
                    "response_count",
                    "is_sticky",
                    "is_locked",
                    "is_hidden",
                    "created_at",
                    "updated_at",
                    "category_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "response_count": {
                        "type": "integer"
                    },
                    "is_sticky": {
                        "type": "boolean"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "is_hidden": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "category_id": {
                        "type": "integer"
                    }
                }
            },
            "FullCurrentUser": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/CurrentUser"
                    },
                    {
                        "$ref": "#/components/schemas/FullUser"
                    }
                ]
            },
            "FullUser": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/User"
                    },
                    {
                        "type": "object",
                        "required": [
                            "wiki_page_version_count",
                            "artist_version_count",
                            "pool_version_count",
                            "forum_post_count",
                            "comment_count",
                            "flag_count",
                            "favorite_count",
                            "positive_feedback_count",
                            "neutral_feedback_count",
                            "negative_feedback_count",
                            "upload_limit",
                            "profile_about",
                            "profile_artinfo"
                        ],
                        "properties": {
                            "wiki_page_version_count": {
                                "type": "integer"
                            },
                            "artist_version_count": {
                                "type": "integer"
                            },
                            "pool_version_count": {
                                "type": "integer"
                            },
                            "forum_post_count": {
                                "type": "integer"
                            },
                            "comment_count": {
                                "type": "integer"
                            },
                            "flag_count": {
                                "type": "integer"
                            },
                            "favorite_count": {
                                "type": "integer"
                            },
                            "positive_feedback_count": {
                                "type": "integer"
                            },
                            "neutral_feedback_count": {
                                "type": "integer"
                            },
                            "negative_feedback_count": {
                                "type": "integer"
                            },
                            "upload_limit": {
                                "type": "integer"
                            },
                            "profile_about": {
                                "type": "string"
                            },
                            "profile_artinfo": {
                                "type": "string"
                            }
                        }
                    }
                ]
            },
            "Help": {
                "type": "object",
                "required": [
                    "id",
                    "name",
                    "title",
                    "wiki_page",
                    "related",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "wiki_page": {
                        "type": "string"
                    },
                    "related": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "IpBan": {
                "type": "object",
                "description": "Due to a global filter, the ip_addr is not present no matter your user level.",
                "required": [
                    "id",
                    "creator_id",
                    "reason",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "IqdbPost": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "up_score",
                    "down_score",
                    "score",
                    "source",
                    "md5",
                    "rating",
                    "is_note_locked",
                    "is_rating_locked",
                    "is_status_locked",
                    "is_pending",
                    "is_flagged",
                    "is_deleted",
                    "uploader_id",
                    "approver_id",
                    "last_noted_at",
                    "last_comment_bumped_at",
                    "fav_count",
                    "tag_string",
                    "tag_count",
                    "tag_count_general",
                    "tag_count_artist",
                    "tag_count_character",
                    "tag_count_copyright",
                    "file_ext",
                    "file_size",
                    "image_width",
                    "image_height",
                    "parent_id",
                    "has_children",
                    "last_commented_at",
                    "has_active_children",
                    "bit_flags",
                    "tag_count_meta",
                    "locked_tags",
                    "tag_count_species",
                    "tag_count_invalid",
                    "description",
                    "comment_count",
                    "change_seq",
                    "tag_count_lore",
                    "bg_color",
                    "generated_samples",
                    "duration",
                    "is_comment_disabled",
                    "is_comment_locked",
                    "has_large",
                    "has_visible_children",
                    "children_ids",
                    "pool_ids",
                    "is_favorited"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "up_score": {
                        "type": "integer"
                    },
                    "down_score": {
                        "type": "integer"
                    },
                    "score": {
                        "type": "integer"
                    },
                    "source": {
                        "type": "string"
                    },
                    "md5": {
                        "type": "string"
                    },
                    "rating": {
                        "$ref": "#/components/schemas/Ratings"
                    },
                    "is_note_locked": {
                        "type": "boolean"
                    },
                    "is_rating_locked": {
                        "type": "boolean"
                    },
                    "is_status_locked": {
                        "type": "boolean"
                    },
                    "is_pending": {
                        "type": "boolean"
                    },
                    "is_flagged": {
                        "type": "boolean"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "uploader_id": {
                        "type": "integer"
                    },
                    "approver_id": {
                        "type": "integer"
                    },
                    "last_noted_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_comment_bumped_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "fav_count": {
                        "type": "integer"
                    },
                    "tag_string": {
                        "type": "string"
                    },
                    "tag_count": {
                        "type": "integer"
                    },
                    "tag_count_general": {
                        "type": "integer"
                    },
                    "tag_count_artist": {
                        "type": "integer"
                    },
                    "tag_count_character": {
                        "type": "integer"
                    },
                    "tag_count_copyright": {
                        "type": "integer"
                    },
                    "file_ext": {
                        "type": "string"
                    },
                    "file_size": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "image_width": {
                        "type": "integer"
                    },
                    "image_height": {
                        "type": "integer"
                    },
                    "parent_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "has_children": {
                        "type": "boolean"
                    },
                    "last_commented_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "has_active_children": {
                        "type": "boolean"
                    },
                    "bit_flags": {
                        "type": "integer"
                    },
                    "tag_count_meta": {
                        "type": "integer"
                    },
                    "locked_tags": {
                        "type": "string",
                        "nullable": true
                    },
                    "tag_count_species": {
                        "type": "integer"
                    },
                    "tag_count_invalid": {
                        "type": "integer"
                    },
                    "description": {
                        "type": "string"
                    },
                    "comment_count": {
                        "type": "integer"
                    },
                    "change_seq": {
                        "type": "integer"
                    },
                    "tag_count_lore": {
                        "type": "integer"
                    },
                    "bg_color": {
                        "type": "string",
                        "nullable": true
                    },
                    "generated_samples": {
                        "type": "array",
                        "nullable": true,
                        "items": {
                            "type": "string",
                            "enum": [
                                "720p",
                                "480p",
                                "original"
                            ]
                        }
                    },
                    "duration": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_comment_disabled": {
                        "type": "boolean"
                    },
                    "is_comment_locked": {
                        "type": "boolean"
                    },
                    "has_large": {
                        "type": "boolean"
                    },
                    "has_visible_children": {
                        "type": "boolean"
                    },
                    "children_ids": {
                        "type": "string",
                        "nullable": true
                    },
                    "pool_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "is_favorited": {
                        "type": "boolean"
                    },
                    "file_url": {
                        "type": "string"
                    },
                    "large_file_url": {
                        "type": "string"
                    },
                    "preview_file_url": {
                        "type": "string"
                    }
                }
            },
            "IqdbResponse": {
                "type": "object",
                "required": [
                    "hash",
                    "post_id",
                    "score",
                    "post"
                ],
                "properties": {
                    "hash": {
                        "type": "string"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "score": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "maximum": 100
                    },
                    "post": {
                        "type": "object",
                        "required": [
                            "posts"
                        ],
                        "properties": {
                            "posts": {
                                "$ref": "#/components/schemas/IqdbPost"
                            }
                        }
                    }
                }
            },
            "Mascot": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "display_name",
                    "md5",
                    "file_ext",
                    "background_color",
                    "artist_url",
                    "artist_name",
                    "active",
                    "created_at",
                    "updated_at",
                    "available_on",
                    "url_path"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "display_name": {
                        "type": "string"
                    },
                    "md5": {
                        "type": "string"
                    },
                    "file_ext": {
                        "type": "string"
                    },
                    "background_color": {
                        "type": "string"
                    },
                    "artist_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "artist_name": {
                        "type": "string"
                    },
                    "active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "available_on": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "url_path": {
                        "type": "string",
                        "format": "uri"
                    }
                }
            },
            "ModAction": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "created_at",
                    "updated_at",
                    "action"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "action": {
                        "$ref": "#/components/schemas/ModActionActions"
                    }
                }
            },
            "NewsUpdate": {
                "type": "object",
                "required": [
                    "id",
                    "message",
                    "creator_id",
                    "updater_id",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "message": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "Note": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "creator_id",
                    "x",
                    "y",
                    "width",
                    "height",
                    "version",
                    "is_active",
                    "post_id",
                    "body",
                    "creator_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "x": {
                        "type": "integer"
                    },
                    "y": {
                        "type": "integer"
                    },
                    "width": {
                        "type": "integer"
                    },
                    "height": {
                        "type": "integer"
                    },
                    "version": {
                        "type": "integer"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "creator_name": {
                        "type": "string"
                    }
                }
            },
            "NoteVersion": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "x",
                    "y",
                    "width",
                    "height",
                    "body",
                    "version",
                    "is_active",
                    "note_id",
                    "post_id",
                    "updater_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "x": {
                        "type": "integer"
                    },
                    "y": {
                        "type": "integer"
                    },
                    "width": {
                        "type": "integer"
                    },
                    "height": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "version": {
                        "type": "integer"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "note_id": {
                        "type": "integer"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "updater_id": {
                        "type": "integer"
                    }
                }
            },
            "Pool": {
                "type": "object",
                "required": [
                    "id",
                    "name",
                    "created_at",
                    "updated_at",
                    "creator_id",
                    "description",
                    "is_active",
                    "category",
                    "post_ids",
                    "creator_name",
                    "post_count"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "description": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "category": {
                        "$ref": "#/components/schemas/PoolCategories"
                    },
                    "post_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_name": {
                        "type": "string"
                    },
                    "post_count": {
                        "type": "integer"
                    }
                }
            },
            "PoolVersion": {
                "type": "object",
                "required": [
                    "id",
                    "pool_id",
                    "post_ids",
                    "updater_id",
                    "created_at",
                    "updated_at",
                    "name",
                    "name_changed",
                    "description",
                    "description_changed",
                    "is_active",
                    "is_locked",
                    "category",
                    "version",
                    "added_post_ids",
                    "removed_post_ids"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "pool_id": {
                        "type": "integer"
                    },
                    "post_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "name_changed": {
                        "type": "boolean"
                    },
                    "description": {
                        "type": "string"
                    },
                    "description_changed": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "category": {
                        "$ref": "#/components/schemas/PoolCategories"
                    },
                    "version": {
                        "type": "integer"
                    },
                    "added_post_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "removed_post_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                }
            },
            "Post": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "file",
                    "preview",
                    "sample",
                    "score",
                    "tags",
                    "locked_tags",
                    "change_seq",
                    "flags",
                    "rating",
                    "fav_count",
                    "sources",
                    "pools",
                    "relationships",
                    "approver_id",
                    "uploader_id",
                    "description",
                    "comment_count",
                    "is_favorited",
                    "has_notes",
                    "duration",
                    "uploader_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "file": {
                        "type": "object",
                        "required": [
                            "width",
                            "height",
                            "ext",
                            "size",
                            "md5",
                            "url"
                        ],
                        "properties": {
                            "width": {
                                "type": "integer"
                            },
                            "height": {
                                "type": "integer"
                            },
                            "ext": {
                                "type": "string"
                            },
                            "size": {
                                "type": "integer",
                                "format": "int64"
                            },
                            "md5": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string",
                                "nullable": true
                            }
                        }
                    },
                    "preview": {
                        "type": "object",
                        "required": [
                            "width",
                            "height",
                            "url"
                        ],
                        "properties": {
                            "width": {
                                "type": "integer"
                            },
                            "height": {
                                "type": "integer"
                            },
                            "url": {
                                "type": "string",
                                "nullable": true
                            }
                        }
                    },
                    "sample": {
                        "type": "object",
                        "required": [
                            "has",
                            "height",
                            "width",
                            "url",
                            "alternates"
                        ],
                        "properties": {
                            "has": {
                                "type": "boolean"
                            },
                            "height": {
                                "type": "integer",
                                "nullable": true
                            },
                            "width": {
                                "type": "integer",
                                "nullable": true
                            },
                            "url": {
                                "type": "string",
                                "nullable": true
                            },
                            "alternates": {
                                "type": "object",
                                "properties": {
                                    "has": {
                                        "type": "boolean"
                                    },
                                    "original": {
                                        "$ref": "#/components/schemas/PostSampleAlternate"
                                    },
                                    "variants": {
                                        "type": "object",
                                        "properties": {
                                            "webm": {
                                                "$ref": "#/components/schemas/PostSampleAlternate"
                                            },
                                            "mp4": {
                                                "$ref": "#/components/schemas/PostSampleAlternate"
                                            }
                                        }
                                    },
                                    "samples": {
                                        "type": "object",
                                        "properties": {
                                            "480p": {
                                                "$ref": "#/components/schemas/PostSampleAlternate"
                                            },
                                            "720p": {
                                                "$ref": "#/components/schemas/PostSampleAlternate"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "score": {
                        "type": "object",
                        "required": [
                            "up",
                            "down",
                            "total"
                        ],
                        "properties": {
                            "up": {
                                "type": "integer"
                            },
                            "down": {
                                "type": "integer"
                            },
                            "total": {
                                "type": "integer"
                            }
                        }
                    },
                    "tags": {
                        "type": "object",
                        "required": [
                            "general",
                            "artist",
                            "copyright",
                            "character",
                            "species",
                            "invalid",
                            "meta",
                            "lore",
                            "contributor"
                        ],
                        "properties": {
                            "general": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "artist": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "copyright": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "character": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "species": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "invalid": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "meta": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "lore": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "contributor": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "locked_tags": {
                        "type": "array",
                        "nullable": true,
                        "items": {
                            "type": "string"
                        }
                    },
                    "change_seq": {
                        "type": "integer"
                    },
                    "flags": {
                        "type": "object",
                        "required": [
                            "pending",
                            "flagged",
                            "note_locked",
                            "status_locked",
                            "rating_locked",
                            "deleted"
                        ],
                        "properties": {
                            "pending": {
                                "type": "boolean"
                            },
                            "flagged": {
                                "type": "boolean"
                            },
                            "note_locked": {
                                "type": "boolean"
                            },
                            "status_locked": {
                                "type": "boolean"
                            },
                            "rating_locked": {
                                "type": "boolean"
                            },
                            "deleted": {
                                "type": "boolean"
                            }
                        }
                    },
                    "rating": {
                        "$ref": "#/components/schemas/Ratings"
                    },
                    "fav_count": {
                        "type": "integer"
                    },
                    "sources": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "pools": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    "relationships": {
                        "type": "object",
                        "required": [
                            "parent_id",
                            "has_children",
                            "has_active_children",
                            "children"
                        ],
                        "properties": {
                            "parent_id": {
                                "type": "integer",
                                "nullable": true
                            },
                            "has_children": {
                                "type": "boolean"
                            },
                            "has_active_children": {
                                "type": "boolean"
                            },
                            "children": {
                                "type": "array",
                                "items": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "uploader_id": {
                        "type": "integer"
                    },
                    "description": {
                        "type": "string"
                    },
                    "comment_count": {
                        "type": "integer"
                    },
                    "is_favorited": {
                        "type": "boolean"
                    },
                    "has_notes": {
                        "type": "boolean"
                    },
                    "duration": {
                        "type": "number",
                        "format": "float",
                        "nullable": true
                    },
                    "uploader_name": {
                        "type": "string"
                    }
                }
            },
            "PostApproval": {
                "type": "object",
                "required": [
                    "id",
                    "user_id",
                    "post_id",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "PostDisapproval": {
                "type": "object",
                "required": [
                    "id",
                    "user_id",
                    "post_id",
                    "reason",
                    "message",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string",
                        "enum": [
                            "borderline_quality",
                            "borderline_relevancy",
                            "other"
                        ]
                    },
                    "message": {
                        "type": "string",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "PostEvent": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "post_id",
                    "action",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "action": {
                        "$ref": "#/components/schemas/PostEventActions"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "PostFlag": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "post_id",
                    "reason",
                    "is_resolved",
                    "updated_at",
                    "is_deletion",
                    "type"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer",
                        "description": "Only visible to creator and Janitor+",
                        "nullable": true
                    },
                    "is_resolved": {
                        "type": "boolean"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_deletion": {
                        "type": "boolean"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "flag",
                            "deletion"
                        ]
                    },
                    "note": {
                        "type": "string",
                        "description": "Only visible to creator and Janitor+",
                        "nullable": true
                    }
                }
            },
            "PostReplacement": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "post_id",
                    "creator_id",
                    "approver_id",
                    "file_ext",
                    "file_size",
                    "image_height",
                    "image_width",
                    "md5",
                    "source",
                    "file_name",
                    "status",
                    "reason"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "file_ext": {
                        "type": "string"
                    },
                    "file_size": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "image_height": {
                        "type": "integer"
                    },
                    "image_width": {
                        "type": "integer"
                    },
                    "md5": {
                        "type": "string"
                    },
                    "source": {
                        "type": "string"
                    },
                    "file_name": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "prompted",
                            "approved",
                            "rejected",
                            "pending",
                            "original"
                        ]
                    },
                    "reason": {
                        "type": "string"
                    }
                }
            },
            "PostSampleAlternate": {
                "type": "object",
                "required": [
                    "fps",
                    "codec",
                    "size",
                    "width",
                    "height",
                    "url"
                ],
                "properties": {
                    "fps": {
                        "type": "number",
                        "format": "float"
                    },
                    "codec": {
                        "type": "string"
                    },
                    "size": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "width": {
                        "type": "integer"
                    },
                    "height": {
                        "type": "integer"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    }
                }
            },
            "PostSet": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "creator_id",
                    "is_public",
                    "name",
                    "shortname",
                    "description",
                    "transfer_on_delete",
                    "post_ids",
                    "post_count"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "name": {
                        "type": "string"
                    },
                    "shortname": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "post_count": {
                        "type": "integer"
                    },
                    "transfer_on_delete": {
                        "type": "boolean"
                    },
                    "post_ids": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                }
            },
            "PostVersion": {
                "type": "object",
                "required": [
                    "id",
                    "post_id",
                    "tags",
                    "updater_id",
                    "updated_at",
                    "rating",
                    "parent_id",
                    "source",
                    "description",
                    "reason",
                    "locked_tags",
                    "added_tags",
                    "removed_tags",
                    "added_locked_tags",
                    "removed_locked_tags",
                    "rating_changed",
                    "parent_changed",
                    "source_changed",
                    "description_changed",
                    "version",
                    "obsolete_added_tags",
                    "obsolete_removed_tags",
                    "unchanged_tags",
                    "updater_name",
                    "is_hidden"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "tags": {
                        "type": "string"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "rating": {
                        "$ref": "#/components/schemas/Ratings"
                    },
                    "parent_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "source": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string",
                        "nullable": true
                    },
                    "locked_tags": {
                        "type": "string",
                        "nullable": true
                    },
                    "added_tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "removed_tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "added_locked_tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "removed_locked_tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "rating_changed": {
                        "type": "boolean"
                    },
                    "parent_changed": {
                        "type": "boolean"
                    },
                    "source_changed": {
                        "type": "boolean"
                    },
                    "description_changed": {
                        "type": "boolean"
                    },
                    "version": {
                        "type": "integer"
                    },
                    "obsolete_added_tags": {
                        "type": "string"
                    },
                    "obsolete_removed_tags": {
                        "type": "string"
                    },
                    "unchanged_tags": {
                        "type": "string"
                    },
                    "updater_name": {
                        "type": "string"
                    },
                    "is_hidden": {
                        "type": "boolean"
                    }
                }
            },
            "RelatedTag": {
                "type": "object",
                "required": [
                    "name",
                    "category_id"
                ],
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "category_id": {
                        "$ref": "#/components/schemas/TagCategories"
                    }
                }
            },
            "StaffNote": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "user_id",
                    "creator_id",
                    "body",
                    "is_deleted",
                    "updater_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "body": {
                        "type": "string"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "updater_id": {
                        "type": "integer"
                    }
                }
            },
            "Tag": {
                "type": "object",
                "required": [
                    "id",
                    "name",
                    "post_count",
                    "related_tags",
                    "related_tags_updated_at",
                    "category",
                    "is_locked",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "post_count": {
                        "type": "integer"
                    },
                    "related_tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "related_tags_updated_at": {
                        "type": "string",
                        "nullable": true,
                        "format": "date-time"
                    },
                    "category": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "TagAlias": {
                "type": "object",
                "required": [
                    "id",
                    "antecedent_name",
                    "reason",
                    "creator_id",
                    "created_at",
                    "forum_post_id",
                    "updated_at",
                    "forum_topic_id",
                    "consequent_name",
                    "status",
                    "post_count",
                    "approver_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "antecedent_name": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "nullable": true,
                        "format": "date-time"
                    },
                    "forum_post_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "updated_at": {
                        "type": "string",
                        "nullable": true,
                        "format": "date-time"
                    },
                    "forum_topic_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "consequent_name": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/TagRequestStatuses"
                    },
                    "post_count": {
                        "type": "integer"
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    }
                }
            },
            "TagImplication": {
                "type": "object",
                "required": [
                    "id",
                    "reason",
                    "creator_id",
                    "created_at",
                    "forum_post_id",
                    "antecedent_name",
                    "consequent_name",
                    "status",
                    "forum_topic_id",
                    "updated_at",
                    "descendant_names",
                    "approver_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "forum_post_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "antecedent_name": {
                        "type": "string"
                    },
                    "consequent_name": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/TagRequestStatuses"
                    },
                    "forum_topic_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "descendant_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    }
                }
            },
            "TagPreview": {
                "type": "object",
                "required": [
                    "name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "resolved": {
                        "type": "string"
                    },
                    "category": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "post_count": {
                        "type": "integer"
                    },
                    "alias": {
                        "type": "string"
                    },
                    "implies": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "TagTypeVersion": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "old_type",
                    "new_type",
                    "is_locked",
                    "tag_id",
                    "creator_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "old_type": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "new_type": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "tag_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    }
                }
            },
            "Takedown": {
                "type": "object",
                "required": [
                    "id",
                    "status",
                    "approver_id",
                    "reason_hidden",
                    "created_at",
                    "updated_at",
                    "post_count"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "approved",
                            "denied",
                            "partial",
                            "pending"
                        ]
                    },
                    "approver_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "reason_hidden": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "post_count": {
                        "type": "integer"
                    }
                }
            },
            "Ticket": {
                "type": "object",
                "required": [
                    "id",
                    "creator_id",
                    "reason",
                    "disp_id",
                    "qtype",
                    "status",
                    "created_at",
                    "updated_at",
                    "response",
                    "handler_id",
                    "report_reason",
                    "accused_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "disp_id": {
                        "type": "integer"
                    },
                    "qtype": {
                        "$ref": "#/components/schemas/TicketTypes"
                    },
                    "status": {
                        "$ref": "#/components/schemas/TicketStatuses"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "response": {
                        "type": "string"
                    },
                    "handler_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "claimant_id": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Only visible to Moderator+."
                    },
                    "report_reason": {
                        "type": "string",
                        "nullable": true
                    },
                    "accused_id": {
                        "type": "integer",
                        "nullable": true
                    }
                }
            },
            "UploadWhitelist": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "pattern",
                    "note",
                    "hidden",
                    "allowed",
                    "reason",
                    "domain",
                    "path"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "pattern": {
                        "type": "string"
                    },
                    "note": {
                        "type": "string"
                    },
                    "hidden": {
                        "type": "boolean"
                    },
                    "allowed": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "domain": {
                        "type": "string"
                    },
                    "path": {
                        "type": "string"
                    }
                }
            },
            "Upload": {
                "type": "object",
                "required": [
                    "id",
                    "source",
                    "rating",
                    "uploader_id",
                    "tag_string",
                    "status",
                    "backtrace",
                    "post_id",
                    "md5_confirmation",
                    "created_at",
                    "updated_at",
                    "parent_id",
                    "md5",
                    "file_ext",
                    "file_size",
                    "image_width",
                    "image_height",
                    "description",
                    "uploader_name"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "source": {
                        "type": "string"
                    },
                    "rating": {
                        "$ref": "#/components/schemas/Ratings"
                    },
                    "uploader_id": {
                        "type": "integer"
                    },
                    "tag_string": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "description": "Note: The \"error\" status will be proceeded by an error, ex: \"error: RuntimeError - No file or source URL provided\"\n",
                        "enum": [
                            "completed",
                            "duplicate",
                            "error",
                            "processing",
                            "pending"
                        ]
                    },
                    "backtrace": {
                        "type": "string",
                        "nullable": true
                    },
                    "post_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "md5_confirmation": {
                        "type": "string",
                        "nullable": true,
                        "deprecated": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "parent_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "md5": {
                        "type": "string",
                        "nullable": true
                    },
                    "file_ext": {
                        "type": "string",
                        "nullable": true
                    },
                    "file_size": {
                        "type": "integer",
                        "nullable": true
                    },
                    "image_width": {
                        "type": "integer",
                        "nullable": true
                    },
                    "image_height": {
                        "type": "integer",
                        "nullable": true
                    },
                    "description": {
                        "type": "string"
                    },
                    "uploader_name": {
                        "type": "string"
                    }
                }
            },
            "User": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "name",
                    "level",
                    "base_upload_limit",
                    "post_upload_count",
                    "post_update_count",
                    "note_update_count",
                    "is_banned",
                    "can_approve_posts",
                    "can_upload_free",
                    "level_string",
                    "avatar_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "name": {
                        "type": "string"
                    },
                    "level": {
                        "type": "integer"
                    },
                    "base_upload_limit": {
                        "type": "integer"
                    },
                    "post_upload_count": {
                        "type": "integer"
                    },
                    "post_update_count": {
                        "type": "integer"
                    },
                    "note_update_count": {
                        "type": "integer"
                    },
                    "is_banned": {
                        "type": "boolean"
                    },
                    "can_approve_posts": {
                        "type": "boolean"
                    },
                    "can_upload_free": {
                        "type": "boolean"
                    },
                    "level_string": {
                        "type": "string"
                    },
                    "avatar_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "is_verified": {
                        "type": "boolean"
                    }
                }
            },
            "UserFeedback": {
                "type": "object",
                "required": [
                    "id",
                    "user_id",
                    "creator_id",
                    "category",
                    "body",
                    "created_at",
                    "updated_at",
                    "updater_id",
                    "is_deleted"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "category": {
                        "$ref": "#/components/schemas/FeedbackCategories"
                    },
                    "body": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    }
                }
            },
            "UserNameChangeRequest": {
                "type": "object",
                "required": [
                    "id",
                    "approver_id",
                    "user_id",
                    "original_name",
                    "desired_name",
                    "created_at",
                    "updated_at",
                    "status"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "approver_id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "original_name": {
                        "type": "string"
                    },
                    "desired_name": {
                        "type": "string"
                    },
                    "change_reason": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "approved"
                        ]
                    }
                }
            },
            "WikiPage": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "title",
                    "body",
                    "creator_id",
                    "is_locked",
                    "updater_id",
                    "is_deleted",
                    "other_names",
                    "parent",
                    "creator_name",
                    "category_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "title": {
                        "type": "string"
                    },
                    "body": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "other_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "parent": {
                        "type": "string",
                        "nullable": true
                    },
                    "creator_name": {
                        "type": "string"
                    },
                    "category_id": {
                        "$ref": "#/components/schemas/TagCategories"
                    }
                }
            },
            "WikiPageVersion": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "title",
                    "body",
                    "updater_id",
                    "wiki_page_id",
                    "is_locked",
                    "other_names",
                    "is_deleted",
                    "reason",
                    "parent"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "title": {
                        "type": "string"
                    },
                    "body": {
                        "type": "string"
                    },
                    "updater_id": {
                        "type": "integer"
                    },
                    "wiki_page_id": {
                        "type": "integer"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "other_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "is_deleted": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string",
                        "nullable": true
                    },
                    "parent": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "ApiKey": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "user_id",
                    "key",
                    "name",
                    "last_used_at",
                    "last_used_ip_address",
                    "last_user_agent",
                    "expires_at",
                    "notified_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "key": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "last_used_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_used_ip_address": {
                        "oneOf": [
                            {
                                "type": "string",
                                "format": "ipv4",
                                "nullable": true
                            },
                            {
                                "type": "string",
                                "format": "ipv6",
                                "nullable": true
                            }
                        ]
                    },
                    "last_user_agent": {
                        "type": "string",
                        "nullable": true
                    },
                    "expires_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "notified_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "EditHistory": {
                "type": "object",
                "required": [
                    "id",
                    "created_at",
                    "updated_at",
                    "body",
                    "subject",
                    "versionable_type",
                    "versionable_id",
                    "version",
                    "user_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "body": {
                        "type": "string"
                    },
                    "subject": {
                        "type": "string",
                        "nullable": true
                    },
                    "versionable_type": {
                        "type": "string",
                        "enum": [
                            "Blip",
                            "Comment",
                            "ForumPost"
                        ]
                    },
                    "versionable_id": {
                        "type": "integer"
                    },
                    "version": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    }
                }
            },
            "UserAvatarMenu": {
                "type": "object",
                "required": [
                    "has_uploads",
                    "has_favorites",
                    "has_sets",
                    "has_comments",
                    "has_forums"
                ],
                "properties": {
                    "has_uploads": {
                        "type": "boolean"
                    },
                    "has_favorites": {
                        "type": "boolean"
                    },
                    "has_sets": {
                        "type": "boolean"
                    },
                    "has_comments": {
                        "type": "boolean"
                    },
                    "has_forums": {
                        "type": "boolean"
                    }
                }
            },
            "TagCorrection": {
                "type": "object",
                "required": [
                    "post_count",
                    "real_post_count",
                    "category",
                    "category_cache",
                    "tag"
                ],
                "properties": {
                    "post_count": {
                        "type": "integer"
                    },
                    "real_post_count": {
                        "type": "integer"
                    },
                    "category": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "category_cache": {
                        "$ref": "#/components/schemas/TagCategories"
                    },
                    "tag": {
                        "$ref": "#/components/schemas/Tag"
                    }
                }
            },
            "SearchTrend": {
                "type": "object",
                "required": [
                    "tag",
                    "count",
                    "day"
                ],
                "properties": {
                    "tag": {
                        "type": "string"
                    },
                    "count": {
                        "type": "integer"
                    },
                    "day": {
                        "type": "string",
                        "format": "date"
                    }
                }
            },
            "RisingSearchTrend": {
                "type": "object",
                "required": [
                    "name",
                    "pretty_name",
                    "post_count",
                    "category"
                ],
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "pretty_name": {
                        "type": "string"
                    },
                    "post_count": {
                        "type": "integer"
                    },
                    "category": {
                        "$ref": "#/components/schemas/TagCategories"
                    }
                }
            },
            "SearchTrendBlacklist": {
                "type": "object",
                "required": [
                    "id",
                    "tag",
                    "reason",
                    "creator_id",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "tag": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "creator_id": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "MessageErrorResponse": {
                "type": "object",
                "required": [
                    "success",
                    "message"
                ],
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "message": {
                        "type": "string"
                    },
                    "code": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "MessageSuccessResponse": {
                "type": "object",
                "required": [
                    "success",
                    "message"
                ],
                "properties": {
                    "success": {
                        "type": "boolean",
                        "enum": [
                            true
                        ]
                    },
                    "message": {
                        "type": "string"
                    }
                }
            },
            "PostRecommendation": {
                "type": "object",
                "required": [
                    "post_id",
                    "score",
                    "explanation"
                ],
                "properties": {
                    "post_id": {
                        "type": "integer"
                    },
                    "score": {
                        "description": "Currently hardcoded as 1, https://github.com/e621ng/e621ng/blob/5f83e77329d4074c5462c7516c3850f33125f441/app/controllers/posts_controller.rb#L177\n",
                        "type": "number",
                        "format": "float"
                    },
                    "explanation": {
                        "description": "Currently hardcoded as null, https://github.com/e621ng/e621ng/blob/5f83e77329d4074c5462c7516c3850f33125f441/app/controllers/posts_controller.rb#L178\n",
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "RecommendedPosts": {
                "type": "object",
                "required": [
                    "post_id",
                    "model_version",
                    "results"
                ],
                "properties": {
                    "post_id": {
                        "type": "integer"
                    },
                    "model_version": {
                        "type": "string",
                        "enum": [
                            "opensearch"
                        ]
                    },
                    "results": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PostRecommendation"
                        }
                    }
                }
            },
            "PostVote": {
                "type": "object",
                "required": [
                    "id",
                    "post_id",
                    "user_id",
                    "score",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "post_id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "score": {
                        "$ref": "#/components/schemas/UpDownVote"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "UpDownVote": {
                "type": "integer",
                "enum": [
                    1,
                    -1
                ]
            },
            "UpDownMehVote": {
                "type": "integer",
                "enum": [
                    1,
                    0,
                    -1
                ]
            }
        },
        "responses": {
            "NotFound": {
                "description": "Not Found",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/NotFoundResponse"
                        }
                    }
                }
            },
            "AccessDenied": {
                "description": "Access Denied",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/AccessDeniedResponse"
                        }
                    }
                }
            },
            "ExpectedError": {
                "description": "Invalid Input Data",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "required": [
                                "errors"
                            ],
                            "example": [
                                {
                                    "errors": {
                                        "key": [
                                            "the error"
                                        ]
                                    }
                                }
                            ],
                            "properties": {
                                "errors": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "MessageSuccess": {
                "description": "Success",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/MessageSuccessResponse"
                        }
                    }
                }
            },
            "MessageError": {
                "description": "Error",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/MessageErrorResponse"
                        }
                    }
                }
            },
            "UserResponse": {
                "description": "Success",
                "content": {
                    "application/json": {
                        "schema": {
                            "oneOf": [
                                {
                                    "$ref": "#/components/schemas/FullUser"
                                },
                                {
                                    "$ref": "#/components/schemas/FullCurrentUser"
                                }
                            ]
                        }
                    }
                }
            }
        },
        "requestBodies": {
            "warning": {
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/WarningRecordType"
                        }
                    }
                }
            }
        }
    },
    "paths": {
        "/api_keys.json": {
            "get": {
                "summary": "Get API Keys",
                "operationId": "getAPIKeys",
                "tags": [
                    "API Keys"
                ],
                "security": [
                    {
                        "browserAuth": []
                    }
                ],
                "description": "Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id",
                                "id_asc",
                                "id_desc",
                                "name",
                                "name_asc",
                                "name_desc",
                                "created_at",
                                "created_at_asc",
                                "created_at_desc",
                                "updated_at",
                                "updated_at_asc",
                                "updated_at_desc",
                                "expires_at",
                                "expires_at_asc",
                                "expires_at_desc",
                                "last_used_at",
                                "last_used_at_asc",
                                "last_used_at_desc"
                            ]
                        }
                    },
                    {
                        "name": "search[name_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[is_expired]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ApiKey"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "post": {
                "summary": "Create API Key",
                "operationId": "createAPIKey",
                "tags": [
                    "API Keys"
                ],
                "security": [
                    {
                        "browserAuth": [],
                        "csrfToken": []
                    }
                ],
                "description": "Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "authenticity_token",
                                    "api_key[name]"
                                ],
                                "properties": {
                                    "authenticity_token": {
                                        "type": "string",
                                        "description": "CSRF Token"
                                    },
                                    "api_key[name]": {
                                        "type": "string"
                                    },
                                    "api_key[duration]": {
                                        "oneOf": [
                                            {
                                                "type": "integer",
                                                "description": "days"
                                            },
                                            {
                                                "type": "string",
                                                "enum": [
                                                    "never",
                                                    "custom"
                                                ]
                                            }
                                        ]
                                    },
                                    "api_key[expires_at]": {
                                        "type": "string",
                                        "format": "date-time"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ApiKey"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/api_keys/{id}.json": {
            "delete": {
                "summary": "Delete API Key",
                "operationId": "deleteAPIKey",
                "tags": [
                    "API Keys"
                ],
                "security": [
                    {
                        "browserAuth": [],
                        "csrfToken": []
                    }
                ],
                "description": "Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/api_keys/{id}/regenerate.json": {
            "post": {
                "summary": "Regenerate API Key",
                "operationId": "regenerateAPIKey",
                "tags": [
                    "API Keys"
                ],
                "security": [
                    {
                        "browserAuth": [],
                        "csrfToken": []
                    }
                ],
                "description": "Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "authenticity_token"
                                ],
                                "properties": {
                                    "authenticity_token": {
                                        "type": "string",
                                        "description": "CSRF Token"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ApiKey"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/artists.json": {
            "get": {
                "summary": "Search Artists",
                "operationId": "searchArtists",
                "tags": [
                    "Artists"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "updated_at",
                                "name",
                                "post_count"
                            ]
                        }
                    },
                    {
                        "name": "search[name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[group_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_other_name_like]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_name_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_name_or_url_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[url_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[creator_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[creator_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[has_tag]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "search[is_linked]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[linked_user_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[linked_user_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "allOf": [
                                            {
                                                "$ref": "#/components/schemas/Artist"
                                            },
                                            {
                                                "type": "object",
                                                "required": [
                                                    "urls"
                                                ],
                                                "properties": {
                                                    "urls": {
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#/components/schemas/ArtistUrl"
                                                        }
                                                    }
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Artist",
                "operationId": "createArtist",
                "tags": [
                    "Artists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "`other_names` & `urls` are silently truncated to 25 entries.\n`notes` is silently truncated to the wiki page limit (250,000).\nIndividual `other_names` are silently truncated to 100 characters.\n",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "artist[name]"
                                ],
                                "properties": {
                                    "artist[name]": {
                                        "type": "string"
                                    },
                                    "artist[other_names]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "artist[other_names_string]": {
                                        "type": "string"
                                    },
                                    "artist[url_string]": {
                                        "type": "string"
                                    },
                                    "artist[notes]": {
                                        "type": "string"
                                    },
                                    "artist[group_name]": {
                                        "type": "string"
                                    },
                                    "artist[linked_user_id]": {
                                        "type": "integer",
                                        "nullable": true,
                                        "description": "Only usable for Janitor+"
                                    },
                                    "artist[is_locked]": {
                                        "type": "boolean",
                                        "description": "Only usable for Janitor+"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Artist"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/artists/{idOrName}.json": {
            "get": {
                "summary": "Get Artist",
                "operationId": "getArtist",
                "tags": [
                    "Artists"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "allOf": [
                                        {
                                            "$ref": "#/components/schemas/Artist"
                                        },
                                        {
                                            "type": "object",
                                            "required": [
                                                "domains",
                                                "urls"
                                            ],
                                            "properties": {
                                                "domains": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "array",
                                                        "example": [
                                                            [
                                                                "e621.net",
                                                                1
                                                            ]
                                                        ],
                                                        "items": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                "urls": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/ArtistUrl"
                                                    }
                                                }
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Artist",
                "operationId": "editArtist",
                "tags": [
                    "Artists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "If an artist is locked, you must be Janitor+ to edit them.\n`other_names` & `urls` are silently truncated to 25 entries.\n`notes` is silently truncated to the wiki page limit (250,000).\nIndividual `other_names` are silently truncated to 100 characters.\nIf an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "artist[name]": {
                                        "type": "string",
                                        "description": "Only usable for Janitor+"
                                    },
                                    "artist[other_names]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "artist[other_names_string]": {
                                        "type": "string"
                                    },
                                    "artist[url_string]": {
                                        "type": "string"
                                    },
                                    "artist[notes]": {
                                        "type": "string"
                                    },
                                    "artist[group_name]": {
                                        "type": "string"
                                    },
                                    "artist[linked_user_id]": {
                                        "type": "integer",
                                        "nullable": true,
                                        "description": "Only usable for Janitor+"
                                    },
                                    "artist[is_locked]": {
                                        "type": "boolean",
                                        "description": "Only usable for Janitor+"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Artist",
                "operationId": "deleteArtist",
                "tags": [
                    "Artists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be an Admin+ to delete an artist.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/artists/{idOrName}/revert.json": {
            "put": {
                "summary": "Revert Artist",
                "operationId": "revertArtist",
                "tags": [
                    "Artists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "If an artist is locked, you must be Janitor+ to revert them.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    },
                    {
                        "name": "version_id",
                        "in": "query",
                        "required": true,
                        "description": "The version ID to revert to.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/artist_versions.json": {
            "get": {
                "summary": "Search Artist Versions",
                "operationId": "searchArtistVersions",
                "tags": [
                    "Artist Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "description": "The order of the results.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "name"
                            ]
                        }
                    },
                    {
                        "name": "search[name]",
                        "in": "query",
                        "description": "The name of the artist.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_id]",
                        "in": "query",
                        "description": "The id of the artist.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[updater_name]",
                        "in": "query",
                        "description": "The name of the user that updated the artist.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[updater_id]",
                        "in": "query",
                        "description": "The id of the user that updated the artist.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ArtistVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/artist_urls.json": {
            "get": {
                "summary": "Search Artist URLs",
                "operationId": "searchArtistUrls",
                "tags": [
                    "Artist URLs"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "description": "The order of the results.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id",
                                "id_asc",
                                "id_desc",
                                "artist_id",
                                "artist_id_asc",
                                "artist_id_desc",
                                "url",
                                "url_asc",
                                "url_desc",
                                "normalized_url",
                                "normalized_url_asc",
                                "normalized_url_desc",
                                "created_at",
                                "created_at_asc",
                                "created_at_desc",
                                "updated_at",
                                "updated_at_asc",
                                "updated_at_desc"
                            ]
                        }
                    },
                    {
                        "name": "search[artist_name]",
                        "in": "query",
                        "description": "The name of the artist.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_id]",
                        "in": "query",
                        "description": "The id of the artist.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[is_active]",
                        "in": "query",
                        "description": "If the artist url is active.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "search[url]",
                        "in": "query",
                        "description": "The url.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[normalized_url]",
                        "in": "query",
                        "description": "The normalized url. (http:, trailing `/`)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist]",
                        "in": "query",
                        "description": "Legacy nested search for artist. Supports the same parameters as /artists.json.",
                        "deprecated": true,
                        "schema": {
                            "type": "object"
                        }
                    },
                    {
                        "name": "search[url_matches]",
                        "in": "query",
                        "description": "Legacy name for `search[url]`.",
                        "deprecated": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[normalized_url_matches]",
                        "in": "query",
                        "description": "Legacy name for `search[normalized_url]`.",
                        "deprecated": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "allOf": [
                                            {
                                                "$ref": "#/components/schemas/ArtistUrl"
                                            },
                                            {
                                                "type": "object",
                                                "required": [
                                                    "artist"
                                                ],
                                                "properties": {
                                                    "artist": {
                                                        "$ref": "#/components/schemas/Artist"
                                                    }
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/avoid_postings.json": {
            "get": {
                "summary": "Search Avoid Posting Entries",
                "operationId": "searchAvoidPostings",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "name": "search[creator_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[creator_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_name_matches]",
                        "in": "query",
                        "description": "Any name matching.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_name]",
                        "in": "query",
                        "description": "The artist name of the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_id]",
                        "in": "query",
                        "description": "The artist id for the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_other_name_matches]",
                        "in": "query",
                        "description": "Any other name matching.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[details]",
                        "in": "query",
                        "description": "The details of the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[staff_notes]",
                        "in": "query",
                        "description": "The staff notes on the avoid posting entry. Must be Janitor+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[is_active]",
                        "in": "query",
                        "description": "If the avoid posting entry is active.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/AvoidPosting"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Avoid Posting Entry",
                "operationId": "createAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd staff user flag.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "avoid_posting[details]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[staff_notes]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[is_active]": {
                                        "type": "boolean"
                                    },
                                    "avoid_posting[artist_attributes][name]": {
                                        "type": "string",
                                        "description": "If provided and the artist does not exist, an artist will be created."
                                    },
                                    "avoid_posting[artist_attributes][other_names_string]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[artist_attributes][other_names]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "avoid_posting[artist_attributes][group_name]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[artist_attributes][linked_user_id]": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AvoidPosting"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/avoid_postings/{idOrName}.json": {
            "get": {
                "summary": "Get Avoid Posting Entry",
                "operationId": "getAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AvoidPosting"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Avoid Posting Entry",
                "operationId": "editAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "avoid_posting[details]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[staff_notes]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[is_active]": {
                                        "type": "boolean"
                                    },
                                    "avoid_posting[artist_attributes][name]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[artist_attributes][other_names_string]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[artist_attributes][other_names]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "avoid_posting[artist_attributes][group_name]": {
                                        "type": "string"
                                    },
                                    "avoid_posting[artist_attributes][linked_user_id]": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Destroy Avoid Posting Entry",
                "operationId": "destroyAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/avoid_postings/{idOrName}/delete.json": {
            "put": {
                "summary": "Delete Avoid Posting Entry",
                "operationId": "deleteAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Soft deletion. Must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/avoid_postings/{idOrName}/undelete.json": {
            "put": {
                "summary": "Undelete Avoid Posting Entry",
                "operationId": "undeleteAvoidPosting",
                "tags": [
                    "Avoid Posting Entries"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/avoid_posting_versions.json": {
            "get": {
                "summary": "Search Avoid Posting Versions",
                "operationId": "searchAvoidPostingVersions",
                "tags": [
                    "Avoid Posting Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "name": "search[updater_name]",
                        "in": "query",
                        "description": "The name of the updater of the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[updater_id]",
                        "in": "query",
                        "description": "The ID of the updater of the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_name_matches]",
                        "in": "query",
                        "description": "Any name matching.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_name]",
                        "in": "query",
                        "description": "The artist name of the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[artist_id]",
                        "in": "query",
                        "description": "The artist id for the avoid posting entry.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[any_other_name_matches]",
                        "in": "query",
                        "description": "Any other name matching.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[group_name]",
                        "in": "query",
                        "description": "Any other name matching.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[is_active]",
                        "in": "query",
                        "description": "If the avoid posting entry is active.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/AvoidPostingVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/bans.json": {
            "get": {
                "summary": "Search Bans",
                "operationId": "searchBans",
                "tags": [
                    "Bans"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "description": "The order of the results.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "expires_at_desc"
                            ]
                        }
                    },
                    {
                        "name": "search[banner_id]",
                        "in": "query",
                        "description": "The ID of the banner.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[banner_name]",
                        "in": "query",
                        "description": "The name of banner.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_id]",
                        "in": "query",
                        "description": "The ID of the banned user.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_name]",
                        "in": "query",
                        "description": "The name of the banned user.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[reason_matches]",
                        "in": "query",
                        "description": "The reason of the ban.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[expired]",
                        "in": "query",
                        "description": "If the ban is expired.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Ban"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/bans/{id}.json": {
            "get": {
                "summary": "Get Ban",
                "operationId": "getBan",
                "tags": [
                    "Bans"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ban"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/blips.json": {
            "get": {
                "summary": "Search Blips",
                "operationId": "searchBlips",
                "tags": [
                    "Blips"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "updated_at",
                                "updated_at_desc"
                            ]
                        }
                    },
                    {
                        "name": "search[creator_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[creator_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[body_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[response_to]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Blip"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Blip",
                "operationId": "createBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "blip[body]"
                                ],
                                "properties": {
                                    "blip[body]": {
                                        "type": "string"
                                    },
                                    "blip[response_to]": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Blip"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/blips/{id}.json": {
            "get": {
                "summary": "Get Blip",
                "operationId": "getBlip",
                "tags": [
                    "Blips"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Blip"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Blip",
                "operationId": "editBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "blip[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Destroy Blip",
                "operationId": "destroyBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/blips/{id}/delete.json": {
            "post": {
                "summary": "Delete Blip",
                "operationId": "deleteBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Soft deletion. You must be the creator or Moderator+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Blip"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/blips/{id}/undelete.json": {
            "post": {
                "summary": "Undelete Blip",
                "operationId": "undeleteBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Blip"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/blips/{id}/warning.json": {
            "post": {
                "summary": "Mark Blip",
                "operationId": "markBlip",
                "tags": [
                    "Blips"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/warning"
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DTextResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/bulk_update_requests.json": {
            "get": {
                "summary": "Search Bulk Update Requests",
                "operationId": "searchBulkUpdateRequests",
                "tags": [
                    "Bulk Update Requests"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "status_desc",
                                "updated_at_desc",
                                "updated_at_asc"
                            ]
                        }
                    },
                    {
                        "name": "search[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[user_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[approver_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[approver_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[forum_topic_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[forum_post_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[status]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "description": "Multiple can be specified via comma separating.",
                            "enum": [
                                "approved",
                                "rejected",
                                "pending"
                            ]
                        }
                    },
                    {
                        "name": "search[title_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[script_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BulkUpdateRequest"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Bulk Update Request",
                "operationId": "createBulkUpdateRequest",
                "tags": [
                    "Bulk Update Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "bulk_update_request[script]",
                                    "bulk_update_request[title]",
                                    "bulk_update_request[reason]"
                                ],
                                "properties": {
                                    "bulk_update_request[script]": {
                                        "type": "string"
                                    },
                                    "bulk_update_request[title]": {
                                        "type": "string"
                                    },
                                    "bulk_update_request[reason]": {
                                        "type": "string"
                                    },
                                    "bulk_update_request[forum_topic_id]": {
                                        "type": "integer"
                                    },
                                    "bulk_update_request[skip_forum]": {
                                        "type": "boolean",
                                        "description": "Only usable for Admin+"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BulkUpdateRequest"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/bulk_update_requests/{id}.json": {
            "get": {
                "summary": "Get Bulk Update Request",
                "operationId": "getBulkUpdateRequest",
                "tags": [
                    "Bulk Update Requests"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BulkUpdateRequest"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Bulk Update Request",
                "operationId": "editBulkUpdateRequest",
                "tags": [
                    "Bulk Update Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator of the BUR, or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "bulk_update_request[script]": {
                                        "type": "string"
                                    },
                                    "bulk_update_request[forum_topic_id]": {
                                        "description": "You must be Admin+.",
                                        "type": "string"
                                    },
                                    "bulk_update_request[forum_post_id]": {
                                        "description": "You must be Admin+.",
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Reject Bulk Update Request",
                "operationId": "rejectBulkUpdateRequest",
                "tags": [
                    "Bulk Update Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator of the BUR, or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/bulk_update_requests/{id}/approve.json": {
            "post": {
                "summary": "Approve Bulk Update Request",
                "operationId": "approveBulkUpdateRequest",
                "tags": [
                    "Bulk Update Requests"
                ],
                "description": "Must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/comments.json": {
            "get": {
                "summary": "Search Comments",
                "operationId": "searchComments",
                "tags": [
                    "Comments"
                ],
                "description": "For searching comments, group_by=comment must be set.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "status",
                                "status_desc",
                                "updated_at_desc"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "group_by",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "comment",
                                "post"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "description": "Accepts a comma separated list.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_tags_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_note_updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_note_updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_sticky]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_hidden]",
                        "description": "Only usable by Moderator+",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[do_not_bump_post]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Comment"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Comment",
                "operationId": "createComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "comment[body]",
                                    "comment[post_id]"
                                ],
                                "properties": {
                                    "comment[body]": {
                                        "type": "string"
                                    },
                                    "comment[post_id]": {
                                        "type": "integer"
                                    },
                                    "comment[do_not_bump_post]": {
                                        "type": "boolean"
                                    },
                                    "comment[is_sticky]": {
                                        "type": "boolean",
                                        "description": "Only usable for Janitor+"
                                    },
                                    "comment[is_hidden]": {
                                        "type": "boolean",
                                        "description": "Only usable for Moderator+"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Comment"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/comments/{id}.json": {
            "get": {
                "summary": "Get Comment",
                "operationId": "getComment",
                "tags": [
                    "Comments"
                ],
                "description": "If the comment is hidden, you must be the creator or Janitor+ to see it.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Comment"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Comment",
                "operationId": "editComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "comment[body]": {
                                        "type": "string"
                                    },
                                    "comment[is_sticky]": {
                                        "type": "boolean",
                                        "description": "Only usable for Janitor+"
                                    },
                                    "comment[is_hidden]": {
                                        "type": "boolean",
                                        "description": "Only usable for Moderator+"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Comment",
                "operationId": "deleteComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/comments/{id}/hide.json": {
            "post": {
                "summary": "Hide Comment",
                "operationId": "hideComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Moderator+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Comment"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/comments/{id}/unhide.json": {
            "post": {
                "summary": "Unhide Comment",
                "operationId": "unhideComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Comment"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/comments/{id}/warning.json": {
            "post": {
                "summary": "Mark Comment",
                "operationId": "markComment",
                "tags": [
                    "Comments"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/warning"
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DTextResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/comments/{id}/votes.json": {
            "post": {
                "summary": "Create Comment Vote",
                "operationId": "createCommentVote",
                "tags": [
                    "Comment Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "score",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/UpDownVote"
                        }
                    },
                    {
                        "name": "no_unvote",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "score",
                                        "our_score"
                                    ],
                                    "properties": {
                                        "score": {
                                            "type": "integer"
                                        },
                                        "our_score": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Comment Vote",
                "operationId": "deleteCommentVote",
                "tags": [
                    "Comment Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/comment_votes/lock.json": {
            "post": {
                "summary": "Lock Comment Votes",
                "operationId": "lockCommentVotes",
                "tags": [
                    "Comment Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+. Errors if ids is not provided.\n",
                "parameters": [
                    {
                        "name": "ids",
                        "in": "query",
                        "required": true,
                        "description": "The IDs of the comment votes, comma separated.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/comment_votes/delete.json": {
            "post": {
                "summary": "Delete Comment Votes",
                "operationId": "deleteCommentVotes",
                "tags": [
                    "Comment Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+. Errors if ids is not provided.\n",
                "parameters": [
                    {
                        "name": "ids",
                        "in": "query",
                        "required": true,
                        "description": "The IDs of the comment votes, comma separated.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/dmails.json": {
            "get": {
                "summary": "Search DMails",
                "operationId": "searchDMails",
                "tags": [
                    "DMails"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[title_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[message_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[to_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[to_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[from_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[from_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_read]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_deleted]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[read]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/DMail"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/dmails/{id}.json": {
            "get": {
                "summary": "Get DMail",
                "operationId": "getDMail",
                "tags": [
                    "DMails"
                ],
                "description": "Fetching a dmail will not mark it as read.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DMail"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "delete": {
                "summary": "Delete DMail",
                "operationId": "deleteDMail",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Deleting simply hides your copy of the dmail.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/dmails/{id}/mark_as_read.json": {
            "put": {
                "summary": "Mark DMail As Read",
                "operationId": "markDMailAsRead",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/dmails/{id}/mark_as_unread.json": {
            "put": {
                "summary": "Mark DMail As Unread",
                "operationId": "markDMailAsUnread",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/dmails/mark_all_as_read.json": {
            "put": {
                "summary": "Mark All DMails As Read",
                "operationId": "markAllDMailsAsRead",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/dtext_preview.json": {
            "post": {
                "summary": "Preview DText",
                "operationId": "previewDText",
                "tags": [
                    "DText"
                ],
                "description": "Note while this route does not require auth, without auth it requires a CSRF token. For that reason it has been marked as requiring auth.",
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "csrfToken": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "body"
                                ],
                                "properties": {
                                    "body": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DTextResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/edit_histories.json": {
            "get": {
                "summary": "Search Edit Histories",
                "operationId": "searchEditHistories",
                "tags": [
                    "Edit Histories"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[subject_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[versionable_type]",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "Blip",
                                "Comment",
                                "ForumPost"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[versionable_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[editor_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[editor_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EditHistory"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/edit_histories/{id}.json": {
            "get": {
                "summary": "Get Edit History",
                "operationId": "getEditHistory",
                "tags": [
                    "Edit Histories"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": true,
                        "description": "The versionable type.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "Blip",
                                "Comment",
                                "ForumPost"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EditHistory"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/email_blacklists.json": {
            "get": {
                "summary": "Search Email Blacklists",
                "operationId": "searchEmailBlacklists",
                "tags": [
                    "Email Blacklists"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "reason",
                                "domain"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[domain]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EmailBlacklist"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Email Blacklist",
                "operationId": "createEmailBlacklist",
                "tags": [
                    "Email Blacklists"
                ],
                "description": "You must be Admin+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "email_blacklist[domain]",
                                    "email_blacklist[reason]"
                                ],
                                "properties": {
                                    "email_blacklist[domain]": {
                                        "type": "string"
                                    },
                                    "email_blacklist[reason]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EmailBlacklist"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/email_blacklists/{id}.json": {
            "delete": {
                "summary": "Delete Email Blacklist",
                "operationId": "deleteEmailBlacklist",
                "tags": [
                    "Email Blacklists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/favorites.json": {
            "get": {
                "summary": "List Favorites",
                "operationId": "listFavorites",
                "tags": [
                    "Favorites"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "in": "query",
                        "name": "user_id",
                        "description": "You must be the user or Moderator+ if the user has their favorites hidden.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "posts"
                                    ],
                                    "properties": {
                                        "posts": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Post"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "post": {
                "summary": "Add Favorite",
                "operationId": "addFavorite",
                "tags": [
                    "Favorites"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post_id",
                                        "favorite_count"
                                    ],
                                    "properties": {
                                        "post_id": {
                                            "type": "integer"
                                        },
                                        "favorite_count": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/favorites/{id}.json": {
            "delete": {
                "summary": "Remove Favorite",
                "operationId": "removeFavorite",
                "tags": [
                    "Favorites"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post_id",
                                        "favorite_count"
                                    ],
                                    "properties": {
                                        "post_id": {
                                            "type": "integer"
                                        },
                                        "favorite_count": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/forum_posts.json": {
            "get": {
                "summary": "Search Forum Posts",
                "operationId": "searchForumPosts",
                "tags": [
                    "Forum Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[topic_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[topic_title_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[topic_category_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_hidden]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ForumPost"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Forum Post",
                "operationId": "createForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "forum_post[body]",
                                    "forum_post[topic_id]"
                                ],
                                "properties": {
                                    "forum_post[body]": {
                                        "type": "string"
                                    },
                                    "forum_post[topic_id]": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumPost"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/forum_posts/{id}.json": {
            "get": {
                "summary": "Get Forum Post",
                "operationId": "getForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "description": "If the forum post is hidden, you must be the creator or Moderator+ to see it.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumPost"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Forum Post",
                "operationId": "editForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "forum_post[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Forum Post",
                "operationId": "deleteForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_posts/{id}/hide.json": {
            "post": {
                "summary": "Hide Forum Post",
                "operationId": "hideForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumPost"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_posts/{id}/unhide.json": {
            "post": {
                "summary": "Unhide Forum Post",
                "operationId": "unhideForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumPost"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_posts/{id}/warning.json": {
            "post": {
                "summary": "Mark Forum Post",
                "operationId": "markForumPost",
                "tags": [
                    "Forum Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/warning"
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DTextResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_posts/{id}/votes.json": {
            "post": {
                "summary": "Create Forum Post Vote",
                "operationId": "createForumPostVote",
                "tags": [
                    "Forum Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "forum_post_vote[score]"
                                ],
                                "properties": {
                                    "forum_post_vote[score]": {
                                        "$ref": "#/components/schemas/UpDownMehVote"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumPostVote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Forum Post Vote",
                "operationId": "deleteForumPostVote",
                "tags": [
                    "Forum Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/forum_topics.json": {
            "get": {
                "summary": "Search Forum Topics",
                "operationId": "searchForumTopics",
                "tags": [
                    "Forum Topics"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "sticky"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[title]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[title_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[category_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_sticky]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_locked]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_hidden]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ForumTopic"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Forum Topic",
                "operationId": "createForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "forum_topic[title]",
                                    "forum_topic[category_id]"
                                ],
                                "properties": {
                                    "forum_topic[title]": {
                                        "type": "string"
                                    },
                                    "forum_topic[category_id]": {
                                        "type": "integer"
                                    },
                                    "forum_topic[original_post_attributes][id]": {
                                        "type": "integer",
                                        "description": "Forum post ID. Mutually exclusive with body, one must be provided."
                                    },
                                    "forum_topic[original_post_attributes][body]": {
                                        "type": "string",
                                        "description": "First forum post body. Mutually exclusive with id, one must be provided."
                                    },
                                    "forum_topic[is_sticky]": {
                                        "type": "boolean",
                                        "description": "You must be Moderator+."
                                    },
                                    "forum_topic[is_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Moderator+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/forum_topics/{id}.json": {
            "get": {
                "summary": "Get Forum Forum Topic",
                "operationId": "getForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "description": "If the forum topic is hidden, you must be the creator or Moderator+ to see it.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Forum Topic",
                "operationId": "editForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "forum_topic[title]": {
                                        "type": "string"
                                    },
                                    "forum_topic[category_id]": {
                                        "type": "integer"
                                    },
                                    "forum_topic[original_post_attributes][id]": {
                                        "type": "integer",
                                        "description": "Forum post ID. Silently ignored"
                                    },
                                    "forum_topic[original_post_attributes][body]": {
                                        "type": "string",
                                        "description": "First forum post body."
                                    },
                                    "forum_topic[is_sticky]": {
                                        "type": "boolean",
                                        "description": "You must be Moderator+."
                                    },
                                    "forum_topic[is_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Moderator+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Forum Topic",
                "operationId": "deleteForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_topics/{id}/hide.json": {
            "post": {
                "summary": "Hide Forum Topic",
                "operationId": "hideForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_topics/{id}/unhide.json": {
            "post": {
                "summary": "Unhide Forum Topic",
                "operationId": "unhideForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_topics/{id}/subscribe.json": {
            "post": {
                "summary": "Subscribe To Forum Topic",
                "operationId": "subscribeForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_topics/{id}/unsubscribe.json": {
            "post": {
                "summary": "Unsubscribe From Forum Topic",
                "operationId": "unsubscribeForumTopic",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForumTopic"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/forum_topics/mark_all_as_read.json": {
            "post": {
                "summary": "Mark All Forum Topics As Read",
                "operationId": "markAllForumTopicsAsRead",
                "tags": [
                    "Forum Topics"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "category_id"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/help.json": {
            "get": {
                "summary": "List Help Pages",
                "operationId": "listHelpPages",
                "description": "Will error if no help pages exist.",
                "tags": [
                    "Help Pages"
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Help"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Help Page",
                "operationId": "createHelpPage",
                "tags": [
                    "Help Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "help_page[name]",
                                    "help_page[wiki_page]"
                                ],
                                "properties": {
                                    "help_page[name]": {
                                        "type": "string"
                                    },
                                    "help_page[wiki_page]": {
                                        "type": "string"
                                    },
                                    "help_page[related]": {
                                        "type": "string",
                                        "description": "Separate with a comma followed by a space."
                                    },
                                    "help_page[title]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Help"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/help/{id}.json": {
            "get": {
                "summary": "Get Help Page",
                "operationId": "getHelpPage",
                "tags": [
                    "Help Pages"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "oneOf": [
                                {
                                    "type": "integer"
                                },
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "description": "An ID that can be either an integer or a name."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Help"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Help Page",
                "operationId": "editHelpPage",
                "tags": [
                    "Help Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "help_page[name]": {
                                        "type": "string"
                                    },
                                    "help_page[wiki_page]": {
                                        "type": "string"
                                    },
                                    "help_page[related]": {
                                        "type": "string",
                                        "description": "Separate with a comma followed by a space."
                                    },
                                    "help_page[title]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Help Page",
                "operationId": "deleteHelpPage",
                "tags": [
                    "Help Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/ip_bans.json": {
            "get": {
                "summary": "List IP Bans",
                "operationId": "listIpBans",
                "tags": [
                    "IP Bans"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[banner_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[banner_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/IpBan"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create IP Ban",
                "operationId": "createIpBan",
                "tags": [
                    "IP Bans"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "ip_ban[ip_addr]",
                                    "ip_ban[reason]"
                                ],
                                "properties": {
                                    "ip_ban[ip_addr]": {
                                        "type": "string"
                                    },
                                    "ip_ban[reason]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/IpBan"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/ip_bans/{id}.json": {
            "delete": {
                "summary": "Delete IP Ban",
                "operationId": "deleteIpBan",
                "tags": [
                    "IP Bans"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/iqdb_queries.json": {
            "get": {
                "summary": "Query IQDB",
                "operationId": "queryIqdbGet",
                "tags": [
                    "IQDB"
                ],
                "parameters": [
                    {
                        "name": "search[score_cutoff]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[url]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[post_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[hash]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/IqdbResponse"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            },
            "post": {
                "summary": "Query IQDB",
                "operationId": "queryIqdbPost",
                "tags": [
                    "IQDB"
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "search[file]": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "search[score_cutoff]": {
                                        "type": "integer"
                                    },
                                    "search[url]": {
                                        "type": "string"
                                    },
                                    "search[post_id]": {
                                        "type": "string"
                                    },
                                    "search[hash]": {
                                        "type": "string"
                                    }
                                }
                            }
                        },
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "score_cutoff": {
                                        "type": "number"
                                    },
                                    "url": {
                                        "type": "string"
                                    },
                                    "post_id": {
                                        "type": "string"
                                    },
                                    "hash": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/IqdbResponse"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/mascots.json": {
            "get": {
                "summary": "Search Mascots",
                "operationId": "searchMascots",
                "tags": [
                    "Mascots"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Mascot"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Mascot",
                "operationId": "createMascot",
                "tags": [
                    "Mascots"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "mascot[mascot_file]",
                                    "mascot[display_name]",
                                    "mascot[background_color]",
                                    "mascot[artist_url]",
                                    "mascot[artist_name]"
                                ],
                                "properties": {
                                    "mascot[mascot_file]": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "mascot[display_name]": {
                                        "type": "string"
                                    },
                                    "mascot[background_color]": {
                                        "type": "string"
                                    },
                                    "mascot[artist_url]": {
                                        "type": "string"
                                    },
                                    "mascot[artist_name]": {
                                        "type": "string"
                                    },
                                    "mascot[available_on_string]": {
                                        "type": "string",
                                        "description": "Comma separated site names."
                                    },
                                    "mascot[active]": {
                                        "type": "boolean"
                                    },
                                    "mascot[hide_anonymous]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Mascot"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/mascots/{id}.json": {
            "patch": {
                "summary": "Edit Mascot",
                "operationId": "editMascot",
                "tags": [
                    "Mascots"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "mascot[mascot_file]": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "mascot[display_name]": {
                                        "type": "string"
                                    },
                                    "mascot[background_color]": {
                                        "type": "string"
                                    },
                                    "mascot[artist_url]": {
                                        "type": "string"
                                    },
                                    "mascot[artist_name]": {
                                        "type": "string"
                                    },
                                    "mascot[available_on_string]": {
                                        "type": "string",
                                        "description": "Comma separated site names."
                                    },
                                    "mascot[active]": {
                                        "type": "boolean"
                                    },
                                    "mascot[hide_anonymous]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Mascot",
                "operationId": "deleteMascot",
                "tags": [
                    "Mascots"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/mod_actions.json": {
            "get": {
                "summary": "Search Mod Actions",
                "operationId": "searchModActions",
                "tags": [
                    "Mod Actions"
                ],
                "description": "Note that some mod actions are not in use anymore. Their entries exist for historical purposes only.<br>\nThe current legacy actions are as follows:<br>\n* `created_positive_record`, `created_neutral_record`, `created_negative_record`\n* `created_flag_reason`, `edited_flag_reason`, `deleted_flag_reason`\n* `post_move_favorites`, `post_delete`, `post_undelete`, `post_destroy`, `post_rating_lock`, `post_unapprove`\n* `post_replacement_accept`, `post_replacement_reject`, `post_replacement_delete`\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[action]",
                        "schema": {
                            "$ref": "#/components/schemas/ModActionActions"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ModAction"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/mod_actions/{id}.json": {
            "get": {
                "summary": "Get Mod Action",
                "operationId": "getModAction",
                "tags": [
                    "Mod Actions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ModAction"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/news_updates.json": {
            "get": {
                "summary": "List News Updates",
                "operationId": "listNewsUpdates",
                "tags": [
                    "News Updates"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/NewsUpdate"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create News Update",
                "operationId": "createNewsUpdate",
                "tags": [
                    "News Updates"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "news_update[message]"
                                ],
                                "properties": {
                                    "news_update[message]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/NewsUpdate"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/news_updates/{id}.json": {
            "patch": {
                "summary": "Edit News Update",
                "operationId": "editNewsUpdate",
                "tags": [
                    "News Updates"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "news_update[message]"
                                ],
                                "properties": {
                                    "news_update[message]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete News Update",
                "operationId": "deleteNewsUpdate",
                "tags": [
                    "News Updates"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/notes.json": {
            "get": {
                "summary": "Search Notes",
                "operationId": "searchNotes",
                "tags": [
                    "Notes"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_active]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_tags_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_note_updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_note_updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Note"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Note",
                "operationId": "createNote",
                "tags": [
                    "Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "note[post_id]",
                                    "note[x]",
                                    "note[y]",
                                    "note[width]",
                                    "note[height]",
                                    "note[body]"
                                ],
                                "properties": {
                                    "note[post_id]": {
                                        "type": "integer"
                                    },
                                    "note[x]": {
                                        "type": "integer"
                                    },
                                    "note[y]": {
                                        "type": "integer"
                                    },
                                    "note[width]": {
                                        "type": "integer"
                                    },
                                    "note[height]": {
                                        "type": "integer"
                                    },
                                    "note[body]": {
                                        "type": "string"
                                    },
                                    "note[html_id]": {
                                        "type": "string",
                                        "description": "Passthrough, used in frontend."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "allOf": [
                                        {
                                            "$ref": "#/components/schemas/Note"
                                        },
                                        {
                                            "type": "object",
                                            "required": [
                                                "html_id"
                                            ],
                                            "properties": {
                                                "html_id": {
                                                    "type": "string",
                                                    "description": "Passthrough, used in frontend."
                                                }
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/notes/{id}.json": {
            "get": {
                "summary": "Get Note",
                "operationId": "getNote",
                "tags": [
                    "Notes"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Note"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Note",
                "operationId": "editNote",
                "tags": [
                    "Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "note[x]": {
                                        "type": "integer"
                                    },
                                    "note[y]": {
                                        "type": "integer"
                                    },
                                    "note[width]": {
                                        "type": "integer"
                                    },
                                    "note[height]": {
                                        "type": "integer"
                                    },
                                    "note[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Note",
                "operationId": "deleteNote",
                "tags": [
                    "Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/notes/{id}/revert.json": {
            "put": {
                "summary": "Revert Note",
                "operationId": "revertNote",
                "tags": [
                    "Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "version_id",
                        "in": "query",
                        "required": true,
                        "description": "The version ID to revert to.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/note_versions.json": {
            "get": {
                "summary": "Search Note Versions",
                "operationId": "searchNoteVersions",
                "tags": [
                    "Note Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[note_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_active]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/NoteVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/pools.json": {
            "get": {
                "summary": "Search Pools",
                "operationId": "searchPools",
                "tags": [
                    "Pools"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "name",
                                "created_at",
                                "post_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[description_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[category]",
                        "schema": {
                            "$ref": "#/components/schemas/PoolCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_active]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Pool"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Pool",
                "operationId": "createPool",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "pool[name]"
                                ],
                                "properties": {
                                    "pool[name]": {
                                        "type": "string"
                                    },
                                    "pool[description]": {
                                        "type": "string"
                                    },
                                    "pool[category]": {
                                        "$ref": "#/components/schemas/PoolCategories"
                                    },
                                    "pool[is_active]": {
                                        "type": "boolean"
                                    },
                                    "pool[post_ids_string]": {
                                        "type": "string",
                                        "description": "Space separated list of post IDs. Mutually exclusive with post_ids."
                                    },
                                    "pool[post_ids]": {
                                        "type": "array",
                                        "description": "Array of post IDs. Mutually exclusive with post_ids_string.",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Pool"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/pools/{id}.json": {
            "get": {
                "summary": "Get Pool",
                "operationId": "getPool",
                "tags": [
                    "Pools"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Pool"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Pool",
                "operationId": "editPool",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "pool[name]": {
                                        "type": "string"
                                    },
                                    "pool[description]": {
                                        "type": "string"
                                    },
                                    "pool[is_active]": {
                                        "type": "boolean"
                                    },
                                    "pool[category]": {
                                        "$ref": "#/components/schemas/PoolCategories"
                                    },
                                    "pool[post_ids_string]": {
                                        "type": "string",
                                        "description": "Space separated list of post IDs. Mutually exclusive with post_ids."
                                    },
                                    "pool[post_ids]": {
                                        "type": "array",
                                        "description": "Array of post IDs. Mutually exclusive with post_ids_string.",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Pool",
                "operationId": "deletePool",
                "tags": [
                    "Pools"
                ],
                "description": "You must be Janitor+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/pools/{id}/revert.json": {
            "put": {
                "summary": "Revert Pool",
                "operationId": "revertPool",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "version_id",
                        "in": "query",
                        "required": true,
                        "description": "The version ID to revert to.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/pool_element.json": {
            "post": {
                "summary": "Add Post To Pool",
                "operationId": "addPostToPool",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "pool_id": {
                                        "type": "integer",
                                        "description": "Mutually exclusive with pool_name."
                                    },
                                    "pool_name": {
                                        "type": "string",
                                        "description": "Mutually exclusive with pool_id."
                                    },
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Pool"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "delete": {
                "summary": "Remove Post From Pool",
                "operationId": "removePostFromPool",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "pool_id": {
                                        "type": "integer",
                                        "description": "Mutually exclusive with pool_name."
                                    },
                                    "pool_name": {
                                        "type": "string",
                                        "description": "Mutually exclusive with pool_id. The value is not normalized."
                                    },
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/pool_element/recent.json": {
            "get": {
                "summary": "Get Recent Pools",
                "operationId": "getRecentPools",
                "tags": [
                    "Pools"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "pool_id": {
                                        "type": "integer",
                                        "description": "Mutually exclusive with pool_name."
                                    },
                                    "pool_name": {
                                        "type": "string",
                                        "description": "Mutually exclusive with pool_id. The value is not normalized."
                                    },
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/pool_versions.json": {
            "get": {
                "summary": "Search Pool Versions",
                "operationId": "searchPoolVersions",
                "tags": [
                    "Pool Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[pool_id]",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PoolVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/popular.json": {
            "get": {
                "summary": "List Most Upvoted Posts",
                "operationId": "listPopular",
                "tags": [
                    "Popular"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "The date to list popular uploads for. Only The day, month, and year are considered.",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "scale",
                        "in": "query",
                        "description": "The scale of the results, in relation to `date`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "month",
                                "week",
                                "day"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "posts"
                                    ],
                                    "properties": {
                                        "posts": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Post"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/posts.json": {
            "get": {
                "summary": "Search Posts",
                "operationId": "searchPosts",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "in": "query",
                        "name": "tags",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "md5",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "random",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "posts"
                                    ],
                                    "properties": {
                                        "posts": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Post"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/posts/random.json": {
            "get": {
                "summary": "Get Random Post",
                "operationId": "getRandomPost",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "name": "tags",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/posts/{id}.json": {
            "get": {
                "summary": "Get Post",
                "operationId": "getPost",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Post",
                "operationId": "editPost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Most errors are silently swallowed.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "post[tag_string]": {
                                        "type": "string",
                                        "description": "Replaces all tags on the post."
                                    },
                                    "post[old_tag_string]": {
                                        "type": "string",
                                        "description": "The tag string before your edits, used to reconcile conflicts."
                                    },
                                    "post[tag_string_diff]": {
                                        "type": "string",
                                        "description": "Tags with a minus are removed, else they are added. Mutually exclusive with tag_string."
                                    },
                                    "post[source_diff]": {
                                        "type": "string",
                                        "description": "Sources with a minus are removed, else they are added. It is not possible to add inactive sources through this. Mutually exclusive with source."
                                    },
                                    "post[source]": {
                                        "type": "string",
                                        "description": "Replaces all sources on the post."
                                    },
                                    "post[old_source]": {
                                        "type": "string",
                                        "description": "The sources before your edits, used to reconcile conflicts."
                                    },
                                    "post[parent_id]": {
                                        "type": "integer"
                                    },
                                    "post[old_parent_id]": {
                                        "type": "integer"
                                    },
                                    "post[description]": {
                                        "type": "string"
                                    },
                                    "post[old_description]": {
                                        "type": "string"
                                    },
                                    "post[rating]": {
                                        "$ref": "#/components/schemas/Ratings"
                                    },
                                    "post[old_rating]": {
                                        "$ref": "#/components/schemas/Ratings"
                                    },
                                    "post[edit_reason]": {
                                        "type": "string"
                                    },
                                    "post[is_rating_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Privileged+."
                                    },
                                    "post[is_note_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Janitor+."
                                    },
                                    "post[bg_colo]r": {
                                        "type": "string",
                                        "description": "You must be Janitor+."
                                    },
                                    "post[is_comment_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Moderator+."
                                    },
                                    "post[is_comment_disabled]": {
                                        "type": "boolean",
                                        "description": "You must be Admin+."
                                    },
                                    "post[is_status_locked]": {
                                        "type": "boolean",
                                        "description": "You must be Admin+."
                                    },
                                    "post[locked_tags]": {
                                        "type": "string",
                                        "description": "You must be Admin+."
                                    },
                                    "post[hide_from_anonymous]": {
                                        "type": "boolean",
                                        "description": "You must be Admin+."
                                    },
                                    "post[hide_from_search_engines]": {
                                        "type": "boolean",
                                        "description": "You must be Admin+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Post"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/update_iqdb.json": {
            "get": {
                "summary": "Update Post IQDB",
                "operationId": "updatePostIqdb",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/mark_as_translated.json": {
            "put": {
                "summary": "Mark Post As Translated",
                "operationId": "markPostAsTranslated",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Will error if no body is provided.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "translation_check": {
                                        "type": "boolean"
                                    },
                                    "partially_translated": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/copy_notes.json": {
            "put": {
                "summary": "Copy Notes To Post",
                "operationId": "copyNotesToPost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "other_post_id"
                                ],
                                "properties": {
                                    "other_post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "400": {
                        "$ref": "#/components/responses/MessageError"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/posts/{id}/revert.json": {
            "put": {
                "summary": "Revert Post",
                "operationId": "revertPost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "version_id",
                        "in": "query",
                        "required": true,
                        "description": "The version ID to revert to.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/show_seq.json": {
            "get": {
                "summary": "Get Post In Sequence",
                "operationId": "getPostInSequence",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "seq",
                        "in": "query",
                        "description": "The direction to move in the sequence.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "next",
                                "prev"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/flag.json": {
            "delete": {
                "summary": "Unflag Post",
                "operationId": "unflagPost",
                "tags": [
                    "Posts"
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "approval": {
                                        "type": "string",
                                        "description": "Approves the post if set to \"approve\"."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/posts/{id}/favorites.json": {
            "get": {
                "summary": "List Post Favorites",
                "operationId": "listPostFavorites",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The maximum number of results to return. Between 1 and 100.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        }
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    }
                ],
                "description": "You must be the user or Moderator+ to see users that have their favorites hidden.",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Post"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/posts/{id}/votes.json": {
            "post": {
                "summary": "Create Post Vote",
                "operationId": "createPostVote",
                "tags": [
                    "Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "score",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/UpDownVote"
                        }
                    },
                    {
                        "name": "no_unvote",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "score",
                                        "up",
                                        "down",
                                        "our_score"
                                    ],
                                    "properties": {
                                        "score": {
                                            "type": "integer"
                                        },
                                        "up": {
                                            "type": "integer"
                                        },
                                        "down": {
                                            "type": "integer"
                                        },
                                        "our_score": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Post Vote",
                "operationId": "deletePostVote",
                "tags": [
                    "Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/posts/{id}/recommended.json": {
            "get": {
                "summary": "Get Recommended Posts",
                "operationId": "getRecommendedPosts",
                "tags": [
                    "Posts"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RecommendedPosts"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_sets.json": {
            "get": {
                "summary": "Search Post Sets",
                "operationId": "searchPostSets",
                "tags": [
                    "Post Sets"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "name",
                                "shortname",
                                "post_count",
                                "postcount",
                                "created_at",
                                "updated_at",
                                "update"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[shortname]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_public]",
                        "description": "You must be Moderator+.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[maintainer_id]",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostSet"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Post Set",
                "operationId": "createPostSet",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_set[name]",
                                    "post_set[shortname]"
                                ],
                                "properties": {
                                    "post_set[name]": {
                                        "type": "string"
                                    },
                                    "post_set[shortname]": {
                                        "type": "string"
                                    },
                                    "post_set[description]": {
                                        "type": "string"
                                    },
                                    "post_set[is_public]": {
                                        "type": "boolean"
                                    },
                                    "post_set[ransfer_on_delete]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostSet"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_sets/{id}.json": {
            "get": {
                "summary": "Get Post Set",
                "operationId": "getPostSet",
                "tags": [
                    "Post Sets"
                ],
                "description": "You must be Moderator+ if the set is not public.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostSet"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Post Set",
                "operationId": "editPostSet",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "post_set[name]": {
                                        "type": "string"
                                    },
                                    "post_set[shortname]": {
                                        "type": "string"
                                    },
                                    "post_set[description]": {
                                        "type": "string"
                                    },
                                    "post_set[is_public]": {
                                        "type": "boolean"
                                    },
                                    "post_set[transfer_on_delete]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Post Set",
                "operationId": "deletePostSet",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_sets/{id}/update_posts.json": {
            "post": {
                "summary": "Update Post Set Posts",
                "operationId": "updatePostSetPosts",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, a maintainer (if public), or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_set[post_ids_string]"
                                ],
                                "properties": {
                                    "post_set[post_ids_string]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostSet"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_sets/{id}/add_posts.json": {
            "post": {
                "summary": "Add Posts To Post Set",
                "operationId": "addPostsToPostSet",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, a maintainer (if public), or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_ids"
                                ],
                                "properties": {
                                    "post_ids": {
                                        "type": "array",
                                        "description": "post_ids[]=1&post_ids[]=2",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostSet"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_sets/{id}/remove_posts.json": {
            "post": {
                "summary": "Remove Posts From Post Set",
                "operationId": "removePostsFromPostSet",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, a maintainer (if public), or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_ids"
                                ],
                                "properties": {
                                    "post_ids": {
                                        "type": "array",
                                        "description": "post_ids[]=1&post_ids[]=2",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostSet"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_sets/for_select.json": {
            "get": {
                "summary": "List Post Sets For Select",
                "operationId": "listPostSetsForSelect",
                "tags": [
                    "Post Sets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the owner of the set, a maintainer (if public), or Admin+.",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "Owned": {
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "type": "integer"
                                                    }
                                                ],
                                                "example": [
                                                    [
                                                        "my_set",
                                                        1
                                                    ]
                                                ]
                                            }
                                        },
                                        "Maintained": {
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "type": "string"
                                                    },
                                                    {
                                                        "type": "integer"
                                                    }
                                                ],
                                                "example": [
                                                    [
                                                        "my_set",
                                                        1
                                                    ]
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_approvals.json": {
            "get": {
                "summary": "Search Post Approvals",
                "operationId": "searchPostApprovals",
                "tags": [
                    "Post Approvals"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "name": "search[post_tags_match]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[user_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[post_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostApproval"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/post_events.json": {
            "get": {
                "summary": "Search Post Events",
                "operationId": "searchPostEvents",
                "tags": [
                    "Post Events"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[action]",
                        "schema": {
                            "$ref": "#/components/schemas/PostEventActions"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post_events"
                                    ],
                                    "properties": {
                                        "post_events": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PostEvent"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/post_flags.json": {
            "get": {
                "summary": "Search Post Flags",
                "operationId": "searchPostFlags",
                "tags": [
                    "Post Flags"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[reason_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_tags_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[type]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_resolved]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostFlag"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Post Flag",
                "operationId": "createPostFlag",
                "tags": [
                    "Post Flags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Will error if post_id is not provided.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_flag[post_id]",
                                    "post_flag[reason_name]"
                                ],
                                "properties": {
                                    "post_flag[post_id]": {
                                        "type": "integer"
                                    },
                                    "post_flag[reason_name]": {
                                        "type": "string",
                                        "enum": [
                                            "uploading_guidelines",
                                            "young_human",
                                            "dnp_artist",
                                            "pay_content",
                                            "trace",
                                            "previously_deleted",
                                            "real_porn",
                                            "corrupt",
                                            "inferior"
                                        ]
                                    },
                                    "post_flag[parent_id]": {
                                        "type": "integer"
                                    },
                                    "post_flag[note]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostFlag"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_flags/{id}.json": {
            "get": {
                "summary": "Get Post Flag",
                "operationId": "getPostFlag",
                "tags": [
                    "Post Flags"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostFlag"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_flags/{id}/clear_note.json": {
            "post": {
                "summary": "Clear Post Flag Note",
                "operationId": "clearPostFlagNote",
                "tags": [
                    "Post Flags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostFlag"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_replacements.json": {
            "get": {
                "summary": "Search Post Replacements",
                "operationId": "searchPostReplacements",
                "tags": [
                    "Post Replacements"
                ],
                "description": "Rejected replacements can only be seen by staff.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[file_ext]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[md5]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[uploader_name_on_approve]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[uploader_id_on_approve]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "description": "Allows a comma separated list of up to 100 post IDs.\n",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[penalized]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[source]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[file_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostReplacement"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Post Replacement",
                "operationId": "createPostReplacement",
                "tags": [
                    "Post Replacements"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_replacement[reason]"
                                ],
                                "properties": {
                                    "post_replacement[replacement_file]": {
                                        "type": "string",
                                        "format": "binary",
                                        "description": "Mutually exclusive with replacement_url."
                                    },
                                    "post_replacement[replacement_url]": {
                                        "type": "string",
                                        "description": "Mutually exclusive with replacement_file."
                                    },
                                    "post_replacement[reason]": {
                                        "type": "string"
                                    },
                                    "post_replacement[source]": {
                                        "type": "string"
                                    },
                                    "post_replacement[as_pending]": {
                                        "type": "boolean",
                                        "description": "You must be Janitor+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "success",
                                        "location"
                                    ],
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "enum": [
                                                true
                                            ]
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "/posts/1"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "412": {
                        "$ref": "#/components/responses/MessageError"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_replacements/{id}.json": {
            "delete": {
                "summary": "Delete Post Replacement",
                "operationId": "deletePostReplacement",
                "tags": [
                    "Post Replacements"
                ],
                "description": "You must be Admin+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_replacements/{id}/approve.json": {
            "put": {
                "summary": "Approve Post Replacement",
                "operationId": "approvePostReplacement",
                "tags": [
                    "Post Replacements"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath",
                        "required": true,
                        "description": "The ID of the post flag.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_replacements/{id}/reject.json": {
            "put": {
                "summary": "Reject Post Replacement",
                "operationId": "rejectPostReplacement",
                "tags": [
                    "Post Replacements"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_replacements/{id}/promote.json": {
            "post": {
                "summary": "Promote Post Replacement",
                "operationId": "promotePostReplacement",
                "tags": [
                    "Post Replacements"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_replacements/{id}/toggle_penalize.json": {
            "put": {
                "summary": "Toggle Post Replacement Penalty",
                "operationId": "togglePostReplacementPenalty",
                "tags": [
                    "Post Replacements"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_versions.json": {
            "get": {
                "summary": "Search Post Versions",
                "operationId": "searchPostVersions",
                "tags": [
                    "Post Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The page number of results to get. Between 1 and 750. Note that for post versions specifically, you can only go through the 10,000 most recent results with page numbers.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 750
                        }
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[start_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[rating]",
                        "schema": {
                            "$ref": "#/components/schemas/Ratings"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[rating_changed]",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "e",
                                "q",
                                "s",
                                "any"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[parent_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[parent_id_changed]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[tags]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[tags_removed]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[tags_added]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[locked_tags]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[locked_tags_removed]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[locked_tags_added]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[description]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[description_changed]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[source_changed]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[uploads]",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "included",
                                "excluded",
                                "only"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/post_versions/{id}/hide.json": {
            "put": {
                "summary": "Hide Post Version",
                "operationId": "hidePostVersion",
                "tags": [
                    "Post Versions"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_versions/{id}/unhide.json": {
            "put": {
                "summary": "Unhide Post Version",
                "operationId": "unhidePostVersion",
                "tags": [
                    "Post Versions"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_versions/{id}/undo.json": {
            "put": {
                "summary": "Undo Post Version",
                "operationId": "undoPostVersion",
                "tags": [
                    "Post Versions"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/post_votes.json": {
            "get": {
                "summary": "Search Post Votes",
                "operationId": "searchPostVotes",
                "tags": [
                    "Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "description": "The order of the results. You must be Admin+.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "ip_addr"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[user_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[user_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_creator_name]",
                        "description": "Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_creator_id]",
                        "description": "Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[user_ip_addr]",
                        "description": "You must be Admin+. Only usable if one of `post_id`, `user_name`, or `user_id` is also provided. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[score]",
                        "description": "Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.",
                        "schema": {
                            "$ref": "#/components/schemas/UpDownVote"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[duplicates_only]",
                        "description": "You must be Admin+. Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostVote"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/post_votes/lock.json": {
            "post": {
                "summary": "Lock Post Votes",
                "operationId": "lockPostVotes",
                "tags": [
                    "Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+. Errors if ids is not provided.",
                "parameters": [
                    {
                        "name": "ids",
                        "in": "query",
                        "required": true,
                        "description": "The IDs of the post votes, comma separated.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/post_votes/delete.json": {
            "post": {
                "summary": "Delete Post Vote",
                "operationId": "deletePostVotes",
                "tags": [
                    "Post Votes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+. Errors if ids is not provided.",
                "parameters": [
                    {
                        "name": "ids",
                        "in": "query",
                        "required": true,
                        "description": "The IDs of the post votes, comma separated.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/tags.json": {
            "get": {
                "summary": "Search Tags",
                "operationId": "searchTags",
                "tags": [
                    "Tags"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "name",
                                "date",
                                "count",
                                "similarity"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[fuzzy_name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[category]",
                        "schema": {
                            "$ref": "#/components/schemas/TagCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[hide_empty]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[has_wiki]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[has_artist]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Tag"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/tags/{id}.json": {
            "get": {
                "summary": "Get Tag",
                "operationId": "getTag",
                "tags": [
                    "Tags"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Tag"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Tag",
                "operationId": "editTag",
                "tags": [
                    "Tags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must be Admin+ if the tag is locked or post count is >100.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tag[category]": {
                                        "$ref": "#/components/schemas/TagCategories"
                                    },
                                    "tag[is_locked]": {
                                        "description": "Must be Admin+.",
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Tag",
                "operationId": "deleteTag",
                "tags": [
                    "Tags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "302": {
                        "description": "Failure"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tags/{id}/correction.json": {
            "get": {
                "summary": "Get Tag Correction",
                "operationId": "getTagCorrection",
                "tags": [
                    "Tags"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TagCorrection"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "post": {
                "summary": "Correct Tag",
                "operationId": "correctTag",
                "tags": [
                    "Tags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+. `commit=Fix` must be set.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "commit"
                                ],
                                "properties": {
                                    "commit": {
                                        "type": "string",
                                        "enum": [
                                            "Fix"
                                        ],
                                        "description": "If not set, nothing will happen."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tags/preview.json": {
            "post": {
                "summary": "Preview Tags",
                "operationId": "previewTags",
                "tags": [
                    "Tags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "tags"
                                ],
                                "properties": {
                                    "tags": {
                                        "type": "string",
                                        "description": "The tags to preview, space separated."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/TagPreview"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/tag_type_versions.json": {
            "get": {
                "summary": "Search Tag Type Versions",
                "operationId": "searchTagTypeVersions",
                "tags": [
                    "Tag Type Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[tag]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/TagTypeVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/tag_aliases.json": {
            "get": {
                "summary": "Search Tag Aliases",
                "operationId": "searchTagAliases",
                "tags": [
                    "Tag Aliases"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "created_at",
                                "updated_at",
                                "name",
                                "tag_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[antecedent_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[consequent_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "$ref": "#/components/schemas/TagRequestStatuses"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[antecedent_tag_category]",
                        "schema": {
                            "$ref": "#/components/schemas/TagCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[consequent_tag_category]",
                        "schema": {
                            "$ref": "#/components/schemas/TagCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/TagAlias"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/tag_aliases/{id}.json": {
            "get": {
                "summary": "Get Tag Alias",
                "operationId": "getTagAlias",
                "tags": [
                    "Tag Aliases"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TagAlias"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Tag Alias",
                "operationId": "editTagAlias",
                "tags": [
                    "Tag Aliases"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tag_alias[antecedent_name]": {
                                        "type": "string"
                                    },
                                    "tag_alias[consequent_name]": {
                                        "type": "string"
                                    },
                                    "tag_alias[forum_topic_id]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Reject Tag Alias",
                "operationId": "rejectTagAlias",
                "tags": [
                    "Tag Aliases"
                ],
                "description": "You must be the creator of the request (if pending), or Admin+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tag_aliases/{id}/approve.json": {
            "post": {
                "summary": "Approve Tag Alias",
                "operationId": "approveTagAlias",
                "tags": [
                    "Tag Aliases"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/tag_alias_requests.json": {
            "post": {
                "summary": "Create Tag Alias",
                "operationId": "createTagAlias",
                "tags": [
                    "Tag Aliases"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Errors will result in a 406 with no information.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "tag_alias[antecedent_name]",
                                    "tag_alias[consequent_name]",
                                    "tag_alias[reason]"
                                ],
                                "properties": {
                                    "tag_alias[antecedent_name]": {
                                        "type": "string"
                                    },
                                    "tag_alias[consequent_name]": {
                                        "type": "string"
                                    },
                                    "tag_alias[reason]": {
                                        "type": "string"
                                    },
                                    "tag_alias[skip_forum]": {
                                        "type": "boolean",
                                        "description": "Must be Admin+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "406": {
                        "description": "Failure"
                    }
                }
            }
        },
        "/tag_implications.json": {
            "get": {
                "summary": "Search Tag Implications",
                "operationId": "searchTagImplications",
                "tags": [
                    "Tag Implications"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "created_at",
                                "updated_at",
                                "name",
                                "tag_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[antecedent_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[consequent_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "$ref": "#/components/schemas/TagRequestStatuses"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[antecedent_tag_category]",
                        "schema": {
                            "$ref": "#/components/schemas/TagCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[consequent_tag_category]",
                        "schema": {
                            "$ref": "#/components/schemas/TagCategories"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[approver_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/TagImplication"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/tag_implications/{id}.json": {
            "get": {
                "summary": "Get Tag Implication",
                "operationId": "getTagImplication",
                "tags": [
                    "Tag Implications"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TagImplication"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Tag Implication",
                "operationId": "editTagImplication",
                "tags": [
                    "Tag Implications"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "tag_implication[antecedent_name]": {
                                        "type": "string"
                                    },
                                    "tag_implication[consequent_name]": {
                                        "type": "string"
                                    },
                                    "tag_implication[forum_topic_id]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Reject Tag Implication",
                "operationId": "rejectTagImplication",
                "tags": [
                    "Tag Implications"
                ],
                "description": "You must be the creator of the request (if pending), or Admin+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tag_implications/{id}/approve.json": {
            "post": {
                "summary": "Approve Tag Implication",
                "operationId": "approveTagImplication",
                "tags": [
                    "Tag Implications"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/tag_implication_requests.json": {
            "post": {
                "summary": "Create Tag Implication",
                "operationId": "createTagImplication",
                "tags": [
                    "Tag Implications"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Errors will result in a 406 with no information.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "tag_implication[antecedent_name]",
                                    "tag_implication[consequent_name]",
                                    "tag_implication[reason]"
                                ],
                                "properties": {
                                    "tag_implication[antecedent_name]": {
                                        "type": "string"
                                    },
                                    "tag_implication[consequent_name]": {
                                        "type": "string"
                                    },
                                    "tag_implication[reason]": {
                                        "type": "string"
                                    },
                                    "tag_implication[skip_forum]": {
                                        "type": "boolean",
                                        "description": "Must be Admin+."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "406": {
                        "description": "Failure"
                    }
                }
            }
        },
        "/related_tag/bulk.json": {
            "post": {
                "summary": "List Bulk Related Tags",
                "operationId": "listBulkRelatedTags",
                "tags": [
                    "Related Tags"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "query": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "$ref": "#/components/schemas/TagCategories"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BulkRelatedTag",
                                    "example": [
                                        {
                                            "male": [
                                                {
                                                    "name": "male",
                                                    "count": 0,
                                                    "category_id": 0
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/search_trends.json": {
            "get": {
                "summary": "List Search Trends",
                "operationId": "listSearchTrends",
                "tags": [
                    "Search Trends"
                ],
                "parameters": [
                    {
                        "in": "query",
                        "name": "day",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/SearchTrend"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/search_trends/rising.json": {
            "get": {
                "summary": "List Rising Search Trends",
                "operationId": "listRisingSearchTrends",
                "tags": [
                    "Search Trends"
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/RisingSearchTrend"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/search_trends/clear_cache.json": {
            "post": {
                "summary": "Clear Search Trends Cache",
                "operationId": "clearSearchTrendsCache",
                "tags": [
                    "Search Trends"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/MessageSuccess"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/search_trends/update_settings.json": {
            "post": {
                "summary": "Update Search Trends Settings",
                "operationId": "updateSearchTrendsSettings",
                "tags": [
                    "Search Trends"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "trends_enabled": {
                                        "type": "boolean"
                                    },
                                    "trends_displayed": {
                                        "type": "boolean"
                                    },
                                    "trends_min_today": {
                                        "type": "integer"
                                    },
                                    "trends_min_dleta": {
                                        "type": "integer"
                                    },
                                    "trends_min_ratio": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "trends_ip_limit": {
                                        "type": "integer"
                                    },
                                    "trends_ip_window": {
                                        "type": "integer"
                                    },
                                    "trends_tag_limit": {
                                        "type": "integer"
                                    },
                                    "trends_tag_window": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/MessageSuccess"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/search_trend_blacklists.json": {
            "get": {
                "summary": "Search Search Trend Blacklists",
                "operationId": "searchSearchTrendBlacklists",
                "tags": [
                    "Search Trend Blacklists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "tag",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "reason",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/SearchTrendBlacklist"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            },
            "post": {
                "summary": "Create Search Trend Blacklist",
                "operationId": "createSearchTrendBlacklist",
                "tags": [
                    "Search Trend Blacklists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "tag",
                                    "reason"
                                ],
                                "properties": {
                                    "tag": {
                                        "type": "string"
                                    },
                                    "reason": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchTrendBlacklist"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/search_trend_blacklists/{id}.json": {
            "delete": {
                "summary": "Delete Search Trend Blacklist",
                "operationId": "deleteSearchTrendBlacklist",
                "tags": [
                    "Search Trend Blacklists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/search_trend_blacklists/{id}/purge.json": {
            "delete": {
                "summary": "Purge Search Trend Blacklist",
                "operationId": "purgeSearchTrendBlacklist",
                "tags": [
                    "Search Trend Blacklists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "deleted_count"
                                    ],
                                    "properties": {
                                        "deleted_count": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/session.json": {
            "post": {
                "summary": "Login",
                "operationId": "login",
                "tags": [
                    "Sessions"
                ],
                "security": [
                    {
                        "csrfToken": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "authenticity_token",
                                    "session[name]",
                                    "session[password]"
                                ],
                                "properties": {
                                    "authenticity_token": {
                                        "type": "string",
                                        "description": "CSRF Token"
                                    },
                                    "session[url]": {
                                        "type": "string",
                                        "description": "Optional relative URL to redirect to after login, defaults to `/posts`."
                                    },
                                    "session[name]": {
                                        "type": "string"
                                    },
                                    "session[password]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success",
                        "headers": {
                            "Set-Cookie": {
                                "description": "The session cookie.",
                                "schema": {
                                    "type": "string",
                                    "example": "_danbooru_session=(...); path=/; secure; httponly; samesite=lax"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "406": {
                        "description": "Failure"
                    }
                }
            }
        },
        "/staff_notes.json": {
            "get": {
                "summary": "Search Staff Notes",
                "operationId": "searchStaffNotes",
                "tags": [
                    "Staff Notes"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "name": "search[creator_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[creator_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[updater_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[updater_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "search[user_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[body_matches]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search[without_system_user]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "search[include_deleted]",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/StaffNote"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Staff Note",
                "operationId": "createStaffNote",
                "tags": [
                    "Staff Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "staff_note[body]"
                                ],
                                "properties": {
                                    "staff_note[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StaffNote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/staff_notes/{id}.json": {
            "get": {
                "summary": "Get Staff Note",
                "operationId": "getStaffNote",
                "tags": [
                    "Staff Notes"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StaffNote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Staff Note",
                "operationId": "editStaffNote",
                "tags": [
                    "Staff Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "staff_note[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StaffNote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/staff_notes/{id}/delete.json": {
            "put": {
                "summary": "Delete Staff Note",
                "operationId": "deleteStaffNote",
                "tags": [
                    "Staff Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Admin+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StaffNote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/staff_notes/{id}/undelete.json": {
            "put": {
                "summary": "Undelete Staff Note",
                "operationId": "undeleteStaffNote",
                "tags": [
                    "Staff Notes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator or Admin+.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StaffNote"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/takedowns.json": {
            "get": {
                "summary": "Search Takedowns",
                "operationId": "searchTakedowns",
                "tags": [
                    "Takedowns"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[order]",
                        "schema": {
                            "type": "string",
                            "description": "Must Admin+ to use.",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "status",
                                "post_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[source]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason_hidden]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[instructions]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "description": "Must be Moderator+ to use.",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "description": "Must be Moderator+ to use.",
                        "name": "search[notes]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_logged_in]",
                        "description": "Must be Moderator+ to use.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "description": "Must be Admin+ to use.",
                        "name": "search[email]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[vericode]",
                        "description": "Must be Admin+ to use.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Takedown"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Takedown",
                "operationId": "createTakedown",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "takedown[email]",
                                    "takedown[reason]"
                                ],
                                "properties": {
                                    "takedown[email]": {
                                        "type": "string"
                                    },
                                    "takedown[source]": {
                                        "type": "string"
                                    },
                                    "takedown[instructions]": {
                                        "type": "string"
                                    },
                                    "takedown[reason]": {
                                        "type": "string"
                                    },
                                    "takedown[post_ids]": {
                                        "type": "array",
                                        "description": "takedown[post_ids][]=1&takedown[post_ids][]=2",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "takedown[reason_hidden]": {
                                        "type": "boolean"
                                    },
                                    "takedown[notes]": {
                                        "type": "string",
                                        "description": "Must have the bd staff user flag to use."
                                    },
                                    "takedown[del_post_ids]": {
                                        "type": "array",
                                        "description": "Must have the bd staff user flag to use.\ntakedown[del_post_ids][]=1&takedown[del_post_ids][]=2\n",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "takedown[status]": {
                                        "type": "string",
                                        "description": "Must have the bd staff user flag to use."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Takedown"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/takedowns/{id}.json": {
            "get": {
                "summary": "Get Takedown",
                "operationId": "getTakedown",
                "tags": [
                    "Takedowns"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Takedown"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Takedown",
                "operationId": "editTakedown",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "takedown[notes]": {
                                        "type": "string"
                                    },
                                    "takedown[reason_hidden]": {
                                        "type": "boolean"
                                    },
                                    "takedown_posts": {
                                        "type": "string"
                                    },
                                    "process_takedown": {
                                        "type": "boolean",
                                        "description": "If not truthy, the takedown will be denied."
                                    },
                                    "delete_reason": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Takedown",
                "operationId": "deleteTakedown",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/takedowns/{id}/add_by_ids.json": {
            "post": {
                "summary": "Add Posts To Takedown By IDs",
                "operationId": "addPostsToTakedownByIds",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_ids"
                                ],
                                "properties": {
                                    "post_ids": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "added_count",
                                        "added_post_ids"
                                    ],
                                    "properties": {
                                        "added_count": {
                                            "type": "integer"
                                        },
                                        "added_post_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/takedowns/{id}/add_by_tags.json": {
            "post": {
                "summary": "Add Posts To Takedown By Tags",
                "operationId": "addPostsToTakedownByTags",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_tags"
                                ],
                                "properties": {
                                    "post_tags": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "added_count",
                                        "added_post_ids"
                                    ],
                                    "properties": {
                                        "added_count": {
                                            "type": "integer"
                                        },
                                        "added_post_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/takedowns/{id}/count_matching_posts.json": {
            "post": {
                "summary": "Count Matching Posts",
                "operationId": "countMatchingPosts",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_tags"
                                ],
                                "properties": {
                                    "post_tags": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "matched_post_count"
                                    ],
                                    "properties": {
                                        "matched_post_count": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/takedowns/{id}/remove_by_ids.json": {
            "post": {
                "summary": "Remove Posts From Takedown By IDs",
                "operationId": "removePostsFromTakedownByIds",
                "tags": [
                    "Takedowns"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_ids"
                                ],
                                "properties": {
                                    "post_ids": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tickets.json": {
            "get": {
                "summary": "Search Tickets",
                "operationId": "searchTickets",
                "tags": [
                    "Tickets"
                ],
                "description": "You must be Janitor+ to see tickets you did not create.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "description": "You must be Janitor+ unless providing your own id.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[claimant_name]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[claimant_id]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[accused_name]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[accused_id]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[disp_id]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[qtype]",
                        "schema": {
                            "$ref": "#/components/schemas/TicketTypes"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "partial",
                                "approved",
                                "pending_claimed",
                                "pending_unclaimed"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Ticket"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/tickets/{id}.json": {
            "get": {
                "summary": "Get Ticket",
                "operationId": "getTicket",
                "tags": [
                    "Tickets"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+ to see tickets you did not create.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ticket"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Ticket",
                "operationId": "editTicket",
                "tags": [
                    "Tickets"
                ],
                "description": "You must be Moderator+.",
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "ticket[response]"
                                ],
                                "properties": {
                                    "ticket[status]": {
                                        "type": "string",
                                        "enum": [
                                            "partial",
                                            "approved"
                                        ]
                                    },
                                    "ticket[response]": {
                                        "type": "string"
                                    },
                                    "ticket[record_type]": {
                                        "$ref": "#/components/schemas/WarningTypes"
                                    },
                                    "ticket[send_update_dmail]": {
                                        "type": "boolean",
                                        "description": "An update dmail will always be sent when the status is changed."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tickets/{id}/claim.json": {
            "post": {
                "summary": "Claim Ticket",
                "operationId": "claimTicket",
                "tags": [
                    "Tickets"
                ],
                "description": "You must be Moderator+. Errors are quietly swallowed and shown as notices in html.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ticket"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/tickets/{id}/unclaim.json": {
            "post": {
                "summary": "Unclaim Ticket",
                "operationId": "unclaimTicket",
                "tags": [
                    "Tickets"
                ],
                "description": "You must be Moderator+. Errors are quietly swallowed and shown as notices in html.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Ticket"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/uploads.json": {
            "get": {
                "summary": "Search Uploads",
                "operationId": "searchUploads",
                "tags": [
                    "Uploads"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[uploader_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[uploader_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[source]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[source_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[rating]",
                        "schema": {
                            "$ref": "#/components/schemas/Ratings"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[parent_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[has_post]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_tags_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[status]",
                        "schema": {
                            "type": "string",
                            "description": "Note: The \"error\" status will be proceeded by an error, ex: \"error: RuntimeError - No file or source URL provided\"\n",
                            "enum": [
                                "completed",
                                "processing",
                                "pending",
                                "error"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[backtrace]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[tag_string]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Upload"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Upload Post",
                "operationId": "uploadPost",
                "tags": [
                    "Uploads",
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "upload[tag_string]",
                                    "upload[rating]"
                                ],
                                "properties": {
                                    "upload[file]": {
                                        "type": "string",
                                        "format": "binary",
                                        "description": "Mutually exclusive with direct_url."
                                    },
                                    "upload[direct_url]": {
                                        "type": "string",
                                        "description": "Mutually exclusive with file."
                                    },
                                    "upload[source]": {
                                        "type": "string"
                                    },
                                    "upload[tag_string]": {
                                        "type": "string"
                                    },
                                    "upload[rating]": {
                                        "$ref": "#/components/schemas/Ratings"
                                    },
                                    "upload[parent_id]": {
                                        "type": "integer"
                                    },
                                    "upload[description]": {
                                        "type": "string"
                                    },
                                    "upload[as_pending]": {
                                        "type": "boolean",
                                        "description": "Must have the \"Unrestricted Uploads\" permission."
                                    },
                                    "upload[locked_rating]": {
                                        "type": "boolean",
                                        "description": "Must be Privileged+ to use."
                                    },
                                    "upload[locked_tags]": {
                                        "type": "string",
                                        "description": "Must be Admin+ to use."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "success",
                                        "location",
                                        "post_id"
                                    ],
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "enum": [
                                                true
                                            ]
                                        },
                                        "location": {
                                            "type": "string"
                                        },
                                        "post_id": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "412": {
                        "$ref": "#/components/responses/MessageError"
                    }
                }
            }
        },
        "/uploads/{id}.json": {
            "get": {
                "summary": "Get Upload",
                "operationId": "getUpload",
                "tags": [
                    "Uploads"
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Upload"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/upload_whitelists.json": {
            "get": {
                "summary": "Search Upload Whitelists",
                "operationId": "searchUploadWhitelists",
                "tags": [
                    "Upload Whitelists"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "domain",
                                "path",
                                "updated_at",
                                "created_at"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[domain]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[path]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[note]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/UploadWhitelist"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Upload Whitelist",
                "operationId": "createUploadWhitelist",
                "tags": [
                    "Upload Whitelists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "upload_whitelist[allowed]",
                                    "upload_whitelist[domain]",
                                    "upload_whitelist[path]"
                                ],
                                "properties": {
                                    "upload_whitelist[allowed]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[domain]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[path]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[reason]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[note]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[hidden]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UploadWhitelist"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/upload_whitelists/{id}.json": {
            "patch": {
                "summary": "Edit Upload Whitelist",
                "operationId": "editUploadWhitelist",
                "tags": [
                    "Upload Whitelists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "upload_whitelist[allowed]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[pattern]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[reason]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[note]": {
                                        "type": "string"
                                    },
                                    "upload_whitelist[hidden]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Upload Whitelist",
                "operationId": "deleteUploadWhitelist",
                "tags": [
                    "Upload Whitelists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/upload_whitelists/is_allowed.json": {
            "get": {
                "summary": "Check If URL Is Allowed",
                "operationId": "checkIfUrlIsAllowed",
                "tags": [
                    "Upload Whitelists"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "name": "url",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "url",
                                        "domain",
                                        "is_allowed",
                                        "reason"
                                    ],
                                    "properties": {
                                        "url": {
                                            "type": "string"
                                        },
                                        "domain": {
                                            "type": "string"
                                        },
                                        "is_allowed": {
                                            "type": "boolean"
                                        },
                                        "reason": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/users.json": {
            "get": {
                "summary": "Search Users",
                "operationId": "searchUsers",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "name",
                                "post_upload_count",
                                "note_count",
                                "post_update_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[name_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[about_me]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[avatar_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[level]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[min_level]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[max_level]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[can_upload_free]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[can_approve_posts]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[email_matches]",
                        "description": "You must be Admin+.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "oneOf": [
                                            {
                                                "$ref": "#/components/schemas/User"
                                            },
                                            {
                                                "$ref": "#/components/schemas/FullCurrentUser"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/me.json": {
            "get": {
                "summary": "Get Current User",
                "operationId": "getMe",
                "description": "This will return the default settings for anonymous users if no authentication is used.\nThis most interesting part is probably the default blacklist, located in `blacklisted_tags`.\n",
                "tags": [
                    "Users"
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FullCurrentUser"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/avatar_menu.json": {
            "get": {
                "summary": "Get Avatar Menu",
                "operationId": "getAvatarMenu",
                "tags": [
                    "Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserAvatarMenu"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/users/{idOrName}.json": {
            "get": {
                "summary": "Get User",
                "operationId": "getUser",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/UserResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Current User",
                "operationId": "editCurrentUser",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user[comment_threshold]": {
                                        "type": "integer"
                                    },
                                    "user[default_image_size]": {
                                        "type": "string",
                                        "enum": [
                                            "large",
                                            "fit",
                                            "fitv",
                                            "original"
                                        ]
                                    },
                                    "user[favorite_tags]": {
                                        "type": "string"
                                    },
                                    "user[blacklisted_tags]": {
                                        "type": "string"
                                    },
                                    "user[time_zone]": {
                                        "type": "string",
                                        "description": "https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
                                    },
                                    "user[per_page]": {
                                        "type": "integer"
                                    },
                                    "user[custom_style]": {
                                        "type": "string"
                                    },
                                    "user[description_collapsed_initially]": {
                                        "type": "boolean"
                                    },
                                    "user[hide_comments]": {
                                        "type": "boolean"
                                    },
                                    "user[receive_email_notifications]": {
                                        "type": "boolean"
                                    },
                                    "user[enable_keyboard_navigation]": {
                                        "type": "boolean"
                                    },
                                    "user[enable_privacy_mode]": {
                                        "type": "boolean"
                                    },
                                    "user[disable_user_dmails]": {
                                        "type": "boolean"
                                    },
                                    "user[blacklist_users]": {
                                        "type": "boolean"
                                    },
                                    "user[show_post_statistics]": {
                                        "type": "boolean"
                                    },
                                    "user[style_usernames]": {
                                        "type": "boolean"
                                    },
                                    "user[show_hidden_comments]": {
                                        "type": "boolean"
                                    },
                                    "user[enable_autocomplete]": {
                                        "type": "boolean"
                                    },
                                    "user[disable_cropped_thumbnails]": {
                                        "type": "boolean"
                                    },
                                    "user[enable_safe_mode]": {
                                        "type": "boolean"
                                    },
                                    "user[disable_responsive_mode]": {
                                        "type": "boolean"
                                    },
                                    "user[dmail_filter_attributes][id]": {
                                        "type": "integer"
                                    },
                                    "user[dmail_filter_attributes][words]": {
                                        "type": "string"
                                    },
                                    "user[profile_about]": {
                                        "type": "string"
                                    },
                                    "user[profile_artinfo]": {
                                        "type": "string"
                                    },
                                    "user[avatar_id]": {
                                        "type": "integer"
                                    },
                                    "user[enable_compact_uploader]": {
                                        "type": "boolean",
                                        "description": "You must have uploaded at least 10 posts."
                                    },
                                    "user[forum_notification_dot]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/users/{idOrName}/upload_limit.json": {
            "get": {
                "summary": "Get User Upload Limit",
                "operationId": "getUserUploadLimit",
                "tags": [
                    "Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/UserResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/users/{idOrName}/flush_favorites.json": {
            "post": {
                "summary": "Clear User Favorites",
                "operationId": "clearUserFavorites",
                "tags": [
                    "Users"
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/users/{idOrName}/fix_counts.json": {
            "get": {
                "summary": "Staff Fix User Counts",
                "operationId": "staffFixUserCounts",
                "tags": [
                    "Users"
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/users/{idOrName}/toggle_uploads.json": {
            "get": {
                "summary": "Toggle User Uploads",
                "operationId": "toggleUserUploads",
                "tags": [
                    "Users"
                ],
                "description": "You must be Janitor+.\nThis endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.\n",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/users/{idOrName}/disable_uploads.json": {
            "post": {
                "summary": "Disable User Uploads",
                "operationId": "disableUserUploads",
                "tags": [
                    "Users"
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idOrNamePath"
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "staff_note[body]"
                                ],
                                "properties": {
                                    "staff_note[body]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Redirect\nSuccess should be determined based on the html, any errors will be present in an alert.\n"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/users/{user_id}/dmails.json": {
            "get": {
                "summary": "Audit User DMails",
                "operationId": "auditUserDMails",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd auditor user flag.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "name": "user_id",
                        "in": "path",
                        "required": true,
                        "description": "The ID of the user.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/DMail"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/users/{user_id}/dmails/{id}.json": {
            "get": {
                "summary": "Audit User DMail",
                "operationId": "auditUserDMail",
                "tags": [
                    "DMails"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "Must have the bd auditor user flag.",
                "parameters": [
                    {
                        "name": "user_id",
                        "in": "path",
                        "required": true,
                        "description": "The ID of the user.",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DMail"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/maintenance/user/count_fixes.json": {
            "post": {
                "summary": "Fix User Counts",
                "operationId": "fixUserCounts",
                "tags": [
                    "Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/maintenance/user/dmail_filter.json": {
            "patch": {
                "summary": "Update User Dmail Filter",
                "operationId": "updateUserDmailFilter",
                "tags": [
                    "DMails"
                ],
                "parameters": [
                    {
                        "name": "dmail_id",
                        "in": "query",
                        "required": true,
                        "description": "Due to the odd way this route works, a dmail is REQUIRED to edit your dmail filter. You must be the owner of the dmail.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "dmail_filter[words]"
                                ],
                                "properties": {
                                    "dmail_filter[words]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/user_feedbacks.json": {
            "get": {
                "summary": "Search User Feedbacks",
                "operationId": "searchUserFeedbacks",
                "tags": [
                    "User Feedbacks"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[deleted]",
                        "description": "You must be Janitor+.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "included",
                                "excluded",
                                "only"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[user_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[user_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[category]",
                        "schema": {
                            "$ref": "#/components/schemas/FeedbackCategories"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/UserFeedback"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create User Feedback",
                "operationId": "createUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "user_feedback[body]",
                                    "user_feedback[category]"
                                ],
                                "properties": {
                                    "user_feedback[user_id]": {
                                        "type": "integer"
                                    },
                                    "user_feedback[user_name]": {
                                        "type": "string"
                                    },
                                    "user_feedback[body]": {
                                        "type": "string"
                                    },
                                    "user_feedback[category]": {
                                        "$ref": "#/components/schemas/FeedbackCategories"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserFeedback"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/user_feedbacks/{id}.json": {
            "get": {
                "summary": "Get User Feedback",
                "operationId": "getUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "description": "You must be Janitor+ if the feedback is deleted.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserFeedback"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit User Feedback",
                "operationId": "editUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user_feedback[body]": {
                                        "type": "string"
                                    },
                                    "user_feedback[category]": {
                                        "$ref": "#/components/schemas/FeedbackCategories"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Destroy User Feedback",
                "operationId": "destroyUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+, or the creator and Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/user_feedbacks/{id}/delete.json": {
            "put": {
                "summary": "Delete User Feedback",
                "operationId": "deleteUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/user_feedbacks/{id}/undelete.json": {
            "put": {
                "summary": "Undelete User Feedback",
                "operationId": "undeleteUserFeedback",
                "tags": [
                    "User Feedbacks"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/user_name_change_requests.json": {
            "get": {
                "summary": "Search User Name Change Requests",
                "operationId": "searchUserNameChangeRequests",
                "tags": [
                    "User Name Change Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[current_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[current_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[original_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[desired_name]",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/UserNameChangeRequest"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create User Name Change Request",
                "operationId": "createUserNameChangeRequest",
                "tags": [
                    "User Name Change Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "user_name_change_request[desired_name]"
                                ],
                                "properties": {
                                    "user_name_change_request[desired_name]": {
                                        "type": "string"
                                    },
                                    "user_name_change_request[change_reason]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/user_name_change_requests/{id}.json": {
            "get": {
                "summary": "Get User Name Change Request",
                "operationId": "getUserNameChangeRequest",
                "tags": [
                    "User Name Change Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be the creator of the request or Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserNameChangeRequest"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "delete": {
                "summary": "Delete User Name Change Request",
                "operationId": "deleteUserNameChangeRequest",
                "tags": [
                    "User Name Change Requests"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Moderator+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    }
                }
            }
        },
        "/wiki_pages.json": {
            "get": {
                "summary": "Search Wiki Pages",
                "operationId": "searchWikiPages",
                "tags": [
                    "Wiki Pages"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "title",
                                "post_count"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[title]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[title_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body_matches]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[other_names_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[parent]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[other_names_present]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_locked]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_deleted]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/WikiPage"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Wiki Page",
                "operationId": "createWikiPage",
                "tags": [
                    "Wiki Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "wiki_page[title]",
                                    "wiki_page[body]"
                                ],
                                "properties": {
                                    "wiki_page[title]": {
                                        "type": "string"
                                    },
                                    "wiki_page[body]": {
                                        "type": "string"
                                    },
                                    "wiki_page[edit_reason]": {
                                        "type": "string"
                                    },
                                    "wiki_page[parent]": {
                                        "type": "string",
                                        "description": "Must be Privileged+ to use."
                                    },
                                    "wiki_page[is_locked]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[is_deleted]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[skip_secondary_validations]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WikiPage"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/wiki_pages/{id}.json": {
            "get": {
                "summary": "Get Wiki Page",
                "operationId": "getWikiPage",
                "tags": [
                    "Wiki Pages"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "oneOf": [
                                {
                                    "type": "integer"
                                },
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "description": "An ID that can be either an integer or a name."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WikiPage"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "patch": {
                "summary": "Edit Wiki Page",
                "operationId": "editWikiPage",
                "tags": [
                    "Wiki Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+ if the wiki page is locked.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath",
                        "required": true,
                        "description": "The ID of the wiki page.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "wiki_page[body]": {
                                        "type": "string"
                                    },
                                    "wiki_page[edit_reason]": {
                                        "type": "string"
                                    },
                                    "wiki_page[parent]": {
                                        "type": "string",
                                        "description": "Must be Privileged+ to use."
                                    },
                                    "wiki_page[title]": {
                                        "type": "string",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[is_locked]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[is_deleted]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[skip_secondary_validations]": {
                                        "type": "boolean",
                                        "description": "Must be Janitor+ to use."
                                    },
                                    "wiki_page[category_id]": {
                                        "$ref": "#/components/schemas/TagCategories"
                                    },
                                    "wiki_page[category_is_locked]": {
                                        "type": "boolean",
                                        "description": "Must be Admin+ to use."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            },
            "delete": {
                "summary": "Delete Wiki Page",
                "operationId": "deleteWikiPage",
                "tags": [
                    "Wiki Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/wiki_pages/{id}/revert.json": {
            "put": {
                "summary": "Revert Wiki Page",
                "operationId": "revertWikiPage",
                "tags": [
                    "Wiki Pages"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    },
                    {
                        "name": "version_id",
                        "in": "query",
                        "required": true,
                        "description": "The version ID to revert to.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/wiki_page_versions.json": {
            "get": {
                "summary": "Search Wiki Page Versions",
                "operationId": "searchWikiPageVersions",
                "tags": [
                    "Wiki Page Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "$ref": "#/components/parameters/ipAddrQuery"
                    },
                    {
                        "$ref": "#/components/parameters/orderQuery"
                    },
                    {
                        "in": "query",
                        "name": "search[updater_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[updater_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[wiki_page_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[title]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[body]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_locked]",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[is_deleted]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/WikiPageVersion"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/wiki_page_versions/{id}.json": {
            "get": {
                "summary": "Get Wiki Page Version",
                "operationId": "getWikiPageVersion",
                "tags": [
                    "Wiki Page Versions"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WikiPageVersion"
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/admin/users/alt_list.json": {
            "get": {
                "summary": "Get Alt List",
                "operationId": "getAltList",
                "tags": [
                    "Admin Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+.",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The page number of results to get. Between 1 and 9999.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9999
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "oneOf": [
                                            {
                                                "type": "integer",
                                                "description": "ID of concerned user."
                                            },
                                            {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer",
                                                    "description": "ID of suspected alt."
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/admin/users/{id}.json": {
            "patch": {
                "summary": "Admin Edit User",
                "operationId": "adminEditUser",
                "tags": [
                    "Admin Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Admin+. If editing an Admin+, you must be Owner+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "user[verified]": {
                                        "type": "boolean",
                                        "description": "Must have the bd staff user flag to use."
                                    },
                                    "user[level]": {
                                        "type": "integer",
                                        "description": "Must have the bd staff user flag to promote to Admin+."
                                    },
                                    "user[name]": {
                                        "type": "string"
                                    },
                                    "user[profile_about]": {
                                        "type": "string"
                                    },
                                    "user[profile_artinfo]": {
                                        "type": "string"
                                    },
                                    "user[base_upload_limit]": {
                                        "type": "integer"
                                    },
                                    "user[enable_privacy_mode]": {
                                        "type": "boolean"
                                    },
                                    "user[email]": {
                                        "type": "string",
                                        "description": "Must have the bd staff user flag to use."
                                    },
                                    "user[can_approve_posts]": {
                                        "type": "boolean"
                                    },
                                    "user[can_upload_free]": {
                                        "type": "boolean"
                                    },
                                    "user[no_flagging]": {
                                        "type": "boolean"
                                    },
                                    "user[replacements_beta]": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "400": {
                        "$ref": "#/components/responses/MessageError"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/admin/users/{id}/anonymize.json": {
            "post": {
                "summary": "Admin Anonymize User",
                "operationId": "adminAnonymizeUser",
                "tags": [
                    "Admin Users"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the bd staff user flag. Cannot be used on staff.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Redirect\nSuccess should be determined based on the html, any errors will be present in an alert.\n"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/delete.json": {
            "post": {
                "summary": "Delete Post",
                "operationId": "deletePost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission. `commit=Delete` must be set.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "description": "If the post does not have an active flag, this is required."
                                    },
                                    "move_favorites": {
                                        "type": "boolean",
                                        "description": "Move favorites to parent."
                                    },
                                    "copy_sources": {
                                        "type": "boolean",
                                        "description": "Copy sources to parent."
                                    },
                                    "copy_tags": {
                                        "type": "boolean",
                                        "description": "Copy tags to parent."
                                    },
                                    "commit": {
                                        "type": "string",
                                        "description": "If not set, nothing will happen.",
                                        "enum": [
                                            "Delete"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/undelete.json": {
            "post": {
                "summary": "Undelete Post",
                "operationId": "undeletePost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/regenerate_thumbnails.json": {
            "post": {
                "summary": "Regenerate Post Thumbnails",
                "operationId": "regeneratePostThumbnails",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/regenerate_videos.json": {
            "post": {
                "summary": "Regenerate Post Videos",
                "operationId": "regeneratePostVideos",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/expunge.json": {
            "post": {
                "summary": "Expunge Post",
                "operationId": "expungePost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission and be Admin+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "post"
                                    ],
                                    "properties": {
                                        "post": {
                                            "$ref": "#/components/schemas/Post"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/move_favorites.json": {
            "post": {
                "summary": "Move Post Favorites",
                "operationId": "movePostFavorites",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission. `commit=Submit`` must be set.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "commit"
                                ],
                                "properties": {
                                    "commit": {
                                        "type": "string",
                                        "description": "If not set, nothing will happen.",
                                        "enum": [
                                            "Submit"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/moderator/post/posts/{id}/ai_check.json": {
            "get": {
                "summary": "AI Check Post",
                "operationId": "aiCheckPost",
                "tags": [
                    "Posts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must be Janitor+.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/idPath"
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Success"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        },
        "/moderator/post/approval.json": {
            "post": {
                "summary": "Approve Post",
                "operationId": "approvePost",
                "tags": [
                    "Posts",
                    "Post Approvals"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "minProperties": 0,
                                    "maxProperties": 0,
                                    "additionalProperties": false
                                }
                            }
                        }
                    },
                    "204": {
                        "description": "Failure"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            },
            "delete": {
                "summary": "Unapprove Post",
                "operationId": "unapprovePost",
                "tags": [
                    "Posts",
                    "Post Approvals"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission. The response does not differ for success or failure.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_id"
                                ],
                                "properties": {
                                    "post_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success/Failure"
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                }
            }
        },
        "/moderator/post/disapprovals.json": {
            "get": {
                "summary": "Search Post Disapprovals",
                "operationId": "searchPostDisapprovals",
                "tags": [
                    "Post Disapprovals"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/limitQuery"
                    },
                    {
                        "$ref": "#/components/parameters/pageQuery"
                    },
                    {
                        "$ref": "#/components/parameters/idQuery"
                    },
                    {
                        "name": "search[order]",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id_asc",
                                "id_desc",
                                "post_id",
                                "post_id_desc"
                            ]
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[creator_name]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_id]",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[message]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[post_tags_match]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[reason]",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "in": "query",
                        "name": "search[has_message]",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PostDisapproval"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "summary": "Create Post Disapproval",
                "operationId": "createPostDisapproval",
                "tags": [
                    "Post Disapprovals"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ],
                "description": "You must have the \"Approve Posts\" permission.",
                "requestBody": {
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "post_disapproval[post_id]",
                                    "post_disapproval[reason]"
                                ],
                                "properties": {
                                    "post_disapproval[post_id]": {
                                        "type": "integer"
                                    },
                                    "post_disapproval[reason]": {
                                        "type": "string",
                                        "enum": [
                                            "borderline_quality",
                                            "borderline_relevancy",
                                            "other"
                                        ]
                                    },
                                    "post_disapproval[message]": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PostDisapproval"
                                }
                            }
                        }
                    },
                    "403": {
                        "$ref": "#/components/responses/AccessDenied"
                    },
                    "422": {
                        "$ref": "#/components/responses/ExpectedError"
                    }
                }
            }
        }
    }
}
