openapi: 3.0.1 info: contact: {} servers: - url: / paths: /: get: description: if config file not exist try to redirect to install page summary: if config file not exist try to redirect to install page tags: - installation /answer/admin/api/answer/page: get: description: "Status:[available,deleted]" parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: user status in: query name: status schema: enum: - available - deleted type: string - description: answer id or question title in: query name: query schema: type: string - description: question id in: query name: question_id schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: AdminAnswerPage admin answer page tags: - admin /answer/admin/api/answer/status: put: description: "Status:[available,deleted]" requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AdminSetAnswerStatusRequest' description: AdminSetAnswerStatusRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: AdminSetAnswerStatus tags: - admin x-codegen-request-body-name: data /answer/admin/api/dashboard: get: description: DashboardInfo responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: DashboardInfo tags: - admin /answer/admin/api/language/options: get: description: Get language options responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: Get language options tags: - Lang /answer/admin/api/plugin/config: get: description: get plugin config parameters: - description: plugin_slug_name in: query name: plugin_slug_name required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_plugin_config_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get plugin config tags: - AdminPlugin put: description: update plugin config requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdatePluginConfigReq' description: UpdatePluginConfigReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update plugin config tags: - AdminPlugin x-codegen-request-body-name: data /answer/admin/api/plugin/status: put: description: update plugin status requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdatePluginStatusReq' description: UpdatePluginStatusReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update plugin status tags: - AdminPlugin x-codegen-request-body-name: data /answer/admin/api/plugins: get: description: get plugin list parameters: - description: "status: active/inactive" in: query name: status schema: type: string - description: have config in: query name: have_config schema: type: boolean responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_plugins_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get plugin list tags: - AdminPlugin /answer/admin/api/question/page: get: description: "Status:[available,closed,deleted]" parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: user status in: query name: status schema: enum: - available - closed - deleted type: string - description: question id or title in: query name: query schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: AdminQuestionPage admin question page tags: - admin /answer/admin/api/question/status: put: description: "Status:[available,closed,deleted]" requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AdminSetQuestionStatusRequest' description: AdminSetQuestionStatusRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: AdminSetQuestionStatus tags: - admin x-codegen-request-body-name: data /answer/admin/api/reasons: get: description: get reasons by object type and action parameters: - description: object_type in: query name: object_type required: true schema: enum: - question - answer - comment - user type: string - description: action in: query name: action required: true schema: enum: - status - close - flag - review type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: get reasons by object type and action tags: - reason /answer/admin/api/report/: put: description: handle flag requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.ReportHandleReq' description: flag required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] - ApiKeyAuth: [] summary: handle flag tags: - admin x-codegen-request-body-name: data /answer/admin/api/reports/page: get: description: list report records parameters: - description: status in: query name: status required: true schema: enum: - pending - completed type: string - description: object_type in: query name: object_type required: true schema: enum: - all - question - answer - comment type: string - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] - ApiKeyAuth: [] summary: list report page tags: - admin /answer/admin/api/roles: get: description: get role list responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_roles_get_200_response' description: OK summary: get role list tags: - admin /answer/admin/api/setting/privileges: get: description: GetPrivilegesConfig get privileges config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_setting_privileges_get_200_response' description: OK security: - ApiKeyAuth: [] summary: GetPrivilegesConfig get privileges config tags: - admin put: description: update privileges config requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.UpdatePrivilegesConfigReq' description: config required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update privileges config tags: - admin x-codegen-request-body-name: data /answer/admin/api/setting/smtp: get: description: GetSMTPConfig get smtp config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_setting_smtp_get_200_response' description: OK security: - ApiKeyAuth: [] summary: GetSMTPConfig get smtp config tags: - admin put: description: update smtp config requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.UpdateSMTPConfigReq' description: smtp config required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update smtp config tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/branding: get: description: get site interface responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_branding_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site interface tags: - admin put: description: update site info branding requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteBrandingReq' description: branding info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site info branding tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/custom-css-html: get: description: get site info custom html css config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_custom_css_html_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site info custom html css config tags: - admin put: description: update site custom css html config requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteCustomCssHTMLReq' description: login info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site custom css html config tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/general: get: description: get site general information responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_general_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site general information tags: - admin put: description: update site general information requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteGeneralReq' description: general required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site general information tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/interface: get: description: get site interface responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_interface_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site interface tags: - admin put: description: update site info interface requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteInterfaceReq' description: general required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site info interface tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/legal: get: description: Set the legal information for the site responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_legal_get_200_response' description: OK security: - ApiKeyAuth: [] summary: Set the legal information for the site tags: - admin put: description: update site legal info requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteLegalReq' description: write info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site legal info tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/login: get: description: get site info login config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_login_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site info login config tags: - admin put: description: update site login requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteLoginReq' description: login info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site login tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/seo: get: description: get site seo information responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_seo_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site seo information tags: - admin put: description: update site seo information requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteSeoReq' description: seo required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site seo information tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/theme: get: description: get site info theme config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_theme_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site info theme config tags: - admin put: description: update site custom css html config requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteThemeReq' description: login info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site custom css html config tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/users: get: description: get site user config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_users_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site user config tags: - admin put: description: update site info config about users requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteUsersReq' description: users info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site info config about users tags: - admin x-codegen-request-body-name: data /answer/admin/api/siteinfo/write: get: description: get site interface responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_siteinfo_write_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get site interface tags: - admin put: description: update site write info requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SiteWriteReq' description: write info required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update site write info tags: - admin x-codegen-request-body-name: data /answer/admin/api/theme/options: get: description: Get theme options responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: Get theme options tags: - admin /answer/admin/api/user: post: description: add user requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AddUserReq' description: user required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: add user tags: - admin x-codegen-request-body-name: data /answer/admin/api/user/activation: get: description: get user activation parameters: - description: user id in: query name: user_id required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_user_activation_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get user activation tags: - admin /answer/admin/api/user/password: put: description: update user password requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateUserPasswordReq' description: user required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update user password tags: - admin x-codegen-request-body-name: data /answer/admin/api/user/role: put: description: update user role requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateUserRoleReq' description: user required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update user role tags: - admin x-codegen-request-body-name: data /answer/admin/api/user/status: put: description: update user requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateUserStatusReq' description: user required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update user tags: - admin x-codegen-request-body-name: data /answer/admin/api/users: post: description: add users requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AddUsersReq' description: user required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: add users tags: - admin x-codegen-request-body-name: data /answer/admin/api/users/activation: post: description: send user activation requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.SendUserActivationReq' description: SendUserActivationReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: send user activation tags: - admin x-codegen-request-body-name: data /answer/admin/api/users/page: get: description: get user page parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: "search query: email, username or id:[id]" in: query name: query schema: type: string - description: staff user in: query name: staff schema: type: boolean - description: user status in: query name: status schema: enum: - suspended - deleted - inactive type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_admin_api_users_page_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get user page tags: - admin /answer/api/v1/activity/timeline: get: description: get object timeline parameters: - description: object id in: query name: object_id schema: type: string - description: tag slug name in: query name: tag_slug_name schema: type: string - description: object type in: query name: object_type schema: enum: - question - answer - tag type: string - description: is show vote in: query name: show_vote schema: type: boolean responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_activity_timeline_get_200_response' description: OK summary: get object timeline tags: - Comment /answer/api/v1/activity/timeline/detail: get: description: get object timeline detail parameters: - description: revision id in: query name: revision_id required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_activity_timeline_get_200_response' description: OK summary: get object timeline detail tags: - Comment /answer/api/v1/answer: delete: description: delete answer requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.RemoveAnswerReq' description: answer required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: delete answer tags: - api-answer x-codegen-request-body-name: data post: description: Insert Answer requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AnswerAddReq' description: AnswerAddReq required: true responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: Insert Answer tags: - api-answer x-codegen-request-body-name: data put: description: Update Answer requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AnswerUpdateReq' description: AnswerUpdateReq required: true responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: Update Answer tags: - api-answer x-codegen-request-body-name: data /answer/api/v1/answer/acceptance: post: description: Accepted requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AcceptAnswerReq' description: AcceptAnswerReq required: true responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: Accepted tags: - api-answer x-codegen-request-body-name: data /answer/api/v1/answer/info: get: description: Get Answer parameters: - description: Answer TagID in: query name: id required: true schema: default: "1" type: string responses: "200": content: application/json: schema: type: string description: OK summary: Get Answer tags: - api-answer /answer/api/v1/answer/page: get: description: AnswerList
order (default or updated) parameters: - description: question_id in: query name: question_id required: true schema: type: string - description: order in: query name: order required: true schema: type: string - description: page in: query name: page required: true schema: type: string - description: page_size in: query name: page_size required: true schema: type: string responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: AnswerList tags: - api-answer /answer/api/v1/collection/switch: post: description: add collection requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.CollectionSwitchReq' description: collection required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_collection_switch_post_200_response' description: OK security: - ApiKeyAuth: [] summary: add collection tags: - Collection x-codegen-request-body-name: data /answer/api/v1/comment: delete: description: remove comment requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.RemoveCommentReq' description: comment required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: remove comment tags: - Comment x-codegen-request-body-name: data get: description: get comment by id parameters: - description: id in: query name: id required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_comment_get_200_response' description: OK summary: get comment by id tags: - Comment post: description: add comment requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AddCommentReq' description: comment required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_comment_post_200_response' description: OK security: - ApiKeyAuth: [] summary: add comment tags: - Comment x-codegen-request-body-name: data put: description: update comment requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateCommentReq' description: comment required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update comment tags: - Comment x-codegen-request-body-name: data /answer/api/v1/comment/page: get: description: get comment page parameters: - description: page in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: object id in: query name: object_id required: true schema: type: string - description: query condition in: query name: query_cond schema: enum: - vote type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_comment_get_200_response' description: OK summary: get comment page tags: - Comment /answer/api/v1/connector/binding/email: post: description: external login binding user send email requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.ExternalLoginBindingUserSendEmailReq' description: external login binding user send email required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_connector_binding_email_post_200_response' description: OK summary: external login binding user send email tags: - PluginConnector x-codegen-request-body-name: data /answer/api/v1/connector/info: get: description: get all enabled connectors responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_connector_info_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get all enabled connectors tags: - PluginConnector /answer/api/v1/connector/user/info: get: description: get all connectors info about user responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_connector_user_info_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get all connectors info about user tags: - PluginConnector /answer/api/v1/connector/user/unbinding: delete: description: unbind external user login requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.ExternalLoginUnbindingReq' description: ExternalLoginUnbindingReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: unbind external user login tags: - PluginConnector x-codegen-request-body-name: data /answer/api/v1/file: post: description: upload file requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/_answer_api_v1_file_post_request' required: true responses: "200": content: '*/*': schema: $ref: '#/components/schemas/_answer_api_v1_file_post_200_response' description: OK security: - ApiKeyAuth: [] summary: upload file tags: - Upload /answer/api/v1/follow: post: description: follow object or cancel follow operation requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.FollowReq' description: follow required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_follow_post_200_response' description: OK security: - ApiKeyAuth: [] summary: follow object or cancel follow operation tags: - Activity x-codegen-request-body-name: data /answer/api/v1/follow/tags: put: description: update user follow tags requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateFollowTagsReq' description: follow required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update user follow tags tags: - Activity x-codegen-request-body-name: data /answer/api/v1/language/config: get: description: get language config mapping parameters: - description: Accept-Language in: header name: Accept-Language required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: get language config mapping tags: - Lang /answer/api/v1/language/options: get: description: Get language options responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: Get language options tags: - Lang /answer/api/v1/notification/page: get: description: get notification list parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: type in: query name: type required: true schema: enum: - inbox - achievement type: string - description: inbox_type in: query name: inbox_type required: true schema: enum: - all - posts - invites - votes type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: get notification list tags: - Notification /answer/api/v1/notification/read/state: put: description: ClearUnRead requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.NotificationClearIDRequest' description: NotificationClearIDRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: ClearUnRead tags: - Notification x-codegen-request-body-name: data /answer/api/v1/notification/read/state/all: put: description: ClearUnRead requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.NotificationClearRequest' description: NotificationClearRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: ClearUnRead tags: - Notification x-codegen-request-body-name: data /answer/api/v1/notification/status: get: description: GetRedDot responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: GetRedDot tags: - Notification put: description: DelRedDot requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.NotificationClearRequest' description: NotificationClearRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: DelRedDot tags: - Notification x-codegen-request-body-name: data /answer/api/v1/permission: get: description: check user permission parameters: - description: access-token in: header name: Authorization required: true schema: type: string - description: permission key in: query name: action required: true schema: enum: - question.add - question.edit - question.edit_without_review - question.delete - question.close - question.reopen - question.vote_up - question.vote_down - question.pin - question.unpin - question.hide - question.show - answer.add - answer.edit - answer.edit_without_review - answer.delete - answer.accept - answer.vote_up - answer.vote_down - answer.invite_someone_to_answer - comment.add - comment.edit - comment.delete - comment.vote_up - comment.vote_down - report.add - tag.add - tag.edit - tag.edit_slug_name - tag.edit_without_review - tag.delete - tag.synonym - link.url_limit - vote.detail - answer.audit - question.audit - tag.audit - tag.use_reserved_tag type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_permission_get_200_response' description: OK security: - ApiKeyAuth: [] summary: check user permission tags: - Permission /answer/api/v1/personal/answer/page: get: description: list personal answers parameters: - description: username in: query name: username required: true schema: default: string type: string - description: order in: query name: order required: true schema: enum: - newest - score type: string - description: page in: query name: page required: true schema: default: "0" type: string - description: page_size in: query name: page_size required: true schema: default: "20" type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: list personal answers tags: - Personal /answer/api/v1/personal/collection/page: get: description: list personal collections parameters: - description: page in: query name: page required: true schema: default: "0" type: string - description: page_size in: query name: page_size required: true schema: default: "20" type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: list personal collections tags: - Collection /answer/api/v1/personal/comment/page: get: description: user personal comment list parameters: - description: page in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: username in: query name: username schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_personal_comment_page_get_200_response' description: OK summary: user personal comment list tags: - Comment /answer/api/v1/personal/qa/top: get: description: UserTop parameters: - description: username in: query name: username required: true schema: default: string type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: UserTop tags: - Question /answer/api/v1/personal/rank/page: get: description: user personal rank list parameters: - description: page in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: username in: query name: username schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_personal_rank_page_get_200_response' description: OK summary: user personal rank list tags: - Rank /answer/api/v1/personal/user/info: get: description: GetOtherUserInfoByUsername parameters: - description: username in: query name: username required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_personal_user_info_get_200_response' description: OK security: - ApiKeyAuth: [] summary: GetOtherUserInfoByUsername tags: - User /answer/api/v1/personal/vote/page: get: description: get user personal votes parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_personal_vote_page_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get user personal votes tags: - Activity /answer/api/v1/post/render: post: description: render post content requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.PostRenderReq' description: PostRenderReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: render post content tags: - Upload x-codegen-request-body-name: data /answer/api/v1/question: delete: description: delete question requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.RemoveQuestionReq' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: delete question tags: - Question x-codegen-request-body-name: data post: description: add question requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.QuestionAdd' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: add question tags: - Question x-codegen-request-body-name: data put: description: update question requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.QuestionUpdate' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update question tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/answer: post: description: add question and answer requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.QuestionAddByAnswer' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: add question and answer tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/info: get: description: get question details parameters: - description: Question TagID in: query name: id required: true schema: default: "1" type: string responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: get question details tags: - Question /answer/api/v1/question/invite: get: description: get question invite user info parameters: - description: Question ID in: query name: id required: true schema: default: "1" type: string responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: get question invite user info tags: - Question put: description: update question invite user requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.QuestionUpdateInviteUser' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update question invite user tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/operation: put: description: "Operation question \\n operation [pin unpin hide show]" requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.OperationQuestionReq' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: Operation question tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/page: get: description: get questions by page parameters: - description: page in: query name: page schema: type: integer - description: page_size in: query name: page_size schema: type: integer - description: order cond in: query name: order schema: enum: - newest - active - frequent - score - unanswered type: string - description: tag in: query name: tag schema: type: string - description: username in: query name: username schema: type: string - description: in_days in: query name: in_days schema: type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_question_page_get_200_response' description: OK summary: get questions by page tags: - Question /answer/api/v1/question/reopen: put: description: reopen question requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.ReopenQuestionReq' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: reopen question tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/similar: get: description: fuzzy query similar questions based on title parameters: - description: title in: query name: title required: true schema: default: string type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: fuzzy query similar questions based on title tags: - Question /answer/api/v1/question/similar/tag: get: description: Search Similar Question parameters: - description: question_id in: query name: question_id required: true schema: type: string responses: "200": content: application/json: schema: type: string description: OK summary: Search Similar Question tags: - Question /answer/api/v1/question/status: put: description: Close question requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.CloseQuestionReq' description: question required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: Close question tags: - Question x-codegen-request-body-name: data /answer/api/v1/question/tags: get: description: get tag list parameters: - description: tag in: query name: tag schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_question_tags_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get tag list tags: - Tag /answer/api/v1/reasons: get: description: get reasons by object type and action parameters: - description: object_type in: query name: object_type required: true schema: enum: - question - answer - comment - user type: string - description: action in: query name: action required: true schema: enum: - status - close - flag - review type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: get reasons by object type and action tags: - reason /answer/api/v1/report: post: description: "add report
source (question, answer, comment, user)" requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AddReportReq' description: report required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] - ApiKeyAuth: [] summary: add report tags: - Report x-codegen-request-body-name: data /answer/api/v1/revisions: get: description: get revision list parameters: - description: object id in: query name: object_id required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_revisions_get_200_response' description: OK summary: get revision list tags: - Revision /answer/api/v1/revisions/audit: put: description: revision audit operation:approve or reject requestBody: content: '*/*': schema: $ref: '#/components/schemas/schema.RevisionAuditReq' description: audit required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: revision audit tags: - Revision x-codegen-request-body-name: data /answer/api/v1/revisions/edit/check: get: description: check can update revision parameters: - description: id in: query name: id required: true schema: default: string type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: check can update revision tags: - Revision /answer/api/v1/revisions/unreviewed: get: description: get unreviewed revision list parameters: - description: page id in: query name: page required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_revisions_unreviewed_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get unreviewed revision list tags: - Revision /answer/api/v1/search: get: description: search object parameters: - description: query string in: query name: q required: true schema: type: string - description: order in: query name: order required: true schema: enum: - newest - active - score - relevance type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_search_get_200_response' description: OK security: - ApiKeyAuth: [] summary: search object tags: - Search /answer/api/v1/search/desc: get: description: get search description responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_search_get_200_response' description: OK summary: get search description tags: - Search /answer/api/v1/siteinfo: get: description: get site info responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_siteinfo_get_200_response' description: OK summary: get site info tags: - site /answer/api/v1/siteinfo/legal: get: description: get site legal info parameters: - description: legal information type in: query name: info_type required: true schema: enum: - tos - privacy type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_siteinfo_legal_get_200_response' description: OK summary: get site legal info tags: - site /answer/api/v1/tag: delete: description: delete tag requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.RemoveTagReq' description: tag required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: delete tag tags: - Tag x-codegen-request-body-name: data get: description: get tag one parameters: - description: tag id in: query name: tag_id required: true schema: type: string - description: tag name in: query name: tag_name required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_tag_get_200_response' description: OK summary: get tag one tags: - Tag post: description: add tag requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.AddTagReq' description: tag required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: add tag tags: - Tag x-codegen-request-body-name: data put: description: update tag requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateTagReq' description: tag required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: update tag tags: - Tag x-codegen-request-body-name: data /answer/api/v1/tag/synonym: put: description: update tag requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateTagSynonymReq' description: tag required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: update tag tags: - Tag x-codegen-request-body-name: data /answer/api/v1/tag/synonyms: get: description: get tag synonyms parameters: - description: tag id in: query name: tag_id required: true schema: type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_tag_synonyms_get_200_response' description: OK summary: get tag synonyms tags: - Tag /answer/api/v1/tags: get: description: get tags list parameters: - description: string collection explode: false in: query name: tags schema: items: type: string type: array style: form responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: get tags list tags: - Tag /answer/api/v1/tags/following: get: description: get following tag list responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_tags_following_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get following tag list tags: - Tag /answer/api/v1/tags/page: get: description: get tag page parameters: - description: page size in: query name: page schema: type: integer - description: page size in: query name: page_size schema: type: integer - description: slug_name in: query name: slug_name schema: type: string - description: query condition in: query name: query_cond schema: enum: - popular - name - newest type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_tags_page_get_200_response' description: OK summary: get tag page tags: - Tag /answer/api/v1/user/action/record: get: description: ActionRecord parameters: - description: action in: query name: action required: true schema: enum: - login - e_mail - find_pass type: string responses: "200": content: '*/*': schema: $ref: '#/components/schemas/_answer_api_v1_user_action_record_get_200_response' description: OK security: - ApiKeyAuth: [] summary: ActionRecord tags: - User /answer/api/v1/user/email: put: description: user change email verification requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserChangeEmailVerifyReq' description: UserChangeEmailVerifyReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: user change email verification tags: - User x-codegen-request-body-name: data /answer/api/v1/user/email/change/code: post: description: send email to the user email then change their email requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserChangeEmailSendCodeReq' description: UserChangeEmailSendCodeReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: send email to the user email then change their email tags: - User x-codegen-request-body-name: data /answer/api/v1/user/email/verification: post: description: UserVerifyEmail parameters: - description: code in: query name: code required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_email_verification_post_200_response' description: OK summary: UserVerifyEmail tags: - User /answer/api/v1/user/email/verification/send: post: description: UserVerifyEmailSend parameters: - description: captcha_id in: query name: captcha_id schema: type: string - description: captcha_code in: query name: captcha_code schema: type: string responses: "200": content: application/json: schema: type: string description: OK security: - ApiKeyAuth: [] summary: UserVerifyEmailSend tags: - User /answer/api/v1/user/info: get: description: "get user info, if user no login response http code is 200, but\ \ user info is null" responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_info_get_200_response' description: OK security: - ApiKeyAuth: [] summary: GetUserInfoByUserID tags: - User put: description: UserUpdateInfo update user info parameters: - description: access-token in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateInfoRequest' description: UpdateInfoRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: UserUpdateInfo update user info tags: - User x-codegen-request-body-name: data /answer/api/v1/user/info/search: get: description: SearchUserListByName parameters: - description: username in: query name: username required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_personal_user_info_get_200_response' description: OK security: - ApiKeyAuth: [] summary: SearchUserListByName tags: - User /answer/api/v1/user/interface: put: description: UserUpdateInterface update user interface config parameters: - description: access-token in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateUserInterfaceRequest' description: UpdateInfoRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: UserUpdateInterface update user interface config tags: - User x-codegen-request-body-name: data /answer/api/v1/user/login/email: post: description: UserEmailLogin requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserEmailLoginReq' description: UserEmailLogin required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_email_verification_post_200_response' description: OK summary: UserEmailLogin tags: - User x-codegen-request-body-name: data /answer/api/v1/user/logout: get: description: user logout responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: user logout tags: - User /answer/api/v1/user/notification/config: post: description: get user's notification config responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_notification_config_post_200_response' description: OK security: - ApiKeyAuth: [] summary: get user's notification config tags: - User put: description: update user's notification config requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UpdateUserNotificationConfigReq' description: UpdateUserNotificationConfigReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: update user's notification config tags: - User x-codegen-request-body-name: data /answer/api/v1/user/notification/unsubscribe: put: description: unsubscribe notification requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserUnsubscribeNotificationReq' description: UserUnsubscribeNotificationReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: unsubscribe notification tags: - User x-codegen-request-body-name: data /answer/api/v1/user/password: put: description: UserModifyPassWord requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserModifyPasswordReq' description: UserModifyPasswordReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: UserModifyPassWord tags: - User x-codegen-request-body-name: data /answer/api/v1/user/password/replacement: post: description: UseRePassWord requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserRePassWordRequest' description: UserRePassWordRequest required: true responses: "200": content: application/json: schema: type: string description: OK summary: UseRePassWord tags: - User x-codegen-request-body-name: data /answer/api/v1/user/password/reset: post: description: RetrievePassWord requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserRetrievePassWordRequest' description: UserRetrievePassWordRequest required: true responses: "200": content: application/json: schema: type: string description: OK summary: RetrievePassWord tags: - User x-codegen-request-body-name: data /answer/api/v1/user/ranking: get: description: get user ranking responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_ranking_get_200_response' description: OK security: - ApiKeyAuth: [] summary: get user ranking tags: - User /answer/api/v1/user/register/captcha: get: description: UserRegisterCaptcha responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_email_verification_post_200_response' description: OK summary: UserRegisterCaptcha tags: - User /answer/api/v1/user/register/email: post: description: UserRegisterByEmail requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.UserRegisterReq' description: UserRegisterReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_user_email_verification_post_200_response' description: OK summary: UserRegisterByEmail tags: - User x-codegen-request-body-name: data /answer/api/v1/vote/down: post: description: add vote requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.VoteReq' description: vote required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_vote_down_post_200_response' description: OK security: - ApiKeyAuth: [] summary: vote down tags: - Activity x-codegen-request-body-name: data /answer/api/v1/vote/up: post: description: add vote requestBody: content: application/json: schema: $ref: '#/components/schemas/schema.VoteReq' description: vote required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_answer_api_v1_vote_down_post_200_response' description: OK security: - ApiKeyAuth: [] summary: vote up tags: - Activity x-codegen-request-body-name: data /custom.css: get: description: get site robots information responses: "200": content: application/json: schema: type: string description: OK summary: get site robots information tags: - site /installation/base-info: post: description: init base info requestBody: content: application/json: schema: $ref: '#/components/schemas/install.InitBaseInfoReq' description: InitBaseInfoReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: init base info tags: - installation x-codegen-request-body-name: data /installation/config-file/check: post: description: check config file if exist when installation responses: "200": content: application/json: schema: $ref: '#/components/schemas/_installation_config_file_check_post_200_response' description: OK summary: check config file if exist when installation tags: - installation /installation/db/check: post: description: check database if exist when installation requestBody: content: application/json: schema: $ref: '#/components/schemas/install.CheckDatabaseReq' description: CheckDatabaseReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/_installation_config_file_check_post_200_response' description: OK summary: check database if exist when installation tags: - installation x-codegen-request-body-name: data /installation/init: post: description: init environment requestBody: content: application/json: schema: $ref: '#/components/schemas/install.CheckDatabaseReq' description: CheckDatabaseReq required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK summary: init environment tags: - installation x-codegen-request-body-name: data /installation/language/options: get: description: get installation language options responses: "200": content: application/json: schema: $ref: '#/components/schemas/_installation_language_options_get_200_response' description: OK summary: get installation language options tags: - Lang /personal/question/page: get: description: list personal questions parameters: - description: username in: query name: username required: true schema: default: string type: string - description: order in: query name: order required: true schema: enum: - newest - score type: string - description: page in: query name: page required: true schema: default: "0" type: string - description: page_size in: query name: page_size required: true schema: default: "20" type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/handler.RespBody' description: OK security: - ApiKeyAuth: [] summary: list personal questions tags: - Personal /robots.txt: get: description: get site robots information responses: "200": content: application/json: schema: type: string description: OK summary: get site robots information tags: - site components: schemas: constant.NotificationChannelKey: enum: - email type: string x-enum-varnames: - EmailChannel constant.Privilege: properties: key: type: string label: type: string value: type: integer type: object handler.RespBody: example: msg: msg reason: reason code: 0 data: "{}" properties: code: description: http code type: integer data: description: response data type: object msg: description: response message type: string reason: description: reason key type: string type: object install.CheckConfigFileResp: properties: config_file_exist: type: boolean db_connection_success: type: boolean db_table_exist: type: boolean type: object install.CheckDatabaseReq: properties: db_file: type: string db_host: type: string db_name: type: string db_password: type: string db_type: enum: - postgres - sqlite3 - mysql type: string db_username: type: string required: - db_type type: object install.InitBaseInfoReq: properties: contact_email: maxLength: 500 type: string email: maxLength: 500 type: string lang: maxLength: 30 type: string login_required: type: boolean name: maxLength: 30 type: string password: maxLength: 32 minLength: 8 type: string site_name: maxLength: 30 type: string site_url: maxLength: 512 type: string required: - contact_email - email - lang - name - password - site_name - site_url type: object pager.PageModel: properties: count: type: integer list: type: object type: object schema.AcceptAnswerReq: properties: answer_id: type: string question_id: maxLength: 30 type: string required: - question_id type: object schema.ActObjectInfo: properties: answer_id: type: string display_name: type: string main_tag_slug_name: type: string object_type: type: string question_id: type: string title: type: string username: type: string type: object schema.ActObjectTimeline: properties: activity_id: type: string activity_type: type: string cancelled: type: boolean cancelled_at: type: integer comment: type: string created_at: type: integer id: type: string object_id: type: string object_type: type: string revision_id: type: string user_display_name: type: string username: type: string type: object schema.ActionRecordResp: properties: captcha_id: type: string captcha_img: type: string verify: type: boolean type: object schema.AddCommentReq: properties: captcha_code: type: string captcha_id: description: captcha_id type: string mention_username_list: description: '@ user id list' items: type: string type: array object_id: description: object id type: string original_text: description: original comment content maxLength: 600 minLength: 2 type: string reply_comment_id: description: reply comment id type: string required: - object_id - original_text type: object schema.AddReportReq: properties: captcha_code: type: string captcha_id: description: captcha_id type: string content: description: report content maxLength: 500 type: string object_id: description: object id maxLength: 20 type: string report_type: description: report type type: integer required: - object_id - report_type type: object schema.AddTagReq: properties: display_name: description: display_name maxLength: 35 type: string original_text: description: original text maxLength: 65536 type: string slug_name: description: slug_name maxLength: 35 type: string required: - display_name - original_text - slug_name type: object schema.AddUserReq: properties: display_name: maxLength: 30 minLength: 4 type: string email: maxLength: 500 type: string password: maxLength: 32 minLength: 8 type: string required: - display_name - email - password type: object schema.AddUsersReq: properties: users: description: users info line by line type: string type: object schema.AdminSetAnswerStatusRequest: properties: answer_id: type: string status: type: string type: object schema.AdminSetQuestionStatusRequest: properties: question_id: type: string status: type: string type: object schema.AnswerAddReq: properties: captcha_code: type: string captcha_id: type: string content: maxLength: 65535 minLength: 6 type: string question_id: type: string required: - content type: object schema.AnswerUpdateReq: properties: captcha_code: type: string captcha_id: type: string content: maxLength: 65535 minLength: 6 type: string edit_summary: type: string id: type: string question_id: type: string title: type: string required: - content type: object schema.AvatarInfo: properties: custom: maxLength: 200 type: string gravatar: maxLength: 200 type: string type: maxLength: 100 type: string type: object schema.CloseQuestionReq: properties: close_msg: description: close_type type: string close_type: description: close_type type: integer id: type: string required: - id type: object schema.CollectionSwitchReq: properties: group_id: description: user collection group TagID type: string object_id: description: object TagID type: string required: - group_id - object_id type: object schema.CollectionSwitchResp: properties: object_collection_count: type: string object_id: type: string switch: type: boolean type: object schema.ConfigField: properties: description: type: string name: type: string options: items: $ref: '#/components/schemas/schema.ConfigFieldOption' type: array required: type: boolean title: type: string type: type: string ui_options: $ref: '#/components/schemas/schema.ConfigFieldUIOptions' value: type: object type: object schema.ConfigFieldOption: properties: label: type: string value: type: string type: object schema.ConfigFieldUIOptions: properties: action: $ref: '#/components/schemas/schema.UIOptionAction' input_type: type: string label: type: string placeholder: type: string rows: type: string text: type: string variant: type: string type: object schema.ConnectorInfoResp: properties: icon: type: string link: type: string name: type: string type: object schema.ConnectorUserInfoResp: properties: binding: type: boolean external_id: type: string icon: type: string link: type: string name: type: string type: object schema.ExternalLoginBindingUserSendEmailReq: properties: binding_key: maxLength: 100 type: string email: maxLength: 512 type: string must: description: |- If must is true, whatever email if exists, try to bind user. If must is false, when email exist, will only be prompted with a warning. type: boolean required: - binding_key - email type: object schema.ExternalLoginBindingUserSendEmailResp: properties: access_token: type: string email_exist_and_must_be_confirmed: type: boolean type: object schema.ExternalLoginUnbindingReq: properties: external_id: maxLength: 128 type: string required: - external_id type: object schema.FollowReq: properties: is_cancel: description: is cancel type: boolean object_id: description: object id type: string required: - object_id type: object schema.FollowResp: properties: follows: description: the followers of object type: integer is_followed: description: "if user is followed object will be true,otherwise false" type: boolean type: object schema.GetCommentPersonalWithPageResp: properties: answer_id: description: answer id type: string comment_id: description: comment id type: string content: description: content type: string created_at: description: create time type: integer object_id: description: object id type: string object_type: description: object type enum: - question - answer - tag - comment type: string question_id: description: question id type: string title: description: title type: string url_title: description: url title type: string type: object schema.GetCommentResp: properties: comment_id: description: comment id type: string created_at: description: create time type: integer is_vote: description: current user if already vote this comment type: boolean member_actions: description: MemberActions items: $ref: '#/components/schemas/schema.PermissionMemberAction' type: array object_id: description: object id type: string original_text: description: original comment content type: string parsed_text: description: parsed comment content type: string reply_comment_id: description: reply comment id type: string reply_user_display_name: description: reply user display name type: string reply_user_id: description: reply user id type: string reply_user_status: description: reply user status type: string reply_username: description: reply user username type: string user_avatar: description: user avatar type: string user_display_name: description: user display name type: string user_id: description: user id type: string user_status: description: user status type: string username: description: username type: string vote_count: description: user vote amount type: integer type: object schema.GetCurrentLoginUserInfoResp: properties: access_token: description: access token type: string answer_count: description: answer count type: integer authority_group: description: authority group type: integer avatar: $ref: '#/components/schemas/schema.AvatarInfo' bio: description: bio markdown type: string bio_html: description: bio html type: string created_at: description: create time type: integer display_name: description: display name type: string e_mail: description: email type: string follow_count: description: follow count type: integer have_password: description: user have password type: boolean id: description: user id type: string ip_info: description: ip info type: string language: description: language type: string last_login_date: description: last login date type: integer location: description: location type: string mail_status: description: mail status(1 pass 2 to be verified) type: integer mobile: description: mobile type: string notice_status: description: notice status(1 on 2off) type: integer question_count: description: question count type: integer rank: description: rank type: integer role_id: description: role id type: integer status: description: user status type: string username: description: username type: string website: description: website type: string type: object schema.GetFollowingTagsResp: properties: display_name: description: display name type: string main_tag_slug_name: description: "if main tag slug name is not empty, this tag is synonymous\ \ with the main tag" type: string recommend: type: boolean reserved: type: boolean slug_name: description: slug name type: string tag_id: description: tag id type: string type: object schema.GetObjectTimelineResp: properties: object_info: $ref: '#/components/schemas/schema.ActObjectInfo' timeline: items: $ref: '#/components/schemas/schema.ActObjectTimeline' type: array type: object schema.GetOtherUserInfoByUsernameResp: properties: answer_count: description: answer count type: integer avatar: description: avatar type: string bio: description: bio markdown type: string bio_html: description: bio html type: string created_at: description: create time type: integer display_name: description: display name type: string follow_count: description: |- email follow count type: integer id: description: user id type: string last_login_date: description: last login date type: integer location: description: location type: string mobile: description: mobile type: string question_count: description: question count type: integer rank: description: rank type: integer status: type: string status_msg: type: string username: description: username type: string website: description: website type: string type: object schema.GetOtherUserInfoResp: properties: info: $ref: '#/components/schemas/schema.GetOtherUserInfoByUsernameResp' type: object schema.GetPluginConfigResp: properties: config_fields: items: $ref: '#/components/schemas/schema.ConfigField' type: array description: type: string name: type: string slug_name: type: string version: type: string type: object schema.GetPluginListResp: properties: description: type: string enabled: type: boolean have_config: type: boolean link: type: string name: type: string slug_name: type: string version: type: string type: object schema.GetPrivilegesConfigResp: properties: options: items: $ref: '#/components/schemas/schema.PrivilegeOption' type: array selected_level: $ref: '#/components/schemas/schema.PrivilegeLevel' type: object schema.GetRankPersonalPageResp: properties: answer_id: description: answer id type: string content: description: content type: string created_at: description: create time type: integer object_id: description: object id type: string object_type: description: object type enum: - question - answer - tag - comment type: string question_id: description: question id type: string rank_type: description: rank type type: string reputation: description: reputation type: integer title: description: title type: string url_title: description: url title type: string type: object schema.GetRevisionResp: properties: content: description: content parsed type: object create_at: type: integer id: description: id type: string object_id: description: object id type: string reason: type: string status: description: "revision status(normal: 1; delete 2)" type: integer title: description: title type: string use_id: description: user id type: string user_info: $ref: '#/components/schemas/schema.UserBasicInfo' type: object schema.GetRoleResp: properties: description: type: string id: type: integer name: type: string type: object schema.GetSMTPConfigResp: properties: encryption: description: '"" SSL' type: string from_email: type: string from_name: type: string smtp_authentication: type: boolean smtp_host: type: string smtp_password: type: string smtp_port: type: integer smtp_username: type: string type: object schema.GetSiteLegalInfoResp: properties: privacy_policy_original_text: type: string privacy_policy_parsed_text: type: string terms_of_service_original_text: type: string terms_of_service_parsed_text: type: string type: object schema.GetTagPageResp: properties: created_at: description: created time type: integer description: description: description type: string display_name: description: display_name type: string excerpt: description: excerpt type: string follow_count: description: follower amount type: integer is_follower: description: is follower type: boolean original_text: description: original text type: string parsed_text: description: parsed_text type: string question_count: description: question amount type: integer recommend: type: boolean reserved: type: boolean slug_name: description: slug_name type: string tag_id: description: tag_id type: string updated_at: description: updated time type: integer type: object schema.GetTagResp: properties: created_at: description: created time type: integer description: description: description text type: string display_name: description: display name type: string excerpt: description: excerpt type: string follow_count: description: follower amount type: integer is_follower: description: is follower type: boolean main_tag_slug_name: description: "if main tag slug name is not empty, this tag is synonymous\ \ with the main tag" type: string member_actions: description: MemberActions items: $ref: '#/components/schemas/schema.PermissionMemberAction' type: array original_text: description: original text type: string parsed_text: description: parsed text type: string question_count: description: question amount type: integer recommend: type: boolean reserved: type: boolean slug_name: description: slug name type: string tag_id: description: tag id type: string updated_at: description: updated time type: integer type: object schema.GetTagSynonymsResp: properties: member_actions: description: MemberActions items: $ref: '#/components/schemas/schema.PermissionMemberAction' type: array synonyms: description: synonyms items: $ref: '#/components/schemas/schema.TagSynonym' type: array type: object schema.GetUnreviewedRevisionResp: properties: info: $ref: '#/components/schemas/schema.UnreviewedRevisionInfoInfo' type: type: string unreviewed_info: $ref: '#/components/schemas/schema.GetRevisionResp' type: object schema.GetUserActivationResp: properties: activation_url: type: string type: object schema.GetUserNotificationConfigResp: properties: all_new_question: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array all_new_question_for_following_tags: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array inbox: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array type: object schema.GetUserPageResp: properties: avatar: description: avatar type: string created_at: description: create time type: integer deleted_at: description: delete time type: integer display_name: description: display name type: string e_mail: description: email type: string rank: description: rank type: integer role_id: description: role id type: integer role_name: description: role name type: string status: description: "user status(normal,suspended,deleted,inactive)" type: string suspended_at: description: suspended time type: integer user_id: description: user id type: string username: description: username type: string type: object schema.GetVoteWithPageResp: properties: answer_id: description: answer id type: string content: description: content type: string created_at: description: create time type: integer object_id: description: object id type: string object_type: description: object type enum: - question - answer - tag - comment type: string question_id: description: question id type: string title: description: title type: string url_title: description: url title type: string vote_type: description: vote type type: string type: object schema.LoadingAction: properties: state: type: string text: type: string type: object schema.NotificationChannelConfig: properties: enable: type: boolean key: $ref: '#/components/schemas/constant.NotificationChannelKey' type: object schema.NotificationClearIDRequest: properties: id: type: string type: object schema.NotificationClearRequest: properties: type: description: inbox achievement type: string type: object schema.OnCompleteAction: properties: refresh_form_config: type: boolean toast_return_message: type: boolean type: object schema.OperationQuestionReq: properties: id: type: string operation: description: "operation [pin unpin hide show]" type: string required: - id type: object schema.PermissionMemberAction: properties: action: type: string name: type: string type: type: string type: object schema.PostRenderReq: properties: content: type: string type: object schema.PrivilegeLevel: enum: - 1 - 2 - 3 type: integer x-enum-varnames: - PrivilegeLevel1 - PrivilegeLevel2 - PrivilegeLevel3 schema.PrivilegeOption: properties: level: $ref: '#/components/schemas/schema.PrivilegeLevel' level_desc: type: string privileges: items: $ref: '#/components/schemas/constant.Privilege' type: array type: object schema.QuestionAdd: properties: captcha_code: type: string captcha_id: description: captcha_id type: string content: description: content maxLength: 65535 minLength: 6 type: string tags: description: tags items: $ref: '#/components/schemas/schema.TagItem' type: array title: description: question title maxLength: 150 minLength: 6 type: string required: - content - tags - title type: object schema.QuestionAddByAnswer: properties: answer_content: maxLength: 65535 minLength: 6 type: string captcha_code: type: string captcha_id: description: captcha_id type: string content: description: content maxLength: 65535 minLength: 6 type: string mention_username_list: items: type: string type: array tags: description: tags items: $ref: '#/components/schemas/schema.TagItem' type: array title: description: question title maxLength: 150 minLength: 6 type: string required: - answer_content - content - tags - title type: object schema.QuestionPageResp: properties: accepted_answer_id: description: answer information type: string answer_count: type: integer collection_count: type: integer created_at: type: integer description: type: string follow_count: type: integer id: type: string last_answer_id: type: string operated_at: description: operator information type: integer operation_type: type: string operator: $ref: '#/components/schemas/schema.QuestionPageRespOperator' pin: description: "1: unpin, 2: pin" type: integer show: description: "0: show, 1: hide" type: integer status: type: integer tags: items: $ref: '#/components/schemas/schema.TagResp' type: array title: type: string unique_view_count: type: integer url_title: type: string view_count: description: question statistical information type: integer vote_count: type: integer type: object schema.QuestionPageRespOperator: properties: display_name: type: string id: type: string rank: type: integer username: type: string type: object schema.QuestionUpdate: properties: captcha_code: type: string captcha_id: description: captcha_id type: string content: description: content maxLength: 65535 minLength: 6 type: string edit_summary: description: edit summary type: string id: description: question id type: string invite_user: items: type: string type: array tags: description: tags items: $ref: '#/components/schemas/schema.TagItem' type: array title: description: question title maxLength: 150 minLength: 6 type: string required: - content - id - tags - title type: object schema.QuestionUpdateInviteUser: properties: captcha_code: type: string captcha_id: description: captcha_id type: string id: type: string invite_user: items: type: string type: array required: - id type: object schema.RemoveAnswerReq: properties: captcha_code: type: string captcha_id: type: string id: type: string required: - id type: object schema.RemoveCommentReq: properties: captcha_code: type: string captcha_id: description: captcha_id type: string comment_id: description: comment id type: string required: - comment_id type: object schema.RemoveQuestionReq: properties: captcha_code: type: string captcha_id: description: captcha_id type: string id: description: question id type: string required: - id type: object schema.RemoveTagReq: properties: tag_id: description: tag_id type: string required: - tag_id type: object schema.ReopenQuestionReq: properties: question_id: type: string type: object schema.ReportHandleReq: properties: flagged_content: type: string flagged_type: type: integer id: type: string required: - flagged_type - id type: object schema.RevisionAuditReq: properties: id: description: object id type: string operation: description: approve or reject type: string required: - id - operation type: object schema.SearchObject: properties: accepted: type: boolean answer_count: type: integer created_at: type: integer excerpt: type: string id: type: string question_id: type: string status: description: Status type: string tags: description: tags items: $ref: '#/components/schemas/schema.TagResp' type: array title: type: string user_info: allOf: - $ref: '#/components/schemas/schema.SearchObjectUser' description: user info type: object vote_count: type: integer type: object schema.SearchObjectUser: properties: display_name: type: string id: type: string rank: type: integer status: type: string username: type: string type: object schema.SearchResp: properties: count: type: integer list: description: search response items: $ref: '#/components/schemas/schema.SearchResult' type: array type: object schema.SearchResult: properties: object: allOf: - $ref: '#/components/schemas/schema.SearchObject' description: this object type: object object_type: description: object_type type: string type: object schema.SendUserActivationReq: properties: user_id: type: string required: - user_id type: object schema.SiteBrandingReq: properties: favicon: maxLength: 512 type: string logo: maxLength: 512 type: string mobile_logo: maxLength: 512 type: string square_icon: maxLength: 512 type: string type: object schema.SiteBrandingResp: properties: favicon: maxLength: 512 type: string logo: maxLength: 512 type: string mobile_logo: maxLength: 512 type: string square_icon: maxLength: 512 type: string type: object schema.SiteCustomCssHTMLReq: properties: custom_css: maxLength: 65536 type: string custom_footer: maxLength: 65536 type: string custom_head: maxLength: 65536 type: string custom_header: maxLength: 65536 type: string custom_sidebar: maxLength: 65536 type: string type: object schema.SiteCustomCssHTMLResp: properties: custom_css: maxLength: 65536 type: string custom_footer: maxLength: 65536 type: string custom_head: maxLength: 65536 type: string custom_header: maxLength: 65536 type: string custom_sidebar: maxLength: 65536 type: string type: object schema.SiteGeneralReq: properties: contact_email: maxLength: 512 type: string description: maxLength: 2000 type: string name: maxLength: 128 type: string short_description: maxLength: 255 type: string site_url: maxLength: 512 type: string required: - contact_email - name - site_url type: object schema.SiteGeneralResp: properties: contact_email: maxLength: 512 type: string description: maxLength: 2000 type: string name: maxLength: 128 type: string short_description: maxLength: 255 type: string site_url: maxLength: 512 type: string required: - contact_email - name - site_url type: object schema.SiteInfoResp: properties: branding: $ref: '#/components/schemas/schema.SiteBrandingResp' custom_css_html: $ref: '#/components/schemas/schema.SiteCustomCssHTMLResp' general: $ref: '#/components/schemas/schema.SiteGeneralResp' interface: $ref: '#/components/schemas/schema.SiteInterfaceResp' login: $ref: '#/components/schemas/schema.SiteLoginResp' revision: type: string site_seo: $ref: '#/components/schemas/schema.SiteSeoResp' site_users: $ref: '#/components/schemas/schema.SiteUsersResp' theme: $ref: '#/components/schemas/schema.SiteThemeResp' version: type: string type: object schema.SiteInterfaceReq: properties: language: maxLength: 128 type: string time_zone: maxLength: 128 type: string required: - language - time_zone type: object schema.SiteInterfaceResp: properties: language: maxLength: 128 type: string time_zone: maxLength: 128 type: string required: - language - time_zone type: object schema.SiteLegalReq: properties: privacy_policy_original_text: type: string privacy_policy_parsed_text: type: string terms_of_service_original_text: type: string terms_of_service_parsed_text: type: string type: object schema.SiteLegalResp: properties: privacy_policy_original_text: type: string privacy_policy_parsed_text: type: string terms_of_service_original_text: type: string terms_of_service_parsed_text: type: string type: object schema.SiteLoginReq: properties: allow_email_domains: items: type: string type: array allow_email_registrations: type: boolean allow_new_registrations: type: boolean login_required: type: boolean type: object schema.SiteLoginResp: properties: allow_email_domains: items: type: string type: array allow_email_registrations: type: boolean allow_new_registrations: type: boolean login_required: type: boolean type: object schema.SiteSeoReq: properties: permalink: maximum: 4 minimum: 0 type: integer robots: type: string required: - permalink - robots type: object schema.SiteSeoResp: properties: permalink: maximum: 4 minimum: 0 type: integer robots: type: string required: - permalink - robots type: object schema.SiteThemeReq: properties: theme: maxLength: 255 type: string theme_config: additionalProperties: true type: object required: - theme type: object schema.SiteThemeResp: properties: theme: type: string theme_config: additionalProperties: true type: object theme_options: items: $ref: '#/components/schemas/schema.ThemeOption' type: array type: object schema.SiteUsersReq: properties: allow_update_avatar: type: boolean allow_update_bio: type: boolean allow_update_display_name: type: boolean allow_update_location: type: boolean allow_update_username: type: boolean allow_update_website: type: boolean default_avatar: enum: - system - gravatar type: string gravatar_base_url: type: string required: - default_avatar type: object schema.SiteUsersResp: properties: allow_update_avatar: type: boolean allow_update_bio: type: boolean allow_update_display_name: type: boolean allow_update_location: type: boolean allow_update_username: type: boolean allow_update_website: type: boolean default_avatar: enum: - system - gravatar type: string gravatar_base_url: type: string required: - default_avatar type: object schema.SiteWriteReq: properties: recommend_tags: items: type: string type: array required_tag: type: boolean reserved_tags: items: type: string type: array type: object schema.SiteWriteResp: properties: recommend_tags: items: type: string type: array required_tag: type: boolean reserved_tags: items: type: string type: array type: object schema.TagItem: properties: display_name: description: display_name maxLength: 35 type: string original_text: description: original text type: string slug_name: description: slug_name maxLength: 35 type: string type: object schema.TagResp: properties: display_name: type: string main_tag_slug_name: description: "if main tag slug name is not empty, this tag is synonymous\ \ with the main tag" type: string recommend: type: boolean reserved: type: boolean slug_name: type: string type: object schema.TagSynonym: properties: display_name: description: display name type: string main_tag_slug_name: description: "if main tag slug name is not empty, this tag is synonymous\ \ with the main tag" type: string slug_name: description: slug name type: string tag_id: description: tag id type: string type: object schema.ThemeOption: properties: label: type: string value: type: string type: object schema.UIOptionAction: properties: loading: $ref: '#/components/schemas/schema.LoadingAction' method: type: string on_complete: $ref: '#/components/schemas/schema.OnCompleteAction' url: type: string type: object schema.UnreviewedRevisionInfoInfo: properties: content: type: string html: type: string object_id: type: string tags: items: $ref: '#/components/schemas/schema.TagResp' type: array title: type: string type: object schema.UpdateCommentReq: properties: captcha_code: type: string captcha_id: description: whether user can delete it type: string comment_id: description: comment id type: string original_text: description: original comment content maxLength: 600 minLength: 2 type: string required: - comment_id - original_text type: object schema.UpdateFollowTagsReq: properties: slug_name_list: description: tag slug name list items: type: string type: array type: object schema.UpdateInfoRequest: properties: avatar: allOf: - $ref: '#/components/schemas/schema.AvatarInfo' description: avatar type: object bio: description: bio maxLength: 4096 type: string display_name: description: display_name maxLength: 30 type: string location: description: location maxLength: 100 type: string username: description: username maxLength: 30 type: string website: description: website maxLength: 500 type: string type: object schema.UpdatePluginConfigReq: properties: config_fields: additionalProperties: type: object type: object plugin_slug_name: maxLength: 100 type: string required: - plugin_slug_name type: object schema.UpdatePluginStatusReq: properties: enabled: type: boolean plugin_slug_name: maxLength: 100 type: string required: - plugin_slug_name type: object schema.UpdatePrivilegesConfigReq: properties: level: allOf: - $ref: '#/components/schemas/schema.PrivilegeLevel' type: object required: - level type: object schema.UpdateSMTPConfigReq: properties: encryption: description: '"" SSL' enum: - SSL type: string from_email: maxLength: 256 type: string from_name: maxLength: 256 type: string smtp_authentication: type: boolean smtp_host: maxLength: 256 type: string smtp_password: maxLength: 256 type: string smtp_port: maximum: 65535 minimum: 1 type: integer smtp_username: maxLength: 256 type: string test_email_recipient: type: string type: object schema.UpdateTagReq: properties: display_name: description: display_name maxLength: 35 type: string edit_summary: description: edit summary type: string original_text: description: original text type: string slug_name: description: slug_name maxLength: 35 type: string tag_id: description: tag_id type: string required: - tag_id type: object schema.UpdateTagSynonymReq: properties: synonym_tag_list: description: synonym tag list items: $ref: '#/components/schemas/schema.TagItem' type: array tag_id: description: tag_id type: string required: - synonym_tag_list - tag_id type: object schema.UpdateUserInterfaceRequest: properties: language: description: language maxLength: 100 type: string required: - language type: object schema.UpdateUserNotificationConfigReq: properties: all_new_question: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array all_new_question_for_following_tags: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array inbox: items: $ref: '#/components/schemas/schema.NotificationChannelConfig' type: array type: object schema.UpdateUserPasswordReq: properties: password: maxLength: 32 minLength: 8 type: string user_id: type: string required: - password - user_id type: object schema.UpdateUserRoleReq: properties: role_id: description: role id type: integer user_id: description: user id type: string required: - role_id - user_id type: object schema.UpdateUserStatusReq: properties: status: enum: - normal - suspended - deleted - inactive type: string user_id: type: string required: - status - user_id type: object schema.UserBasicInfo: properties: avatar: type: string display_name: type: string id: type: string ip_info: type: string location: type: string rank: type: integer status: type: string username: type: string website: type: string type: object schema.UserChangeEmailSendCodeReq: properties: captcha_code: maxLength: 500 type: string captcha_id: maxLength: 500 type: string e_mail: maxLength: 500 type: string pass: maxLength: 32 minLength: 8 type: string required: - e_mail type: object schema.UserChangeEmailVerifyReq: properties: code: maxLength: 500 type: string required: - code type: object schema.UserEmailLoginReq: properties: captcha_code: type: string captcha_id: type: string e_mail: maxLength: 500 type: string pass: maxLength: 32 minLength: 8 type: string required: - e_mail - pass type: object schema.UserLoginResp: properties: access_token: description: access token type: string answer_count: description: answer count type: integer authority_group: description: authority group type: integer avatar: description: avatar type: string bio: description: bio markdown type: string bio_html: description: bio html type: string created_at: description: create time type: integer display_name: description: display name type: string e_mail: description: email type: string follow_count: description: follow count type: integer have_password: description: user have password type: boolean id: description: user id type: string ip_info: description: ip info type: string language: description: language type: string last_login_date: description: last login date type: integer location: description: location type: string mail_status: description: mail status(1 pass 2 to be verified) type: integer mobile: description: mobile type: string notice_status: description: notice status(1 on 2off) type: integer question_count: description: question count type: integer rank: description: rank type: integer role_id: description: role id type: integer status: description: user status type: string username: description: username type: string website: description: website type: string type: object schema.UserModifyPasswordReq: properties: captcha_code: maxLength: 500 type: string captcha_id: maxLength: 500 type: string old_pass: maxLength: 32 minLength: 8 type: string pass: maxLength: 32 minLength: 8 type: string required: - pass type: object schema.UserRankingResp: properties: staffs: items: $ref: '#/components/schemas/schema.UserRankingSimpleInfo' type: array users_with_the_most_reputation: items: $ref: '#/components/schemas/schema.UserRankingSimpleInfo' type: array users_with_the_most_vote: items: $ref: '#/components/schemas/schema.UserRankingSimpleInfo' type: array type: object schema.UserRankingSimpleInfo: properties: avatar: description: avatar type: string display_name: description: display name type: string rank: description: rank type: integer username: description: username type: string vote_count: description: vote type: integer type: object schema.UserRePassWordRequest: properties: code: maxLength: 100 type: string pass: maxLength: 32 type: string required: - code - pass type: object schema.UserRegisterReq: properties: captcha_code: type: string captcha_id: type: string e_mail: maxLength: 500 type: string name: maxLength: 30 type: string pass: maxLength: 32 minLength: 8 type: string required: - e_mail - name - pass type: object schema.UserRetrievePassWordRequest: properties: captcha_code: type: string captcha_id: type: string e_mail: maxLength: 500 type: string required: - e_mail type: object schema.UserUnsubscribeNotificationReq: properties: code: maxLength: 500 type: string required: - code type: object schema.VoteReq: properties: captcha_code: type: string captcha_id: description: captcha_id type: string is_cancel: description: is cancel type: boolean object_id: description: id type: string required: - object_id type: object schema.VoteResp: properties: down_votes: type: integer up_votes: type: integer vote_status: type: string votes: type: integer type: object translator.LangOption: properties: label: type: string progress: description: Translation completion percentage type: integer value: type: string type: object _answer_admin_api_plugin_config_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetPluginConfigResp' type: object _answer_admin_api_plugins_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.GetPluginListResp' type: array type: object _answer_admin_api_roles_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.GetRoleResp' type: array type: object _answer_admin_api_setting_privileges_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetPrivilegesConfigResp' type: object _answer_admin_api_setting_smtp_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetSMTPConfigResp' type: object _answer_admin_api_siteinfo_branding_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteBrandingResp' type: object _answer_admin_api_siteinfo_custom_css_html_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteCustomCssHTMLResp' type: object _answer_admin_api_siteinfo_general_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteGeneralResp' type: object _answer_admin_api_siteinfo_interface_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteInterfaceResp' type: object _answer_admin_api_siteinfo_legal_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteLegalResp' type: object _answer_admin_api_siteinfo_login_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteLoginResp' type: object _answer_admin_api_siteinfo_seo_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteSeoResp' type: object _answer_admin_api_siteinfo_theme_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteThemeResp' type: object _answer_admin_api_siteinfo_users_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteUsersResp' type: object _answer_admin_api_siteinfo_write_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteWriteResp' type: object _answer_admin_api_user_activation_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetUserActivationResp' type: object _answer_admin_api_users_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: records: items: $ref: '#/definitions/schema.GetUserPageResp' type: array type: object type: object _answer_admin_api_users_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_admin_api_users_page_get_200_response_allOf_data' type: object _answer_api_v1_activity_timeline_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetObjectTimelineResp' type: object _answer_api_v1_collection_switch_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.CollectionSwitchResp' type: object _answer_api_v1_comment_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetCommentResp' type: array type: object type: object _answer_api_v1_comment_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_comment_get_200_response_allOf_data' type: object _answer_api_v1_comment_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetCommentResp' type: object _answer_api_v1_connector_binding_email_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.ExternalLoginBindingUserSendEmailResp' type: object _answer_api_v1_connector_info_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.ConnectorInfoResp' type: array type: object _answer_api_v1_connector_user_info_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.ConnectorUserInfoResp' type: array type: object _answer_api_v1_file_post_request: properties: source: description: identify the source of the file upload enum: - post - avatar - branding type: string file: description: file format: binary type: string required: - file - source type: object _answer_api_v1_file_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: type: string type: object _answer_api_v1_follow_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.FollowResp' type: object _answer_api_v1_permission_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: additionalProperties: type: boolean type: object type: object _answer_api_v1_personal_comment_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetCommentPersonalWithPageResp' type: array type: object type: object _answer_api_v1_personal_comment_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_personal_comment_page_get_200_response_allOf_data' type: object _answer_api_v1_personal_rank_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetRankPersonalPageResp' type: array type: object type: object _answer_api_v1_personal_rank_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_personal_rank_page_get_200_response_allOf_data' type: object _answer_api_v1_personal_user_info_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetOtherUserInfoResp' type: object _answer_api_v1_personal_vote_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetVoteWithPageResp' type: array type: object type: object _answer_api_v1_personal_vote_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_personal_vote_page_get_200_response_allOf_data' type: object _answer_api_v1_question_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.QuestionPageResp' type: array type: object type: object _answer_api_v1_question_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_question_page_get_200_response_allOf_data' type: object _answer_api_v1_question_tags_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.GetTagResp' type: array type: object _answer_api_v1_revisions_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.GetRevisionResp' type: array type: object _answer_api_v1_revisions_unreviewed_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetUnreviewedRevisionResp' type: array type: object type: object _answer_api_v1_revisions_unreviewed_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_revisions_unreviewed_get_200_response_allOf_data' type: object _answer_api_v1_search_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SearchResp' type: object _answer_api_v1_siteinfo_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.SiteInfoResp' type: object _answer_api_v1_siteinfo_legal_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetSiteLegalInfoResp' type: object _answer_api_v1_tag_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetTagResp' type: object _answer_api_v1_tag_synonyms_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetTagSynonymsResp' type: object _answer_api_v1_tags_following_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/schema.GetFollowingTagsResp' type: array type: object _answer_api_v1_tags_page_get_200_response_allOf_data: allOf: - $ref: '#/components/schemas/pager.PageModel' - properties: list: items: $ref: '#/definitions/schema.GetTagPageResp' type: array type: object type: object _answer_api_v1_tags_page_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/_answer_api_v1_tags_page_get_200_response_allOf_data' type: object _answer_api_v1_user_action_record_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.ActionRecordResp' type: object _answer_api_v1_user_email_verification_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.UserLoginResp' type: object _answer_api_v1_user_info_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetCurrentLoginUserInfoResp' type: object _answer_api_v1_user_notification_config_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.GetUserNotificationConfigResp' type: object _answer_api_v1_user_ranking_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.UserRankingResp' type: object _answer_api_v1_vote_down_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/schema.VoteResp' type: object _installation_config_file_check_post_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: $ref: '#/components/schemas/install.CheckConfigFileResp' type: object _installation_language_options_get_200_response: allOf: - $ref: '#/components/schemas/handler.RespBody' - properties: data: items: $ref: '#/components/schemas/translator.LangOption' type: array type: object securitySchemes: ApiKeyAuth: in: header name: Authorization type: apiKey x-original-swagger-version: "2.0"