halo/api-docs/openapi/v3_0/apis_public.api_v1alpha1.json

2096 lines
51 KiB
JSON

{
"openapi": "3.0.1",
"info": {
"title": "Halo",
"version": "2.17.0-SNAPSHOT"
},
"servers": [
{
"url": "http://localhost:8091",
"description": "Generated server url"
}
],
"security": [
{
"basicAuth": [],
"bearerAuth": []
}
],
"paths": {
"/apis/api.halo.run/v1alpha1/comments": {
"get": {
"description": "List comments.",
"operationId": "ListComments",
"parameters": [
{
"description": "Page number. Default is 0.",
"in": "query",
"name": "page",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"description": "Size number. Default is 0.",
"in": "query",
"name": "size",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
"in": "query",
"name": "sort",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"description": "The comment subject group.",
"in": "query",
"name": "group",
"schema": {
"type": "string"
}
},
{
"description": "The comment subject version.",
"in": "query",
"name": "version",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The comment subject kind.",
"in": "query",
"name": "kind",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The comment subject name.",
"in": "query",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Whether to include replies. Default is false.",
"in": "query",
"name": "withReplies",
"schema": {
"type": "boolean"
}
},
{
"description": "Reply size of the comment, default is 10, only works when withReplies is true.",
"in": "query",
"name": "replySize",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/CommentWithReplyVoList"
}
}
},
"description": "default response"
}
},
"tags": [
"CommentV1alpha1Public"
]
},
"post": {
"description": "Create a comment.",
"operationId": "CreateComment",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CommentRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Comment"
}
}
},
"description": "default response"
}
},
"tags": [
"CommentV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/comments/{name}": {
"get": {
"description": "Get a comment.",
"operationId": "GetComment",
"parameters": [
{
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/CommentVoList"
}
}
},
"description": "default response"
}
},
"tags": [
"CommentV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/comments/{name}/reply": {
"get": {
"description": "List comment replies.",
"operationId": "ListCommentReplies",
"parameters": [
{
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Page number. Default is 0.",
"in": "query",
"name": "page",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"description": "Size number. Default is 0.",
"in": "query",
"name": "size",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ReplyVoList"
}
}
},
"description": "default response"
}
},
"tags": [
"CommentV1alpha1Public"
]
},
"post": {
"description": "Create a reply.",
"operationId": "CreateReply",
"parameters": [
{
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReplyRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Reply"
}
}
},
"description": "default response"
}
},
"tags": [
"CommentV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/indices/-/search": {
"post": {
"description": "Search indices.",
"operationId": "IndicesSearch",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/SearchOption"
}
}
},
"description": "Please note that the \"filterPublished\", \"filterExposed\" and \"filterRecycled\" fields are ignored in this endpoint."
},
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/SearchResult"
}
}
},
"description": "default response"
}
},
"tags": [
"IndexV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/indices/post": {
"get": {
"deprecated": true,
"description": "Search posts with fuzzy query. This method is deprecated, please use POST /indices/-/search instead.",
"operationId": "SearchPost",
"parameters": [
{
"description": "Keyword to search",
"in": "query",
"name": "keyword",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Limit of search results",
"in": "query",
"name": "limit",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"description": "Highlight pre tag",
"in": "query",
"name": "highlightPreTag",
"schema": {
"type": "string"
}
},
{
"description": "Highlight post tag",
"in": "query",
"name": "highlightPostTag",
"schema": {
"type": "string"
}
}
],
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/SearchResult"
}
}
},
"description": "default response"
}
},
"tags": [
"IndexV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/menus/-": {
"get": {
"description": "Gets primary menu.",
"operationId": "queryPrimaryMenu",
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/MenuVo"
}
}
},
"description": "default response"
}
},
"tags": [
"MenuV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/menus/{name}": {
"get": {
"description": "Gets menu by name.",
"operationId": "queryMenuByName",
"parameters": [
{
"description": "Menu name",
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/MenuVo"
}
}
},
"description": "default response"
}
},
"tags": [
"MenuV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/stats/-": {
"get": {
"description": "Gets site stats",
"operationId": "queryStats",
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/SiteStatsVo"
}
}
},
"description": "default response"
}
},
"tags": [
"SystemV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/trackers/counter": {
"post": {
"description": "Count an extension resource visits.",
"operationId": "count",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CounterRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {},
"description": "default response"
}
},
"tags": [
"MetricsV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/trackers/downvote": {
"post": {
"description": "Downvote an extension resource.",
"operationId": "downvote",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VoteRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {},
"description": "default response"
}
},
"tags": [
"MetricsV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/trackers/upvote": {
"post": {
"description": "Upvote an extension resource.",
"operationId": "upvote",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VoteRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {},
"description": "default response"
}
},
"tags": [
"MetricsV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/users/-/send-password-reset-email": {
"post": {
"description": "Send password reset email when forgot password",
"operationId": "SendPasswordResetEmail",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PasswordResetEmailRequest"
}
}
},
"required": true
},
"responses": {
"204 NO_CONTENT": {
"content": {},
"description": "default response"
}
},
"tags": [
"UserV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/users/-/send-register-verify-email": {
"post": {
"description": "Send registration verification email, which can be called when mustVerifyEmailOnRegistration in user settings is true",
"operationId": "SendRegisterVerifyEmail",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/RegisterVerifyEmailRequest"
}
}
},
"required": true
},
"responses": {
"204 NO_CONTENT": {
"content": {},
"description": "default response"
}
},
"tags": [
"UserV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/users/-/signup": {
"post": {
"description": "Sign up a new user",
"operationId": "SignUp",
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/SignUpRequest"
}
}
},
"required": true
},
"responses": {
"default": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/User"
}
}
},
"description": "default response"
}
},
"tags": [
"UserV1alpha1Public"
]
}
},
"/apis/api.halo.run/v1alpha1/users/{name}/reset-password": {
"put": {
"description": "Reset password by token",
"operationId": "ResetPasswordByToken",
"parameters": [
{
"description": "The name of the user",
"in": "path",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ResetPasswordRequest"
}
}
},
"required": true
},
"responses": {
"204 NO_CONTENT": {
"content": {},
"description": "default response"
}
},
"tags": [
"UserV1alpha1Public"
]
}
}
},
"components": {
"schemas": {
"AddOperation": {
"required": [
"op",
"path",
"value"
],
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"add"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
},
"value": {
"description": "Value can be any JSON value"
}
}
},
"Comment": {
"required": [
"apiVersion",
"kind",
"metadata",
"spec"
],
"type": "object",
"properties": {
"apiVersion": {
"type": "string"
},
"kind": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"spec": {
"$ref": "#/components/schemas/CommentSpec"
},
"status": {
"$ref": "#/components/schemas/CommentStatus"
}
}
},
"CommentEmailOwner": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"website": {
"type": "string"
}
}
},
"CommentOwner": {
"required": [
"kind",
"name"
],
"type": "object",
"properties": {
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"displayName": {
"type": "string"
},
"kind": {
"minLength": 1,
"type": "string"
},
"name": {
"maxLength": 64,
"type": "string"
}
}
},
"CommentRequest": {
"required": [
"content",
"raw",
"subjectRef"
],
"type": "object",
"properties": {
"allowNotification": {
"type": "boolean",
"default": false
},
"content": {
"minLength": 1,
"type": "string"
},
"owner": {
"$ref": "#/components/schemas/CommentEmailOwner"
},
"raw": {
"minLength": 1,
"type": "string"
},
"subjectRef": {
"$ref": "#/components/schemas/Ref"
}
}
},
"CommentSpec": {
"required": [
"allowNotification",
"approved",
"content",
"hidden",
"owner",
"priority",
"raw",
"subjectRef",
"top"
],
"type": "object",
"properties": {
"allowNotification": {
"type": "boolean",
"default": true
},
"approved": {
"type": "boolean",
"default": false
},
"approvedTime": {
"type": "string",
"format": "date-time"
},
"content": {
"minLength": 1,
"type": "string"
},
"creationTime": {
"type": "string",
"format": "date-time"
},
"hidden": {
"type": "boolean",
"default": false
},
"ipAddress": {
"type": "string"
},
"lastReadTime": {
"type": "string",
"format": "date-time"
},
"owner": {
"$ref": "#/components/schemas/CommentOwner"
},
"priority": {
"type": "integer",
"format": "int32",
"default": 0
},
"raw": {
"minLength": 1,
"type": "string"
},
"subjectRef": {
"$ref": "#/components/schemas/Ref"
},
"top": {
"type": "boolean",
"default": false
},
"userAgent": {
"type": "string"
}
}
},
"CommentStatsVo": {
"type": "object",
"properties": {
"upvote": {
"type": "integer",
"format": "int32"
}
}
},
"CommentStatus": {
"type": "object",
"properties": {
"hasNewReply": {
"type": "boolean"
},
"lastReplyTime": {
"type": "string",
"format": "date-time"
},
"observedVersion": {
"type": "integer",
"format": "int64"
},
"replyCount": {
"type": "integer",
"format": "int32"
},
"unreadReplyCount": {
"type": "integer",
"format": "int32"
},
"visibleReplyCount": {
"type": "integer",
"format": "int32"
}
}
},
"CommentVo": {
"required": [
"metadata",
"owner",
"spec",
"stats"
],
"type": "object",
"properties": {
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"owner": {
"$ref": "#/components/schemas/OwnerInfo"
},
"spec": {
"$ref": "#/components/schemas/CommentSpec"
},
"stats": {
"$ref": "#/components/schemas/CommentStatsVo"
},
"status": {
"$ref": "#/components/schemas/CommentStatus"
}
},
"description": "A chunk of items."
},
"CommentVoList": {
"required": [
"first",
"hasNext",
"hasPrevious",
"items",
"last",
"page",
"size",
"total",
"totalPages"
],
"type": "object",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates whether current page is the first page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"items": {
"type": "array",
"description": "A chunk of items.",
"items": {
"$ref": "#/components/schemas/CommentVo"
}
},
"last": {
"type": "boolean",
"description": "Indicates whether current page is the last page."
},
"page": {
"type": "integer",
"description": "Page number, starts from 1. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"size": {
"type": "integer",
"description": "Size of each page. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"total": {
"type": "integer",
"description": "Total elements.",
"format": "int64"
},
"totalPages": {
"type": "integer",
"description": "Indicates total pages.",
"format": "int64"
}
}
},
"CommentWithReplyVo": {
"required": [
"metadata",
"owner",
"spec",
"stats"
],
"type": "object",
"properties": {
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"owner": {
"$ref": "#/components/schemas/OwnerInfo"
},
"replies": {
"$ref": "#/components/schemas/ListResultReplyVo"
},
"spec": {
"$ref": "#/components/schemas/CommentSpec"
},
"stats": {
"$ref": "#/components/schemas/CommentStatsVo"
},
"status": {
"$ref": "#/components/schemas/CommentStatus"
}
},
"description": "A chunk of items."
},
"CommentWithReplyVoList": {
"required": [
"first",
"hasNext",
"hasPrevious",
"items",
"last",
"page",
"size",
"total",
"totalPages"
],
"type": "object",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates whether current page is the first page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"items": {
"type": "array",
"description": "A chunk of items.",
"items": {
"$ref": "#/components/schemas/CommentWithReplyVo"
}
},
"last": {
"type": "boolean",
"description": "Indicates whether current page is the last page."
},
"page": {
"type": "integer",
"description": "Page number, starts from 1. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"size": {
"type": "integer",
"description": "Size of each page. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"total": {
"type": "integer",
"description": "Total elements.",
"format": "int64"
},
"totalPages": {
"type": "integer",
"description": "Indicates total pages.",
"format": "int64"
}
}
},
"CopyOperation": {
"required": [
"op",
"from",
"path"
],
"type": "object",
"properties": {
"from": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
},
"op": {
"type": "string",
"enum": [
"copy"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
}
}
},
"CounterRequest": {
"type": "object",
"properties": {
"group": {
"type": "string"
},
"hostname": {
"type": "string"
},
"language": {
"type": "string"
},
"name": {
"type": "string"
},
"plural": {
"type": "string"
},
"referrer": {
"type": "string"
},
"screen": {
"type": "string"
}
}
},
"HaloDocument": {
"required": [
"content",
"id",
"metadataName",
"ownerName",
"permalink",
"title",
"type"
],
"type": "object",
"properties": {
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string"
},
"creationTimestamp": {
"type": "string",
"format": "date-time"
},
"description": {
"type": "string"
},
"exposed": {
"type": "boolean"
},
"id": {
"type": "string"
},
"metadataName": {
"type": "string"
},
"ownerName": {
"type": "string"
},
"permalink": {
"type": "string"
},
"published": {
"type": "boolean"
},
"recycled": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"updateTimestamp": {
"type": "string",
"format": "date-time"
}
}
},
"JsonPatch": {
"minItems": 1,
"uniqueItems": true,
"type": "array",
"description": "JSON schema for JSONPatch operations",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/AddOperation"
},
{
"$ref": "#/components/schemas/ReplaceOperation"
},
{
"$ref": "#/components/schemas/TestOperation"
},
{
"$ref": "#/components/schemas/RemoveOperation"
},
{
"$ref": "#/components/schemas/MoveOperation"
},
{
"$ref": "#/components/schemas/CopyOperation"
}
]
}
},
"ListResultReplyVo": {
"required": [
"first",
"hasNext",
"hasPrevious",
"items",
"last",
"page",
"size",
"total",
"totalPages"
],
"type": "object",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates whether current page is the first page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"items": {
"type": "array",
"description": "A chunk of items.",
"items": {
"$ref": "#/components/schemas/ReplyVo"
}
},
"last": {
"type": "boolean",
"description": "Indicates whether current page is the last page."
},
"page": {
"type": "integer",
"description": "Page number, starts from 1. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"size": {
"type": "integer",
"description": "Size of each page. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"total": {
"type": "integer",
"description": "Total elements.",
"format": "int64"
},
"totalPages": {
"type": "integer",
"description": "Indicates total pages.",
"format": "int64"
}
}
},
"LoginHistory": {
"required": [
"loginAt",
"sourceIp",
"successful",
"userAgent"
],
"type": "object",
"properties": {
"loginAt": {
"type": "string",
"format": "date-time"
},
"reason": {
"type": "string"
},
"sourceIp": {
"type": "string"
},
"successful": {
"type": "boolean"
},
"userAgent": {
"type": "string"
}
}
},
"MenuItemSpec": {
"type": "object",
"properties": {
"children": {
"uniqueItems": true,
"type": "array",
"description": "Children of this menu item",
"items": {
"type": "string",
"description": "The name of menu item child"
}
},
"displayName": {
"type": "string",
"description": "The display name of menu item."
},
"href": {
"type": "string",
"description": "The href of this menu item."
},
"priority": {
"type": "integer",
"description": "The priority is for ordering.",
"format": "int32"
},
"target": {
"type": "string",
"description": "The \u003ca\u003e target attribute of this menu item.",
"enum": [
"_blank",
"_self",
"_parent",
"_top"
]
},
"targetRef": {
"$ref": "#/components/schemas/Ref"
}
}
},
"MenuItemStatus": {
"type": "object",
"properties": {
"displayName": {
"type": "string",
"description": "Calculated Display name of menu item."
},
"href": {
"type": "string",
"description": "Calculated href of manu item."
}
}
},
"MenuItemVo": {
"required": [
"metadata"
],
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"parentName": {
"type": "string"
},
"spec": {
"$ref": "#/components/schemas/MenuItemSpec"
},
"status": {
"$ref": "#/components/schemas/MenuItemStatus"
}
}
},
"MenuSpec": {
"required": [
"displayName"
],
"type": "object",
"properties": {
"displayName": {
"type": "string",
"description": "The display name of the menu."
},
"menuItems": {
"uniqueItems": true,
"type": "array",
"description": "Names of menu children below this menu.",
"items": {
"type": "string",
"description": "Names of menu children below this menu."
}
}
}
},
"MenuVo": {
"required": [
"metadata"
],
"type": "object",
"properties": {
"menuItems": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MenuItemVo"
}
},
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"spec": {
"$ref": "#/components/schemas/MenuSpec"
}
}
},
"Metadata": {
"required": [
"name"
],
"type": "object",
"properties": {
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"creationTimestamp": {
"type": "string",
"format": "date-time",
"nullable": true
},
"deletionTimestamp": {
"type": "string",
"format": "date-time",
"nullable": true
},
"finalizers": {
"uniqueItems": true,
"type": "array",
"nullable": true,
"items": {
"type": "string",
"nullable": true
}
},
"generateName": {
"type": "string",
"description": "The name field will be generated automatically according to the given generateName field"
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"name": {
"type": "string",
"description": "Metadata name"
},
"version": {
"type": "integer",
"format": "int64",
"nullable": true
}
}
},
"MoveOperation": {
"required": [
"op",
"from",
"path"
],
"type": "object",
"properties": {
"from": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
},
"op": {
"type": "string",
"enum": [
"move"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
}
}
},
"OwnerInfo": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"PasswordResetEmailRequest": {
"required": [
"email",
"username"
],
"type": "object",
"properties": {
"email": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"Ref": {
"required": [
"name"
],
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Extension group"
},
"kind": {
"type": "string",
"description": "Extension kind"
},
"name": {
"type": "string",
"description": "Extension name. This field is mandatory"
},
"version": {
"type": "string",
"description": "Extension version"
}
},
"description": "Extension reference object. The name is mandatory"
},
"RegisterVerifyEmailRequest": {
"required": [
"email"
],
"type": "object",
"properties": {
"email": {
"type": "string"
}
}
},
"RemoveOperation": {
"required": [
"op",
"path"
],
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"remove"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
}
}
},
"ReplaceOperation": {
"required": [
"op",
"path",
"value"
],
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"replace"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
},
"value": {
"description": "Value can be any JSON value"
}
}
},
"Reply": {
"required": [
"apiVersion",
"kind",
"metadata",
"spec",
"status"
],
"type": "object",
"properties": {
"apiVersion": {
"type": "string"
},
"kind": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"spec": {
"$ref": "#/components/schemas/ReplySpec"
},
"status": {
"$ref": "#/components/schemas/ReplyStatus"
}
}
},
"ReplyRequest": {
"required": [
"content",
"raw"
],
"type": "object",
"properties": {
"allowNotification": {
"type": "boolean",
"default": false
},
"content": {
"minLength": 1,
"type": "string"
},
"owner": {
"$ref": "#/components/schemas/CommentEmailOwner"
},
"quoteReply": {
"type": "string"
},
"raw": {
"minLength": 1,
"type": "string"
}
}
},
"ReplySpec": {
"required": [
"allowNotification",
"approved",
"commentName",
"content",
"hidden",
"owner",
"priority",
"raw",
"top"
],
"type": "object",
"properties": {
"allowNotification": {
"type": "boolean",
"default": true
},
"approved": {
"type": "boolean",
"default": false
},
"approvedTime": {
"type": "string",
"format": "date-time"
},
"commentName": {
"minLength": 1,
"type": "string"
},
"content": {
"minLength": 1,
"type": "string"
},
"creationTime": {
"type": "string",
"format": "date-time"
},
"hidden": {
"type": "boolean",
"default": false
},
"ipAddress": {
"type": "string"
},
"owner": {
"$ref": "#/components/schemas/CommentOwner"
},
"priority": {
"type": "integer",
"format": "int32",
"default": 0
},
"quoteReply": {
"type": "string"
},
"raw": {
"minLength": 1,
"type": "string"
},
"top": {
"type": "boolean",
"default": false
},
"userAgent": {
"type": "string"
}
}
},
"ReplyStatus": {
"type": "object",
"properties": {
"observedVersion": {
"type": "integer",
"format": "int64"
}
}
},
"ReplyVo": {
"required": [
"metadata",
"owner",
"spec",
"stats"
],
"type": "object",
"properties": {
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"owner": {
"$ref": "#/components/schemas/OwnerInfo"
},
"spec": {
"$ref": "#/components/schemas/ReplySpec"
},
"stats": {
"$ref": "#/components/schemas/CommentStatsVo"
}
},
"description": "A chunk of items."
},
"ReplyVoList": {
"required": [
"first",
"hasNext",
"hasPrevious",
"items",
"last",
"page",
"size",
"total",
"totalPages"
],
"type": "object",
"properties": {
"first": {
"type": "boolean",
"description": "Indicates whether current page is the first page."
},
"hasNext": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"hasPrevious": {
"type": "boolean",
"description": "Indicates whether current page has previous page."
},
"items": {
"type": "array",
"description": "A chunk of items.",
"items": {
"$ref": "#/components/schemas/ReplyVo"
}
},
"last": {
"type": "boolean",
"description": "Indicates whether current page is the last page."
},
"page": {
"type": "integer",
"description": "Page number, starts from 1. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"size": {
"type": "integer",
"description": "Size of each page. If not set or equal to 0, it means no pagination.",
"format": "int32"
},
"total": {
"type": "integer",
"description": "Total elements.",
"format": "int64"
},
"totalPages": {
"type": "integer",
"description": "Indicates total pages.",
"format": "int64"
}
}
},
"ResetPasswordRequest": {
"required": [
"newPassword",
"token"
],
"type": "object",
"properties": {
"newPassword": {
"minLength": 6,
"type": "string"
},
"token": {
"type": "string"
}
}
},
"SearchOption": {
"required": [
"keyword"
],
"type": "object",
"properties": {
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"filterExposed": {
"type": "boolean"
},
"filterPublished": {
"type": "boolean"
},
"filterRecycled": {
"type": "boolean"
},
"highlightPostTag": {
"type": "string"
},
"highlightPreTag": {
"type": "string"
},
"includeCategoryNames": {
"type": "array",
"items": {
"type": "string"
}
},
"includeOwnerNames": {
"type": "array",
"items": {
"type": "string"
}
},
"includeTagNames": {
"type": "array",
"items": {
"type": "string"
}
},
"includeTypes": {
"type": "array",
"items": {
"type": "string"
}
},
"keyword": {
"type": "string"
},
"limit": {
"maximum": 1000,
"minimum": 1,
"type": "integer",
"format": "int32"
}
}
},
"SearchResult": {
"type": "object",
"properties": {
"hits": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HaloDocument"
}
},
"keyword": {
"type": "string"
},
"limit": {
"type": "integer",
"format": "int32"
},
"processingTimeMillis": {
"type": "integer",
"format": "int64"
},
"total": {
"type": "integer",
"format": "int64"
}
}
},
"SignUpRequest": {
"required": [
"password",
"user"
],
"type": "object",
"properties": {
"password": {
"minLength": 6,
"type": "string"
},
"user": {
"$ref": "#/components/schemas/User"
},
"verifyCode": {
"maxLength": 6,
"minLength": 6,
"type": "string"
}
}
},
"SiteStatsVo": {
"type": "object",
"properties": {
"category": {
"type": "integer",
"format": "int32"
},
"comment": {
"type": "integer",
"format": "int32"
},
"post": {
"type": "integer",
"format": "int32"
},
"upvote": {
"type": "integer",
"format": "int32"
},
"visit": {
"type": "integer",
"format": "int32"
}
}
},
"TestOperation": {
"required": [
"op",
"path",
"value"
],
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"test"
]
},
"path": {
"pattern": "^(/[^/~]*(~[01][^/~]*)*)*$",
"type": "string",
"description": "A JSON Pointer path pointing to the location to move/copy from.",
"example": "/a/b/c"
},
"value": {
"description": "Value can be any JSON value"
}
}
},
"User": {
"required": [
"apiVersion",
"kind",
"metadata",
"spec"
],
"type": "object",
"properties": {
"apiVersion": {
"type": "string"
},
"kind": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/Metadata"
},
"spec": {
"$ref": "#/components/schemas/UserSpec"
},
"status": {
"$ref": "#/components/schemas/UserStatus"
}
}
},
"UserSpec": {
"required": [
"displayName",
"email"
],
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"bio": {
"type": "string"
},
"disabled": {
"type": "boolean"
},
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"emailVerified": {
"type": "boolean"
},
"loginHistoryLimit": {
"type": "integer",
"format": "int32"
},
"password": {
"type": "string"
},
"phone": {
"type": "string"
},
"registeredAt": {
"type": "string",
"format": "date-time"
},
"totpEncryptedSecret": {
"type": "string"
},
"twoFactorAuthEnabled": {
"type": "boolean"
}
}
},
"UserStatus": {
"type": "object",
"properties": {
"lastLoginAt": {
"type": "string",
"format": "date-time"
},
"loginHistories": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoginHistory"
}
},
"permalink": {
"type": "string"
}
}
},
"VoteRequest": {
"type": "object",
"properties": {
"group": {
"type": "string"
},
"name": {
"type": "string"
},
"plural": {
"type": "string"
}
}
}
},
"securitySchemes": {
"basicAuth": {
"scheme": "basic",
"type": "http"
},
"bearerAuth": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
}
}
}
}