/
githubmirror
/
halo
Обзор
Документация
Войти
/
githubmirror
/
halo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
api-docs/openapi/v3_0/aggregated.json
24 654 строки
672 KB
Ryan Wang
Support OAuth2 registration and email completion (#10209)
07 авг 2026, 18:56
Не верифицирован
07 авг 2026, 18:56
815292f
Код
Авторство
О чём код?
{ "openapi": "3.0.1", "info": { "title": "Halo", "version": "2.26.0-SNAPSHOT" }, "servers": [ { "url": "http://localhost:8091", "description": "Generated server url" } ], "security": [ { "basicAuth": [], "bearerAuth": [] } ], "paths": { "/api/v1alpha1/annotationsettings": { "get": { "description": "List AnnotationSetting", "operationId": "listAnnotationSetting", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSettingList" } } }, "description": "Response annotationsettings" } }, "tags": [ "AnnotationSettingV1alpha1" ] }, "post": { "description": "Create AnnotationSetting", "operationId": "createAnnotationSetting", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Fresh annotationsetting" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Response annotationsettings created just now" } }, "tags": [ "AnnotationSettingV1alpha1" ] } }, "/api/v1alpha1/annotationsettings/{name}": { "delete": { "description": "Delete AnnotationSetting", "operationId": "deleteAnnotationSetting", "parameters": [ { "description": "Name of annotationsetting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response annotationsetting deleted just now" } }, "tags": [ "AnnotationSettingV1alpha1" ] }, "get": { "description": "Get AnnotationSetting", "operationId": "getAnnotationSetting", "parameters": [ { "description": "Name of annotationsetting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Response single annotationsetting" } }, "tags": [ "AnnotationSettingV1alpha1" ] }, "patch": { "description": "Patch AnnotationSetting", "operationId": "patchAnnotationSetting", "parameters": [ { "description": "Name of annotationsetting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Response annotationsetting patched just now" } }, "tags": [ "AnnotationSettingV1alpha1" ] }, "put": { "description": "Update AnnotationSetting", "operationId": "updateAnnotationSetting", "parameters": [ { "description": "Name of annotationsetting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Updated annotationsetting" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AnnotationSetting" } } }, "description": "Response annotationsettings updated just now" } }, "tags": [ "AnnotationSettingV1alpha1" ] } }, "/api/v1alpha1/configmaps": { "get": { "description": "List ConfigMap", "operationId": "listConfigMap", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMapList" } } }, "description": "Response configmaps" } }, "tags": [ "ConfigMapV1alpha1" ] }, "post": { "description": "Create ConfigMap", "operationId": "createConfigMap", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Fresh configmap" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Response configmaps created just now" } }, "tags": [ "ConfigMapV1alpha1" ] } }, "/api/v1alpha1/configmaps/{name}": { "delete": { "description": "Delete ConfigMap", "operationId": "deleteConfigMap", "parameters": [ { "description": "Name of configmap", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response configmap deleted just now" } }, "tags": [ "ConfigMapV1alpha1" ] }, "get": { "description": "Get ConfigMap", "operationId": "getConfigMap", "parameters": [ { "description": "Name of configmap", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Response single configmap" } }, "tags": [ "ConfigMapV1alpha1" ] }, "patch": { "description": "Patch ConfigMap", "operationId": "patchConfigMap", "parameters": [ { "description": "Name of configmap", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Response configmap patched just now" } }, "tags": [ "ConfigMapV1alpha1" ] }, "put": { "description": "Update ConfigMap", "operationId": "updateConfigMap", "parameters": [ { "description": "Name of configmap", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Updated configmap" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "Response configmaps updated just now" } }, "tags": [ "ConfigMapV1alpha1" ] } }, "/api/v1alpha1/menuitems": { "get": { "description": "List MenuItem", "operationId": "listMenuItem", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItemList" } } }, "description": "Response menuitems" } }, "tags": [ "MenuItemV1alpha1" ] }, "post": { "description": "Create MenuItem", "operationId": "createMenuItem", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Fresh menuitem" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Response menuitems created just now" } }, "tags": [ "MenuItemV1alpha1" ] } }, "/api/v1alpha1/menuitems/{name}": { "delete": { "description": "Delete MenuItem", "operationId": "deleteMenuItem", "parameters": [ { "description": "Name of menuitem", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response menuitem deleted just now" } }, "tags": [ "MenuItemV1alpha1" ] }, "get": { "description": "Get MenuItem", "operationId": "getMenuItem", "parameters": [ { "description": "Name of menuitem", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Response single menuitem" } }, "tags": [ "MenuItemV1alpha1" ] }, "patch": { "description": "Patch MenuItem", "operationId": "patchMenuItem", "parameters": [ { "description": "Name of menuitem", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Response menuitem patched just now" } }, "tags": [ "MenuItemV1alpha1" ] }, "put": { "description": "Update MenuItem", "operationId": "updateMenuItem", "parameters": [ { "description": "Name of menuitem", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Updated menuitem" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItem" } } }, "description": "Response menuitems updated just now" } }, "tags": [ "MenuItemV1alpha1" ] } }, "/api/v1alpha1/menus": { "get": { "description": "List Menu", "operationId": "listMenu", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuList" } } }, "description": "Response menus" } }, "tags": [ "MenuV1alpha1" ] }, "post": { "description": "Create Menu", "operationId": "createMenu", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Fresh menu" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Response menus created just now" } }, "tags": [ "MenuV1alpha1" ] } }, "/api/v1alpha1/menus/{name}": { "delete": { "description": "Delete Menu", "operationId": "deleteMenu", "parameters": [ { "description": "Name of menu", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response menu deleted just now" } }, "tags": [ "MenuV1alpha1" ] }, "get": { "description": "Get Menu", "operationId": "getMenu", "parameters": [ { "description": "Name of menu", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Response single menu" } }, "tags": [ "MenuV1alpha1" ] }, "patch": { "description": "Patch Menu", "operationId": "patchMenu", "parameters": [ { "description": "Name of menu", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Response menu patched just now" } }, "tags": [ "MenuV1alpha1" ] }, "put": { "description": "Update Menu", "operationId": "updateMenu", "parameters": [ { "description": "Name of menu", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Updated menu" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "Response menus updated just now" } }, "tags": [ "MenuV1alpha1" ] } }, "/api/v1alpha1/rolebindings": { "get": { "description": "List RoleBinding", "operationId": "listRoleBinding", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBindingList" } } }, "description": "Response rolebindings" } }, "tags": [ "RoleBindingV1alpha1" ] }, "post": { "description": "Create RoleBinding", "operationId": "createRoleBinding", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Fresh rolebinding" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Response rolebindings created just now" } }, "tags": [ "RoleBindingV1alpha1" ] } }, "/api/v1alpha1/rolebindings/{name}": { "delete": { "description": "Delete RoleBinding", "operationId": "deleteRoleBinding", "parameters": [ { "description": "Name of rolebinding", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response rolebinding deleted just now" } }, "tags": [ "RoleBindingV1alpha1" ] }, "get": { "description": "Get RoleBinding", "operationId": "getRoleBinding", "parameters": [ { "description": "Name of rolebinding", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Response single rolebinding" } }, "tags": [ "RoleBindingV1alpha1" ] }, "patch": { "description": "Patch RoleBinding", "operationId": "patchRoleBinding", "parameters": [ { "description": "Name of rolebinding", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Response rolebinding patched just now" } }, "tags": [ "RoleBindingV1alpha1" ] }, "put": { "description": "Update RoleBinding", "operationId": "updateRoleBinding", "parameters": [ { "description": "Name of rolebinding", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Updated rolebinding" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleBinding" } } }, "description": "Response rolebindings updated just now" } }, "tags": [ "RoleBindingV1alpha1" ] } }, "/api/v1alpha1/roles": { "get": { "description": "List Role", "operationId": "listRole", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RoleList" } } }, "description": "Response roles" } }, "tags": [ "RoleV1alpha1" ] }, "post": { "description": "Create Role", "operationId": "createRole", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Fresh role" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Response roles created just now" } }, "tags": [ "RoleV1alpha1" ] } }, "/api/v1alpha1/roles/{name}": { "delete": { "description": "Delete Role", "operationId": "deleteRole", "parameters": [ { "description": "Name of role", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response role deleted just now" } }, "tags": [ "RoleV1alpha1" ] }, "get": { "description": "Get Role", "operationId": "getRole", "parameters": [ { "description": "Name of role", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Response single role" } }, "tags": [ "RoleV1alpha1" ] }, "patch": { "description": "Patch Role", "operationId": "patchRole", "parameters": [ { "description": "Name of role", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Response role patched just now" } }, "tags": [ "RoleV1alpha1" ] }, "put": { "description": "Update Role", "operationId": "updateRole", "parameters": [ { "description": "Name of role", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Updated role" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Role" } } }, "description": "Response roles updated just now" } }, "tags": [ "RoleV1alpha1" ] } }, "/api/v1alpha1/secrets": { "get": { "description": "List Secret", "operationId": "listSecret", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SecretList" } } }, "description": "Response secrets" } }, "tags": [ "SecretV1alpha1" ] }, "post": { "description": "Create Secret", "operationId": "createSecret", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Fresh secret" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Response secrets created just now" } }, "tags": [ "SecretV1alpha1" ] } }, "/api/v1alpha1/secrets/{name}": { "delete": { "description": "Delete Secret", "operationId": "deleteSecret", "parameters": [ { "description": "Name of secret", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response secret deleted just now" } }, "tags": [ "SecretV1alpha1" ] }, "get": { "description": "Get Secret", "operationId": "getSecret", "parameters": [ { "description": "Name of secret", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Response single secret" } }, "tags": [ "SecretV1alpha1" ] }, "patch": { "description": "Patch Secret", "operationId": "patchSecret", "parameters": [ { "description": "Name of secret", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Response secret patched just now" } }, "tags": [ "SecretV1alpha1" ] }, "put": { "description": "Update Secret", "operationId": "updateSecret", "parameters": [ { "description": "Name of secret", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Updated secret" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Secret" } } }, "description": "Response secrets updated just now" } }, "tags": [ "SecretV1alpha1" ] } }, "/api/v1alpha1/settings": { "get": { "description": "List Setting", "operationId": "listSetting", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SettingList" } } }, "description": "Response settings" } }, "tags": [ "SettingV1alpha1" ] }, "post": { "description": "Create Setting", "operationId": "createSetting", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Fresh setting" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Response settings created just now" } }, "tags": [ "SettingV1alpha1" ] } }, "/api/v1alpha1/settings/{name}": { "delete": { "description": "Delete Setting", "operationId": "deleteSetting", "parameters": [ { "description": "Name of setting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response setting deleted just now" } }, "tags": [ "SettingV1alpha1" ] }, "get": { "description": "Get Setting", "operationId": "getSetting", "parameters": [ { "description": "Name of setting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Response single setting" } }, "tags": [ "SettingV1alpha1" ] }, "patch": { "description": "Patch Setting", "operationId": "patchSetting", "parameters": [ { "description": "Name of setting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Response setting patched just now" } }, "tags": [ "SettingV1alpha1" ] }, "put": { "description": "Update Setting", "operationId": "updateSetting", "parameters": [ { "description": "Name of setting", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Updated setting" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "Response settings updated just now" } }, "tags": [ "SettingV1alpha1" ] } }, "/api/v1alpha1/users": { "get": { "description": "List User", "operationId": "listUser", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserList" } } }, "description": "Response users" } }, "tags": [ "UserV1alpha1" ] }, "post": { "description": "Create User", "operationId": "createUser", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Fresh user" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Response users created just now" } }, "tags": [ "UserV1alpha1" ] } }, "/api/v1alpha1/users/{name}": { "delete": { "description": "Delete User", "operationId": "deleteUser", "parameters": [ { "description": "Name of user", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response user deleted just now" } }, "tags": [ "UserV1alpha1" ] }, "get": { "description": "Get User", "operationId": "getUser", "parameters": [ { "description": "Name of user", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Response single user" } }, "tags": [ "UserV1alpha1" ] }, "patch": { "description": "Patch User", "operationId": "patchUser", "parameters": [ { "description": "Name of user", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Response user patched just now" } }, "tags": [ "UserV1alpha1" ] }, "put": { "description": "Update User", "operationId": "updateUser", "parameters": [ { "description": "Name of user", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Updated user" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "Response users updated just now" } }, "tags": [ "UserV1alpha1" ] } }, "/apis/api.console.halo.run/v1alpha1/attachments": { "get": { "description": "Search attachments with pagination, sorting, keyword, grouping, and media type filters.", "operationId": "SearchAttachments", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Filter attachments without group. This parameter will ignore group parameter.", "in": "query", "name": "ungrouped", "schema": { "type": "boolean" } }, { "description": "Keyword for searching.", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Acceptable media types.", "in": "query", "name": "accepts", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AttachmentList" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/attachments/-/upload-from-url": { "post": { "description": "Create an attachment by transferring a remote file from the provided URL to the specified storage policy.", "operationId": "ExternalTransferAttachment", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadFromUrlRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/attachments/upload": { "post": { "description": "Upload an attachment from a multipart file with the specified storage policy and optional group.", "operationId": "UploadAttachment", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/IUploadRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/auth-providers": { "get": { "description": "Lists all auth providers", "operationId": "listAuthProviders", "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListedAuthProvider" } } } }, "description": "default response" } }, "tags": [ "AuthProviderV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/auth-providers/{name}/disable": { "put": { "description": "Disables an auth provider", "operationId": "disableAuthProvider", "parameters": [ { "description": "metadata.name of the auth provider to disable.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "default response" } }, "tags": [ "AuthProviderV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/auth-providers/{name}/enable": { "put": { "description": "Enables an auth provider", "operationId": "enableAuthProvider", "parameters": [ { "description": "metadata.name of the auth provider to enable.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "default response" } }, "tags": [ "AuthProviderV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/categories/-/tree": { "get": { "description": "List Categories as a canonical tree for console category management.", "operationId": "ListCategoryTree", "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryTreeNode" } } } }, "description": "default response" } }, "tags": [ "CategoryV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/categories/{name}/position": { "put": { "description": "Move a Category within the Console category tree.", "operationId": "UpdateCategoryPosition", "parameters": [ { "description": "Category metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CategoryPositionRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryTreeNode" } } } }, "description": "default response" } }, "tags": [ "CategoryV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/comments": { "get": { "description": "List comments with pagination, sorting, keyword, and commenter filters.", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Keyword used to match the raw comment text.", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Kind of the commenter identity. Defaults to User when ownerName is provided.", "in": "query", "name": "ownerKind", "schema": { "type": "string" } }, { "description": "Name of the commenter identity to filter by.", "in": "query", "name": "ownerName", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedCommentList" } } }, "description": "default response" } }, "tags": [ "CommentV1alpha1Console" ] }, "post": { "description": "Create a comment for a subject. Console-created comments are created through the comment service with request IP and user agent captured.", "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": [ "CommentV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/comments/{name}/reply": { "post": { "description": "Create an approved reply under an existing comment.", "operationId": "CreateReply", "parameters": [ { "description": "metadata.name of the comment to reply to.", "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": [ "CommentV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/indices/-/rebuild": { "post": { "description": "Submit a request to rebuild all search indices.", "operationId": "RebuildAllIndices", "responses": { "202": { "description": "Accepted, rebuild request has been submitted." } }, "tags": [ "IndicesV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/menuitems/-/tree": { "get": { "description": "List MenuItems as a canonical tree for console menu management.", "operationId": "ListMenuItemTree", "parameters": [ { "description": "Menu metadata.name", "in": "query", "name": "menuName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MenuItemTreeNode" } } } }, "description": "default response" } }, "tags": [ "MenuItemV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/menuitems/{name}/position": { "put": { "description": "Move a MenuItem within its owning Menu.", "operationId": "UpdateMenuItemPosition", "parameters": [ { "description": "MenuItem metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MenuItemPositionRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MenuItemTreeNode" } } } }, "description": "default response" } }, "tags": [ "MenuItemV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/menus/{name}": { "delete": { "description": "Delete a Menu and MenuItems owned by the Menu.", "operationId": "DeleteMenu", "parameters": [ { "description": "Menu metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Menu" } } }, "description": "default response" } }, "tags": [ "MenuV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/notifiers/{name}/sender-config": { "get": { "description": "Fetch sender config of notifier", "operationId": "FetchSenderConfig", "parameters": [ { "description": "Notifier metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "NotifierV1alpha1Console" ] }, "post": { "description": "Save sender config of notifier", "operationId": "SaveSenderConfig", "parameters": [ { "description": "Notifier metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "default": { "content": {}, "description": "default response" } }, "tags": [ "NotifierV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins": { "get": { "description": "List plugins using query criteria and sort params", "operationId": "ListPlugins", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Keyword of plugin display name or description", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Whether the plugin is enabled", "in": "query", "name": "enabled", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PluginList" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/-/bundle.css": { "get": { "description": "Compatibility alias for the UI plugin CSS bundle.", "operationId": "fetchCssBundle", "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/-/bundle.js": { "get": { "description": "Compatibility alias for the UI plugin JS bundle.", "operationId": "fetchJsBundle", "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/-/install-from-uri": { "post": { "description": "Install a plugin from uri.", "operationId": "InstallPluginFromUri", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstallFromUriRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/install": { "post": { "description": "Install a plugin by uploading a Jar file.", "operationId": "InstallPlugin", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/PluginInstallRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/json-config": { "get": { "description": "Fetch converted json config of plugin by configured configMapName.", "operationId": "fetchPluginJsonConfig", "parameters": [ { "description": "metadata.name of the plugin whose JSON config will be fetched.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] }, "put": { "description": "Update the config of plugin setting.", "operationId": "updatePluginJsonConfig", "parameters": [ { "description": "metadata.name of the plugin whose JSON config will be updated.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "204": { "content": {}, "description": "No Content" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/plugin-state": { "put": { "description": "Change the running state of a plugin by metadata.name.", "operationId": "ChangePluginRunningState", "parameters": [ { "description": "metadata.name of the plugin whose running state will be changed.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PluginRunningStateRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/reload": { "put": { "description": "Reload a plugin by metadata.name.", "operationId": "reloadPlugin", "parameters": [ { "description": "metadata.name of the plugin to reload.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/reset-config": { "put": { "description": "Reset the configMap of plugin setting.", "operationId": "ResetPluginConfig", "parameters": [ { "description": "metadata.name of the plugin whose setting config will be reset.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/setting": { "get": { "description": "Fetch setting of plugin.", "operationId": "fetchPluginSetting", "parameters": [ { "description": "metadata.name of the plugin whose setting will be fetched.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/upgrade": { "post": { "description": "Upgrade a plugin by uploading a Jar file", "operationId": "UpgradePlugin", "parameters": [ { "description": "metadata.name of the plugin to upgrade.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/PluginInstallRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/plugins/{name}/upgrade-from-uri": { "post": { "description": "Upgrade a plugin from uri.", "operationId": "UpgradePluginFromUri", "parameters": [ { "description": "metadata.name of the plugin to upgrade.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpgradeFromUriRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts": { "get": { "description": "List posts with pagination, sorting, keyword, publish phase, and category filters.", "operationId": "ListPosts", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Filter posts by publish phase. Supported values follow PostPhase, such as DRAFT, PENDING_APPROVAL, PUBLISHED, or FAILED.", "in": "query", "name": "publishPhase", "schema": { "type": "string", "enum": [ "DRAFT", "PENDING_APPROVAL", "PUBLISHED", "FAILED" ] } }, { "description": "Keyword used to match post title, slug, or excerpt.", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Category metadata name used to include posts in that category and its child categories.", "in": "query", "name": "categoryWithChildren", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedPostList" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] }, "post": { "description": "Create a draft post together with its initial content.", "operationId": "DraftPost", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}": { "put": { "description": "Update post metadata, spec, and content in one request.", "operationId": "UpdateDraftPost", "parameters": [ { "description": "metadata.name of the post to update.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/content": { "delete": { "description": "Delete a content snapshot from a post and return the deleted content.", "operationId": "deletePostContent", "parameters": [ { "description": "metadata.name of the post.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Content snapshot metadata.name to delete.", "in": "query", "name": "snapshotName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] }, "get": { "description": "Fetch a post content snapshot reconstructed from its base snapshot.", "operationId": "fetchPostContent", "parameters": [ { "description": "metadata.name of the post.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Content snapshot metadata.name to fetch.", "in": "query", "name": "snapshotName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] }, "put": { "description": "Update only the content of an existing post.", "operationId": "UpdatePostContent", "parameters": [ { "description": "metadata.name of the post whose content will be updated.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Content" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/head-content": { "get": { "description": "Fetch the editable head content of a post.", "operationId": "fetchPostHeadContent", "parameters": [ { "description": "metadata.name of the post.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/publish": { "put": { "description": "Publish a post. By default, the request waits until the release snapshot is available.", "operationId": "PublishPost", "parameters": [ { "description": "metadata.name of the post to publish.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Snapshot metadata.name to publish. Defaults to the current base snapshot when no head snapshot exists.", "in": "query", "name": "headSnapshot", "schema": { "type": "string" } }, { "description": "Whether to return immediately after marking the post for publishing.", "in": "query", "name": "async", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/recycle": { "put": { "description": "Move a post to the recycle bin by marking it as deleted.", "operationId": "RecyclePost", "parameters": [ { "description": "metadata.name of the post to recycle.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/release-content": { "get": { "description": "Fetch the released content currently served for a published post.", "operationId": "fetchPostReleaseContent", "parameters": [ { "description": "metadata.name of the post.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/revert-content": { "put": { "description": "Restore the post content from a specified snapshot.", "operationId": "revertToSpecifiedSnapshotForPost", "parameters": [ { "description": "metadata.name of the post whose content will be restored.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevertSnapshotForPostParam" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/snapshot": { "get": { "description": "List content snapshots for a post.", "operationId": "listPostSnapshots", "parameters": [ { "description": "metadata.name of the post.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListedSnapshotDto" } } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/posts/{name}/unpublish": { "put": { "description": "Unpublish a post so it is no longer served as published content.", "operationId": "UnpublishPost", "parameters": [ { "description": "metadata.name of the post to unpublish.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/replies": { "get": { "description": "List replies for a comment with pagination, sorting, labels, and field selectors.", "operationId": "ListReplies", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Metadata name of the comment whose replies should be listed.", "in": "query", "name": "commentName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedReplyList" } } }, "description": "default response" } }, "tags": [ "ReplyV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages": { "get": { "description": "List single pages with pagination, sorting, keyword, publish phase, visibility, and contributor filters.", "operationId": "ListSinglePages", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Contributor user names used to filter single pages. A page matches when any listed contributor appears in status.contributors.", "in": "query", "name": "contributor", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Filter single pages by publish phase. Supported values follow PostPhase, such as DRAFT, PENDING_APPROVAL, PUBLISHED, or FAILED.", "in": "query", "name": "publishPhase", "schema": { "type": "string", "enum": [ "DRAFT", "PENDING_APPROVAL", "PUBLISHED", "FAILED" ] } }, { "description": "Filter single pages by visibility, such as PUBLIC, INTERNAL, or PRIVATE.", "in": "query", "name": "visible", "schema": { "type": "string", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" ] } }, { "description": "Keyword used to match single page title, slug, or excerpt.", "in": "query", "name": "keyword", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedSinglePageList" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] }, "post": { "description": "Create a draft single page together with its initial content.", "operationId": "DraftSinglePage", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SinglePageRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}": { "put": { "description": "Update single page metadata, spec, and content in one request.", "operationId": "UpdateDraftSinglePage", "parameters": [ { "description": "metadata.name of the single page to update.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SinglePageRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/content": { "delete": { "description": "Delete a content snapshot from a single page and return the deleted content.", "operationId": "deleteSinglePageContent", "parameters": [ { "description": "metadata.name of the single page.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Content snapshot metadata.name to delete.", "in": "query", "name": "snapshotName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] }, "get": { "description": "Fetch a single page content snapshot reconstructed from its base snapshot.", "operationId": "fetchSinglePageContent", "parameters": [ { "description": "metadata.name of the single page.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Content snapshot metadata.name to fetch.", "in": "query", "name": "snapshotName", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] }, "put": { "description": "Update only the content of an existing single page.", "operationId": "UpdateSinglePageContent", "parameters": [ { "description": "metadata.name of the single page whose content will be updated.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Content" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/head-content": { "get": { "description": "Fetch the editable head content of a single page.", "operationId": "fetchSinglePageHeadContent", "parameters": [ { "description": "metadata.name of the single page.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/publish": { "put": { "description": "Publish a single page. By default, the request waits until the release snapshot is available.", "operationId": "PublishSinglePage", "parameters": [ { "description": "metadata.name of the single page to publish.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Whether to return immediately after marking the single page for publishing.", "in": "query", "name": "async", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/release-content": { "get": { "description": "Fetch the released content currently served for a published single page.", "operationId": "fetchSinglePageReleaseContent", "parameters": [ { "description": "metadata.name of the single page.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ContentWrapper" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/revert-content": { "put": { "description": "Restore the single page content from a specified snapshot.", "operationId": "revertToSpecifiedSnapshotForSinglePage", "parameters": [ { "description": "metadata.name of the single page whose content will be restored.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevertSnapshotForSingleParam" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/singlepages/{name}/snapshot": { "get": { "description": "List content snapshots for a single page.", "operationId": "listSinglePageSnapshots", "parameters": [ { "description": "metadata.name of the single page.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListedSnapshotDto" } } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/stats": { "get": { "description": "Get stats.", "operationId": "getStats", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/DashboardStats" } } }, "description": "default response" } }, "tags": [ "SystemV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/tags": { "get": { "description": "List post tags with pagination, sorting, and keyword filtering.", "operationId": "ListPostTags", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Keyword used to match the tag display name or slug.", "in": "query", "name": "keyword", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TagList" } } }, "description": "default response" } }, "tags": [ "TagV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes": { "get": { "description": "List themes.", "operationId": "ListThemes", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Whether to list uninstalled themes.", "in": "query", "name": "uninstalled", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ThemeList" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/-/activation": { "get": { "description": "Fetch the activated theme.", "operationId": "fetchActivatedTheme", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/-/install-from-uri": { "post": { "description": "Install a theme from uri.", "operationId": "InstallThemeFromUri", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstallFromUriRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/install": { "post": { "description": "Install a theme by uploading a zip file.", "operationId": "InstallTheme", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/ThemeInstallRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/activation": { "put": { "description": "Activate a theme by metadata.name.", "operationId": "activateTheme", "parameters": [ { "description": "metadata.name of the theme to activate.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/invalidate-cache": { "put": { "description": "Invalidate theme template cache.", "operationId": "InvalidateCache", "parameters": [ { "description": "metadata.name of the theme whose template cache will be invalidated.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/json-config": { "get": { "description": "Fetch converted json config of theme by configured configMapName.", "operationId": "fetchThemeJsonConfig", "parameters": [ { "description": "metadata.name of the theme whose JSON config will be fetched.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] }, "put": { "description": "Update the configMap of theme setting.", "operationId": "updateThemeJsonConfig", "parameters": [ { "description": "metadata.name of the theme whose JSON config will be updated.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "204": { "content": {}, "description": "No Content" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/reload": { "put": { "description": "Reload theme setting.", "operationId": "Reload", "parameters": [ { "description": "metadata.name of the theme to reload.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/reset-config": { "put": { "description": "Reset the configMap of theme setting.", "operationId": "ResetThemeConfig", "parameters": [ { "description": "metadata.name of the theme whose setting config will be reset.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ConfigMap" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/setting": { "get": { "description": "Fetch setting of theme.", "operationId": "fetchThemeSetting", "parameters": [ { "description": "metadata.name of the theme whose setting will be fetched.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Setting" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/upgrade": { "post": { "description": "Upgrade theme", "operationId": "UpgradeTheme", "parameters": [ { "description": "metadata.name of the theme to upgrade.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/UpgradeRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/themes/{name}/upgrade-from-uri": { "post": { "description": "Upgrade a theme from uri.", "operationId": "UpgradeThemeFromUri", "parameters": [ { "description": "metadata.name of the theme to upgrade.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpgradeFromUriRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "default response" } }, "tags": [ "ThemeV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/ui-plugins/-/bundle.css": { "get": { "description": "Merge CSS bundles of enabled plugins and the activated theme into one.", "operationId": "fetchUiPluginCssBundle", "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "UiPluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/ui-plugins/-/bundle.js": { "get": { "description": "Merge JS bundles of enabled plugins and the activated theme into one.", "operationId": "fetchUiPluginJsBundle", "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "UiPluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/ui-plugins/-/providers": { "get": { "description": "Fetch the currently enabled UI provider descriptor.", "operationId": "fetchUiPluginProviders", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UiPluginProviderDescriptor" } } }, "description": "default response" } }, "tags": [ "UiPluginV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users": { "get": { "description": "List users", "operationId": "ListUsers", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Keyword to search", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Role metadata.name", "in": "query", "name": "role", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserEndpoint.ListedUserList" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] }, "post": { "description": "Creates a new user.", "operationId": "CreateUser", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CreateUserRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/-": { "get": { "description": "Get current user detail", "operationId": "GetCurrentUserDetail", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/DetailedUser" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] }, "put": { "description": "Update current user profile, but password.", "operationId": "UpdateCurrentUser", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/-/password": { "put": { "description": "Change own password of user.", "operationId": "ChangeOwnPassword", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ChangeOwnPasswordRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/-/send-email-verification-code": { "post": { "description": "Send email verification code for user", "operationId": "SendEmailVerificationCode", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EmailVerifyRequest" } } }, "required": true }, "responses": { "default": { "content": {}, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/-/verify-email": { "post": { "description": "Verify email for user by code.", "operationId": "VerifyEmail", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/VerifyCodeRequest" } } }, "required": true }, "responses": { "default": { "content": {}, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/{name}": { "get": { "description": "Get user detail by metadata.name", "operationId": "GetUserDetail", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/DetailedUser" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/{name}/avatar": { "delete": { "description": "delete user avatar", "operationId": "DeleteUserAvatar", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] }, "post": { "description": "upload user avatar", "operationId": "UploadUserAvatar", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/IAvatarUploadRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/{name}/password": { "put": { "description": "Change anyone password of user for admin.", "operationId": "ChangeAnyonePassword", "parameters": [ { "description": "User metadata.name. If the name is equal to \u0027-\u0027, it will change the password of current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ChangePasswordRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.console.halo.run/v1alpha1/users/{name}/permissions": { "get": { "description": "Get permissions of user", "operationId": "GetPermissions", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserPermission" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] }, "post": { "description": "Grant permissions to user", "operationId": "GrantPermission", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/GrantRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/api.content.halo.run/v1alpha1/categories": { "get": { "description": "Lists categories.", "operationId": "queryCategories", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CategoryVoList" } } }, "description": "default response" } }, "tags": [ "CategoryV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/categories/{name}": { "get": { "description": "Gets category by metadata.name.", "operationId": "queryCategoryByName", "parameters": [ { "description": "Category metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CategoryVo" } } }, "description": "default response" } }, "tags": [ "CategoryV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/categories/{name}/posts": { "get": { "description": "Lists posts by category metadata.name.", "operationId": "queryPostsByCategoryName", "parameters": [ { "description": "Category metadata.name", "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" } }, { "description": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedPostVoList" } } }, "description": "default response" } }, "tags": [ "CategoryV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/posts": { "get": { "description": "Lists posts.", "operationId": "queryPosts", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedPostVoList" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/posts/{name}": { "get": { "description": "Gets a post by metadata.name.", "operationId": "queryPostByName", "parameters": [ { "description": "Post metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PostVo" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/posts/{name}/navigation": { "get": { "description": "Gets a post navigation by metadata.name.", "operationId": "queryPostNavigationByName", "parameters": [ { "description": "Post metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Scope of navigation. Use \u0027category\u0027 to limit navigation to the post\u0027s primary category. Defaults to global scope.", "in": "query", "name": "scope", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NavigationPostVo" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/singlepages": { "get": { "description": "Lists single pages", "operationId": "querySinglePages", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedSinglePageVoList" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/singlepages/{name}": { "get": { "description": "Gets single page by metadata.name", "operationId": "querySinglePageByName", "parameters": [ { "description": "SinglePage metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePageVo" } } }, "description": "default response" } }, "tags": [ "SinglePageV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/tags": { "get": { "description": "Lists tags", "operationId": "queryTags", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TagVoList" } } }, "description": "default response" } }, "tags": [ "TagV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/tags/{name}": { "get": { "description": "Gets tag by metadata.name", "operationId": "queryTagByName", "parameters": [ { "description": "Tag metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TagVo" } } }, "description": "default response" } }, "tags": [ "TagV1alpha1Public" ] } }, "/apis/api.content.halo.run/v1alpha1/tags/{name}/posts": { "get": { "description": "Lists posts by tag metadata.name", "operationId": "queryPostsByTagName", "parameters": [ { "description": "Tag metadata.name", "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" } }, { "description": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedPostVo" } } }, "description": "default response" } }, "tags": [ "TagV1alpha1Public" ] } }, "/apis/api.halo.run/v1alpha1/comments": { "get": { "description": "List comments.", "operationId": "ListComments_1", "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 metadata.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_1", "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": [ { "description": "metadata.name of the comment to fetch.", "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": [ { "description": "metadata.name of the comment whose replies will be listed.", "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_1", "parameters": [ { "description": "metadata.name of the comment to reply to.", "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/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 metadata.name.", "operationId": "queryMenuByName", "parameters": [ { "description": "Menu metadata.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.notification.halo.run/v1alpha1/notifiers/{name}/receiver-config": { "get": { "description": "Fetch receiver config of notifier", "operationId": "FetchReceiverConfig", "parameters": [ { "description": "Notifier metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "NotifierV1alpha1Uc" ] }, "post": { "description": "Save receiver config of notifier", "operationId": "SaveReceiverConfig", "parameters": [ { "description": "Notifier metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "default": { "content": {}, "description": "default response" } }, "tags": [ "NotifierV1alpha1Uc" ] } }, "/apis/api.notification.halo.run/v1alpha1/subscriptions/{name}/unsubscribe": { "get": { "description": "Unsubscribe a subscription", "operationId": "Unsubscribe", "parameters": [ { "description": "Subscription name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Unsubscribe token", "in": "query", "name": "token", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Public" ] } }, "/apis/api.notification.halo.run/v1alpha1/userspaces/{username}/notification-preferences": { "get": { "description": "List notification preferences for the authenticated user.", "operationId": "ListUserNotificationPreferences", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonTypeNotifierMatrix" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] }, "post": { "description": "Save notification preferences for the authenticated user.", "operationId": "SaveUserNotificationPreferences", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonTypeNotifierCollectionRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonTypeNotifierMatrix" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] } }, "/apis/api.notification.halo.run/v1alpha1/userspaces/{username}/notifications": { "get": { "description": "List notifications for the authenticated user.", "operationId": "ListUserNotifications", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "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" } }, { "description": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationList" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] } }, "/apis/api.notification.halo.run/v1alpha1/userspaces/{username}/notifications/-/mark-specified-as-read": { "put": { "description": "Mark the specified notifications as read.", "operationId": "MarkNotificationsAsRead", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkSpecifiedRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "type": "string" } } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] } }, "/apis/api.notification.halo.run/v1alpha1/userspaces/{username}/notifications/{name}": { "delete": { "description": "Delete the specified notification.", "operationId": "DeleteSpecifiedNotification", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } }, { "description": "Notification metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] } }, "/apis/api.notification.halo.run/v1alpha1/userspaces/{username}/notifications/{name}/mark-as-read": { "put": { "description": "Mark the specified notification as read.", "operationId": "MarkNotificationAsRead", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } }, { "description": "Notification metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "default response" } }, "tags": [ "NotificationV1alpha1Uc" ] } }, "/apis/api.plugin.halo.run/v1alpha1/plugins/{name}/available": { "get": { "description": "Gets plugin available by metadata.name.", "operationId": "queryPluginAvailableByName", "parameters": [ { "description": "Plugin metadata.name", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "boolean" } } }, "description": "default response" } }, "tags": [ "PluginV1alpha1Public" ] } }, "/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri": { "get": { "description": "Get thumbnail by URI", "operationId": "GetThumbnailByUri", "parameters": [ { "description": "The URI of the image", "in": "query", "name": "uri", "required": true, "schema": { "type": "string" } }, { "description": "The size of the thumbnail", "in": "query", "name": "size", "required": true, "schema": { "type": "string", "enum": [ "S", "M", "L", "XL" ] } }, { "description": "The width of the thumbnail, if \u0027size\u0027 is not provided, this parameter will be used to determine the size", "in": "query", "name": "width", "schema": { "type": "integer", "enum": [ "400", "800", "1200", "1600" ] } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "string", "format": "binary" } } }, "description": "default response" } }, "tags": [ "ThumbnailV1alpha1Public" ] } }, "/apis/auth.halo.run/v1alpha1/authproviders": { "get": { "description": "List AuthProvider", "operationId": "listAuthProvider", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProviderList" } } }, "description": "Response authproviders" } }, "tags": [ "AuthProviderV1alpha1" ] }, "post": { "description": "Create AuthProvider", "operationId": "createAuthProvider", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Fresh authprovider" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Response authproviders created just now" } }, "tags": [ "AuthProviderV1alpha1" ] } }, "/apis/auth.halo.run/v1alpha1/authproviders/{name}": { "delete": { "description": "Delete AuthProvider", "operationId": "deleteAuthProvider", "parameters": [ { "description": "Name of authprovider", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response authprovider deleted just now" } }, "tags": [ "AuthProviderV1alpha1" ] }, "get": { "description": "Get AuthProvider", "operationId": "getAuthProvider", "parameters": [ { "description": "Name of authprovider", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Response single authprovider" } }, "tags": [ "AuthProviderV1alpha1" ] }, "patch": { "description": "Patch AuthProvider", "operationId": "patchAuthProvider", "parameters": [ { "description": "Name of authprovider", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Response authprovider patched just now" } }, "tags": [ "AuthProviderV1alpha1" ] }, "put": { "description": "Update AuthProvider", "operationId": "updateAuthProvider", "parameters": [ { "description": "Name of authprovider", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Updated authprovider" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AuthProvider" } } }, "description": "Response authproviders updated just now" } }, "tags": [ "AuthProviderV1alpha1" ] } }, "/apis/auth.halo.run/v1alpha1/userconnections": { "get": { "description": "List UserConnection", "operationId": "listUserConnection", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnectionList" } } }, "description": "Response userconnections" } }, "tags": [ "UserConnectionV1alpha1" ] }, "post": { "description": "Create UserConnection", "operationId": "createUserConnection", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Fresh userconnection" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Response userconnections created just now" } }, "tags": [ "UserConnectionV1alpha1" ] } }, "/apis/auth.halo.run/v1alpha1/userconnections/{name}": { "delete": { "description": "Delete UserConnection", "operationId": "deleteUserConnection", "parameters": [ { "description": "Name of userconnection", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response userconnection deleted just now" } }, "tags": [ "UserConnectionV1alpha1" ] }, "get": { "description": "Get UserConnection", "operationId": "getUserConnection", "parameters": [ { "description": "Name of userconnection", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Response single userconnection" } }, "tags": [ "UserConnectionV1alpha1" ] }, "patch": { "description": "Patch UserConnection", "operationId": "patchUserConnection", "parameters": [ { "description": "Name of userconnection", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Response userconnection patched just now" } }, "tags": [ "UserConnectionV1alpha1" ] }, "put": { "description": "Update UserConnection", "operationId": "updateUserConnection", "parameters": [ { "description": "Name of userconnection", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Updated userconnection" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UserConnection" } } }, "description": "Response userconnections updated just now" } }, "tags": [ "UserConnectionV1alpha1" ] } }, "/apis/console.api.halo.run/v1alpha1/systemconfigs/{group}": { "get": { "description": "Get system config by group", "operationId": "getSystemConfigByGroup", "parameters": [ { "description": "Group of the system config", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } }, "application/json": {} }, "description": "default response" } }, "tags": [ "SystemConfigV1alpha1Console" ] }, "put": { "description": "Update system config by group", "operationId": "updateSystemConfigByGroup", "parameters": [ { "description": "Group of the system config", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "type": "object" } } } }, "responses": { "204 NO_CONTENT": { "content": {}, "description": "default response" } }, "tags": [ "SystemConfigV1alpha1Console" ] } }, "/apis/console.api.migration.halo.run/v1alpha1/backup-files": { "get": { "description": "Get backup files from backup root.", "operationId": "getBackupFiles", "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BackupFile" } } } }, "description": "default response" } }, "tags": [ "MigrationV1alpha1Console" ] } }, "/apis/console.api.migration.halo.run/v1alpha1/backups/{name}/files/{filename}": { "get": { "description": "Download a file from the specified backup as an octet-stream attachment.", "operationId": "DownloadBackups", "parameters": [ { "description": "Backup metadata.name.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Backup filename.", "in": "path", "name": "filename", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "description": "Backup file downloaded successfully." } }, "tags": [ "MigrationV1alpha1Console" ] } }, "/apis/console.api.migration.halo.run/v1alpha1/restorations": { "post": { "description": "Restore backup by uploading file or providing download link or backup name.", "operationId": "RestoreBackup", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/RestoreRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "type": "string" } } }, "description": "Backup restored successfully." } }, "tags": [ "MigrationV1alpha1Console" ] } }, "/apis/console.api.notification.halo.run/v1alpha1/notifiers/default-email-notifier/verify-connection": { "post": { "description": "Verify email sender config.", "operationId": "VerifyEmailSenderConfig", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/EmailConfigValidationRequest" } } }, "required": true }, "responses": { "default": { "content": {}, "description": "default response" } }, "tags": [ "NotifierV1alpha1Console" ] } }, "/apis/console.api.security.halo.run/v1alpha1/users/{username}/disable": { "post": { "description": "Disable user by metadata.name", "operationId": "DisableUser", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "The user has been disabled." } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/console.api.security.halo.run/v1alpha1/users/{username}/enable": { "post": { "description": "Enable user by metadata.name", "operationId": "EnableUser", "parameters": [ { "description": "User metadata.name", "in": "path", "name": "username", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/User" } } }, "description": "The user has been enabled." } }, "tags": [ "UserV1alpha1Console" ] } }, "/apis/console.api.storage.halo.run/v1alpha1/attachments/-/match-permalinks": { "post": { "description": "Match URL strings against Attachment permalinks for console.", "operationId": "matchAttachmentPermalinksForConsole", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentPermalinkMatchRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AttachmentPermalinkMatchList" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Console" ] } }, "/apis/console.api.storage.halo.run/v1alpha1/attachments/-/upload": { "post": { "description": "Upload attachment endpoint for console.", "operationId": "uploadAttachmentForConsole", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/UploadForm" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Console" ] } }, "/apis/console.api.storage.halo.run/v1alpha1/policies/{name}/configs/{group}": { "get": { "description": "Get policy config by group", "operationId": "getPolicyConfigByGroup", "parameters": [ { "description": "metadata.name of the policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Config group name", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "PolicyAlpha1Console" ] }, "put": { "description": "Update policy config by group", "operationId": "updatePolicyConfigByGroup", "parameters": [ { "description": "metadata.name of the policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Config group name", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "204": { "description": "No Content" } }, "tags": [ "PolicyAlpha1Console" ] } }, "/apis/content.halo.run/v1alpha1/categories": { "get": { "description": "List Category", "operationId": "listCategory", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CategoryList" } } }, "description": "Response categories" } }, "tags": [ "CategoryV1alpha1" ] }, "post": { "description": "Create Category", "operationId": "createCategory", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Fresh category" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Response categories created just now" } }, "tags": [ "CategoryV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/categories/{name}": { "delete": { "description": "Delete Category", "operationId": "deleteCategory", "parameters": [ { "description": "Name of category", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response category deleted just now" } }, "tags": [ "CategoryV1alpha1" ] }, "get": { "description": "Get Category", "operationId": "getCategory", "parameters": [ { "description": "Name of category", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Response single category" } }, "tags": [ "CategoryV1alpha1" ] }, "patch": { "description": "Patch Category", "operationId": "patchCategory", "parameters": [ { "description": "Name of category", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Response category patched just now" } }, "tags": [ "CategoryV1alpha1" ] }, "put": { "description": "Update Category", "operationId": "updateCategory", "parameters": [ { "description": "Name of category", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Updated category" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Category" } } }, "description": "Response categories updated just now" } }, "tags": [ "CategoryV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/comments": { "get": { "description": "List Comment", "operationId": "listComment", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CommentList" } } }, "description": "Response comments" } }, "tags": [ "CommentV1alpha1" ] }, "post": { "description": "Create Comment", "operationId": "createComment", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Fresh comment" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Response comments created just now" } }, "tags": [ "CommentV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/comments/{name}": { "delete": { "description": "Delete Comment", "operationId": "deleteComment", "parameters": [ { "description": "Name of comment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response comment deleted just now" } }, "tags": [ "CommentV1alpha1" ] }, "get": { "description": "Get Comment", "operationId": "getComment", "parameters": [ { "description": "Name of comment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Response single comment" } }, "tags": [ "CommentV1alpha1" ] }, "patch": { "description": "Patch Comment", "operationId": "patchComment", "parameters": [ { "description": "Name of comment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Response comment patched just now" } }, "tags": [ "CommentV1alpha1" ] }, "put": { "description": "Update Comment", "operationId": "updateComment", "parameters": [ { "description": "Name of comment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Updated comment" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Comment" } } }, "description": "Response comments updated just now" } }, "tags": [ "CommentV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/posts": { "get": { "description": "List Post", "operationId": "listPost", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PostList" } } }, "description": "Response posts" } }, "tags": [ "PostV1alpha1" ] }, "post": { "description": "Create Post", "operationId": "createPost", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Fresh post" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Response posts created just now" } }, "tags": [ "PostV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/posts/{name}": { "delete": { "description": "Delete Post", "operationId": "deletePost", "parameters": [ { "description": "Name of post", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response post deleted just now" } }, "tags": [ "PostV1alpha1" ] }, "get": { "description": "Get Post", "operationId": "getPost", "parameters": [ { "description": "Name of post", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Response single post" } }, "tags": [ "PostV1alpha1" ] }, "patch": { "description": "Patch Post", "operationId": "patchPost", "parameters": [ { "description": "Name of post", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Response post patched just now" } }, "tags": [ "PostV1alpha1" ] }, "put": { "description": "Update Post", "operationId": "updatePost", "parameters": [ { "description": "Name of post", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Updated post" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Response posts updated just now" } }, "tags": [ "PostV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/replies": { "get": { "description": "List Reply", "operationId": "listReply", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReplyList" } } }, "description": "Response replies" } }, "tags": [ "ReplyV1alpha1" ] }, "post": { "description": "Create Reply", "operationId": "createReply", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Fresh reply" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Response replies created just now" } }, "tags": [ "ReplyV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/replies/{name}": { "delete": { "description": "Delete Reply", "operationId": "deleteReply", "parameters": [ { "description": "Name of reply", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response reply deleted just now" } }, "tags": [ "ReplyV1alpha1" ] }, "get": { "description": "Get Reply", "operationId": "getReply", "parameters": [ { "description": "Name of reply", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Response single reply" } }, "tags": [ "ReplyV1alpha1" ] }, "patch": { "description": "Patch Reply", "operationId": "patchReply", "parameters": [ { "description": "Name of reply", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Response reply patched just now" } }, "tags": [ "ReplyV1alpha1" ] }, "put": { "description": "Update Reply", "operationId": "updateReply", "parameters": [ { "description": "Name of reply", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Updated reply" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reply" } } }, "description": "Response replies updated just now" } }, "tags": [ "ReplyV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/singlepages": { "get": { "description": "List SinglePage", "operationId": "listSinglePage", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePageList" } } }, "description": "Response singlepages" } }, "tags": [ "SinglePageV1alpha1" ] }, "post": { "description": "Create SinglePage", "operationId": "createSinglePage", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Fresh singlepage" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Response singlepages created just now" } }, "tags": [ "SinglePageV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/singlepages/{name}": { "delete": { "description": "Delete SinglePage", "operationId": "deleteSinglePage", "parameters": [ { "description": "Name of singlepage", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response singlepage deleted just now" } }, "tags": [ "SinglePageV1alpha1" ] }, "get": { "description": "Get SinglePage", "operationId": "getSinglePage", "parameters": [ { "description": "Name of singlepage", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Response single singlepage" } }, "tags": [ "SinglePageV1alpha1" ] }, "patch": { "description": "Patch SinglePage", "operationId": "patchSinglePage", "parameters": [ { "description": "Name of singlepage", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Response singlepage patched just now" } }, "tags": [ "SinglePageV1alpha1" ] }, "put": { "description": "Update SinglePage", "operationId": "updateSinglePage", "parameters": [ { "description": "Name of singlepage", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Updated singlepage" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SinglePage" } } }, "description": "Response singlepages updated just now" } }, "tags": [ "SinglePageV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/snapshots": { "get": { "description": "List Snapshot", "operationId": "listSnapshot", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SnapshotList" } } }, "description": "Response snapshots" } }, "tags": [ "SnapshotV1alpha1" ] }, "post": { "description": "Create Snapshot", "operationId": "createSnapshot", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Fresh snapshot" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Response snapshots created just now" } }, "tags": [ "SnapshotV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/snapshots/{name}": { "delete": { "description": "Delete Snapshot", "operationId": "deleteSnapshot", "parameters": [ { "description": "Name of snapshot", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response snapshot deleted just now" } }, "tags": [ "SnapshotV1alpha1" ] }, "get": { "description": "Get Snapshot", "operationId": "getSnapshot", "parameters": [ { "description": "Name of snapshot", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Response single snapshot" } }, "tags": [ "SnapshotV1alpha1" ] }, "patch": { "description": "Patch Snapshot", "operationId": "patchSnapshot", "parameters": [ { "description": "Name of snapshot", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Response snapshot patched just now" } }, "tags": [ "SnapshotV1alpha1" ] }, "put": { "description": "Update Snapshot", "operationId": "updateSnapshot", "parameters": [ { "description": "Name of snapshot", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Updated snapshot" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Response snapshots updated just now" } }, "tags": [ "SnapshotV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/tags": { "get": { "description": "List Tag", "operationId": "listTag", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TagList" } } }, "description": "Response tags" } }, "tags": [ "TagV1alpha1" ] }, "post": { "description": "Create Tag", "operationId": "createTag", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Fresh tag" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Response tags created just now" } }, "tags": [ "TagV1alpha1" ] } }, "/apis/content.halo.run/v1alpha1/tags/{name}": { "delete": { "description": "Delete Tag", "operationId": "deleteTag", "parameters": [ { "description": "Name of tag", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response tag deleted just now" } }, "tags": [ "TagV1alpha1" ] }, "get": { "description": "Get Tag", "operationId": "getTag", "parameters": [ { "description": "Name of tag", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Response single tag" } }, "tags": [ "TagV1alpha1" ] }, "patch": { "description": "Patch Tag", "operationId": "patchTag", "parameters": [ { "description": "Name of tag", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Response tag patched just now" } }, "tags": [ "TagV1alpha1" ] }, "put": { "description": "Update Tag", "operationId": "updateTag", "parameters": [ { "description": "Name of tag", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Updated tag" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Tag" } } }, "description": "Response tags updated just now" } }, "tags": [ "TagV1alpha1" ] } }, "/apis/metrics.halo.run/v1alpha1/counters": { "get": { "description": "List Counter", "operationId": "listCounter", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/CounterList" } } }, "description": "Response counters" } }, "tags": [ "CounterV1alpha1" ] }, "post": { "description": "Create Counter", "operationId": "createCounter", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Fresh counter" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Response counters created just now" } }, "tags": [ "CounterV1alpha1" ] } }, "/apis/metrics.halo.run/v1alpha1/counters/{name}": { "delete": { "description": "Delete Counter", "operationId": "deleteCounter", "parameters": [ { "description": "Name of counter", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response counter deleted just now" } }, "tags": [ "CounterV1alpha1" ] }, "get": { "description": "Get Counter", "operationId": "getCounter", "parameters": [ { "description": "Name of counter", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Response single counter" } }, "tags": [ "CounterV1alpha1" ] }, "patch": { "description": "Patch Counter", "operationId": "patchCounter", "parameters": [ { "description": "Name of counter", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Response counter patched just now" } }, "tags": [ "CounterV1alpha1" ] }, "put": { "description": "Update Counter", "operationId": "updateCounter", "parameters": [ { "description": "Name of counter", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Updated counter" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Counter" } } }, "description": "Response counters updated just now" } }, "tags": [ "CounterV1alpha1" ] } }, "/apis/migration.halo.run/v1alpha1/backups": { "get": { "description": "List Backup", "operationId": "listBackup", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/BackupList" } } }, "description": "Response backups" } }, "tags": [ "BackupV1alpha1" ] }, "post": { "description": "Create Backup", "operationId": "createBackup", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Fresh backup" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Response backups created just now" } }, "tags": [ "BackupV1alpha1" ] } }, "/apis/migration.halo.run/v1alpha1/backups/{name}": { "delete": { "description": "Delete Backup", "operationId": "deleteBackup", "parameters": [ { "description": "Name of backup", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response backup deleted just now" } }, "tags": [ "BackupV1alpha1" ] }, "get": { "description": "Get Backup", "operationId": "getBackup", "parameters": [ { "description": "Name of backup", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Response single backup" } }, "tags": [ "BackupV1alpha1" ] }, "patch": { "description": "Patch Backup", "operationId": "patchBackup", "parameters": [ { "description": "Name of backup", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Response backup patched just now" } }, "tags": [ "BackupV1alpha1" ] }, "put": { "description": "Update Backup", "operationId": "updateBackup", "parameters": [ { "description": "Name of backup", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Updated backup" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Backup" } } }, "description": "Response backups updated just now" } }, "tags": [ "BackupV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notifications": { "get": { "description": "List Notification", "operationId": "listNotification", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationList" } } }, "description": "Response notifications" } }, "tags": [ "NotificationV1alpha1" ] }, "post": { "description": "Create Notification", "operationId": "createNotification", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Fresh notification" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Response notifications created just now" } }, "tags": [ "NotificationV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notifications/{name}": { "delete": { "description": "Delete Notification", "operationId": "deleteNotification", "parameters": [ { "description": "Name of notification", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response notification deleted just now" } }, "tags": [ "NotificationV1alpha1" ] }, "get": { "description": "Get Notification", "operationId": "getNotification", "parameters": [ { "description": "Name of notification", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Response single notification" } }, "tags": [ "NotificationV1alpha1" ] }, "patch": { "description": "Patch Notification", "operationId": "patchNotification", "parameters": [ { "description": "Name of notification", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Response notification patched just now" } }, "tags": [ "NotificationV1alpha1" ] }, "put": { "description": "Update Notification", "operationId": "updateNotification", "parameters": [ { "description": "Name of notification", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Updated notification" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Notification" } } }, "description": "Response notifications updated just now" } }, "tags": [ "NotificationV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notificationtemplates": { "get": { "description": "List NotificationTemplate", "operationId": "listNotificationTemplate", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplateList" } } }, "description": "Response notificationtemplates" } }, "tags": [ "NotificationTemplateV1alpha1" ] }, "post": { "description": "Create NotificationTemplate", "operationId": "createNotificationTemplate", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Fresh notificationtemplate" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Response notificationtemplates created just now" } }, "tags": [ "NotificationTemplateV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notificationtemplates/{name}": { "delete": { "description": "Delete NotificationTemplate", "operationId": "deleteNotificationTemplate", "parameters": [ { "description": "Name of notificationtemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response notificationtemplate deleted just now" } }, "tags": [ "NotificationTemplateV1alpha1" ] }, "get": { "description": "Get NotificationTemplate", "operationId": "getNotificationTemplate", "parameters": [ { "description": "Name of notificationtemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Response single notificationtemplate" } }, "tags": [ "NotificationTemplateV1alpha1" ] }, "patch": { "description": "Patch NotificationTemplate", "operationId": "patchNotificationTemplate", "parameters": [ { "description": "Name of notificationtemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Response notificationtemplate patched just now" } }, "tags": [ "NotificationTemplateV1alpha1" ] }, "put": { "description": "Update NotificationTemplate", "operationId": "updateNotificationTemplate", "parameters": [ { "description": "Name of notificationtemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Updated notificationtemplate" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotificationTemplate" } } }, "description": "Response notificationtemplates updated just now" } }, "tags": [ "NotificationTemplateV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notifierDescriptors": { "get": { "description": "List NotifierDescriptor", "operationId": "listNotifierDescriptor", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptorList" } } }, "description": "Response notifierDescriptors" } }, "tags": [ "NotifierDescriptorV1alpha1" ] }, "post": { "description": "Create NotifierDescriptor", "operationId": "createNotifierDescriptor", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Fresh notifierDescriptor" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Response notifierDescriptors created just now" } }, "tags": [ "NotifierDescriptorV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/notifierDescriptors/{name}": { "delete": { "description": "Delete NotifierDescriptor", "operationId": "deleteNotifierDescriptor", "parameters": [ { "description": "Name of notifierDescriptor", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response notifierDescriptor deleted just now" } }, "tags": [ "NotifierDescriptorV1alpha1" ] }, "get": { "description": "Get NotifierDescriptor", "operationId": "getNotifierDescriptor", "parameters": [ { "description": "Name of notifierDescriptor", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Response single notifierDescriptor" } }, "tags": [ "NotifierDescriptorV1alpha1" ] }, "patch": { "description": "Patch NotifierDescriptor", "operationId": "patchNotifierDescriptor", "parameters": [ { "description": "Name of notifierDescriptor", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Response notifierDescriptor patched just now" } }, "tags": [ "NotifierDescriptorV1alpha1" ] }, "put": { "description": "Update NotifierDescriptor", "operationId": "updateNotifierDescriptor", "parameters": [ { "description": "Name of notifierDescriptor", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Updated notifierDescriptor" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/NotifierDescriptor" } } }, "description": "Response notifierDescriptors updated just now" } }, "tags": [ "NotifierDescriptorV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/reasons": { "get": { "description": "List Reason", "operationId": "listReason", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonList" } } }, "description": "Response reasons" } }, "tags": [ "ReasonV1alpha1" ] }, "post": { "description": "Create Reason", "operationId": "createReason", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Fresh reason" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Response reasons created just now" } }, "tags": [ "ReasonV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/reasons/{name}": { "delete": { "description": "Delete Reason", "operationId": "deleteReason", "parameters": [ { "description": "Name of reason", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response reason deleted just now" } }, "tags": [ "ReasonV1alpha1" ] }, "get": { "description": "Get Reason", "operationId": "getReason", "parameters": [ { "description": "Name of reason", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Response single reason" } }, "tags": [ "ReasonV1alpha1" ] }, "patch": { "description": "Patch Reason", "operationId": "patchReason", "parameters": [ { "description": "Name of reason", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Response reason patched just now" } }, "tags": [ "ReasonV1alpha1" ] }, "put": { "description": "Update Reason", "operationId": "updateReason", "parameters": [ { "description": "Name of reason", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Updated reason" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Reason" } } }, "description": "Response reasons updated just now" } }, "tags": [ "ReasonV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/reasontypes": { "get": { "description": "List ReasonType", "operationId": "listReasonType", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonTypeList" } } }, "description": "Response reasontypes" } }, "tags": [ "ReasonTypeV1alpha1" ] }, "post": { "description": "Create ReasonType", "operationId": "createReasonType", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Fresh reasontype" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Response reasontypes created just now" } }, "tags": [ "ReasonTypeV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/reasontypes/{name}": { "delete": { "description": "Delete ReasonType", "operationId": "deleteReasonType", "parameters": [ { "description": "Name of reasontype", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response reasontype deleted just now" } }, "tags": [ "ReasonTypeV1alpha1" ] }, "get": { "description": "Get ReasonType", "operationId": "getReasonType", "parameters": [ { "description": "Name of reasontype", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Response single reasontype" } }, "tags": [ "ReasonTypeV1alpha1" ] }, "patch": { "description": "Patch ReasonType", "operationId": "patchReasonType", "parameters": [ { "description": "Name of reasontype", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Response reasontype patched just now" } }, "tags": [ "ReasonTypeV1alpha1" ] }, "put": { "description": "Update ReasonType", "operationId": "updateReasonType", "parameters": [ { "description": "Name of reasontype", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Updated reasontype" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReasonType" } } }, "description": "Response reasontypes updated just now" } }, "tags": [ "ReasonTypeV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/subscriptions": { "get": { "description": "List Subscription", "operationId": "listSubscription", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/SubscriptionList" } } }, "description": "Response subscriptions" } }, "tags": [ "SubscriptionV1alpha1" ] }, "post": { "description": "Create Subscription", "operationId": "createSubscription", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Fresh subscription" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Response subscriptions created just now" } }, "tags": [ "SubscriptionV1alpha1" ] } }, "/apis/notification.halo.run/v1alpha1/subscriptions/{name}": { "delete": { "description": "Delete Subscription", "operationId": "deleteSubscription", "parameters": [ { "description": "Name of subscription", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response subscription deleted just now" } }, "tags": [ "SubscriptionV1alpha1" ] }, "get": { "description": "Get Subscription", "operationId": "getSubscription", "parameters": [ { "description": "Name of subscription", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Response single subscription" } }, "tags": [ "SubscriptionV1alpha1" ] }, "patch": { "description": "Patch Subscription", "operationId": "patchSubscription", "parameters": [ { "description": "Name of subscription", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Response subscription patched just now" } }, "tags": [ "SubscriptionV1alpha1" ] }, "put": { "description": "Update Subscription", "operationId": "updateSubscription", "parameters": [ { "description": "Name of subscription", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Updated subscription" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Subscription" } } }, "description": "Response subscriptions updated just now" } }, "tags": [ "SubscriptionV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/extensiondefinitions": { "get": { "description": "List ExtensionDefinition", "operationId": "listExtensionDefinition", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinitionList" } } }, "description": "Response extensiondefinitions" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] }, "post": { "description": "Create ExtensionDefinition", "operationId": "createExtensionDefinition", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Fresh extensiondefinition" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Response extensiondefinitions created just now" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/extensiondefinitions/{name}": { "delete": { "description": "Delete ExtensionDefinition", "operationId": "deleteExtensionDefinition", "parameters": [ { "description": "Name of extensiondefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response extensiondefinition deleted just now" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] }, "get": { "description": "Get ExtensionDefinition", "operationId": "getExtensionDefinition", "parameters": [ { "description": "Name of extensiondefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Response single extensiondefinition" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] }, "patch": { "description": "Patch ExtensionDefinition", "operationId": "patchExtensionDefinition", "parameters": [ { "description": "Name of extensiondefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Response extensiondefinition patched just now" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] }, "put": { "description": "Update ExtensionDefinition", "operationId": "updateExtensionDefinition", "parameters": [ { "description": "Name of extensiondefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Updated extensiondefinition" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionDefinition" } } }, "description": "Response extensiondefinitions updated just now" } }, "tags": [ "ExtensionDefinitionV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/extensionpointdefinitions": { "get": { "description": "List ExtensionPointDefinition", "operationId": "listExtensionPointDefinition", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinitionList" } } }, "description": "Response extensionpointdefinitions" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] }, "post": { "description": "Create ExtensionPointDefinition", "operationId": "createExtensionPointDefinition", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Fresh extensionpointdefinition" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Response extensionpointdefinitions created just now" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/extensionpointdefinitions/{name}": { "delete": { "description": "Delete ExtensionPointDefinition", "operationId": "deleteExtensionPointDefinition", "parameters": [ { "description": "Name of extensionpointdefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response extensionpointdefinition deleted just now" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] }, "get": { "description": "Get ExtensionPointDefinition", "operationId": "getExtensionPointDefinition", "parameters": [ { "description": "Name of extensionpointdefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Response single extensionpointdefinition" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] }, "patch": { "description": "Patch ExtensionPointDefinition", "operationId": "patchExtensionPointDefinition", "parameters": [ { "description": "Name of extensionpointdefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Response extensionpointdefinition patched just now" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] }, "put": { "description": "Update ExtensionPointDefinition", "operationId": "updateExtensionPointDefinition", "parameters": [ { "description": "Name of extensionpointdefinition", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Updated extensionpointdefinition" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ExtensionPointDefinition" } } }, "description": "Response extensionpointdefinitions updated just now" } }, "tags": [ "ExtensionPointDefinitionV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/plugins": { "get": { "description": "List Plugin", "operationId": "listPlugin", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PluginList" } } }, "description": "Response plugins" } }, "tags": [ "PluginV1alpha1" ] }, "post": { "description": "Create Plugin", "operationId": "createPlugin", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Fresh plugin" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Response plugins created just now" } }, "tags": [ "PluginV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/plugins/{name}": { "delete": { "description": "Delete Plugin", "operationId": "deletePlugin", "parameters": [ { "description": "Name of plugin", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response plugin deleted just now" } }, "tags": [ "PluginV1alpha1" ] }, "get": { "description": "Get Plugin", "operationId": "getPlugin", "parameters": [ { "description": "Name of plugin", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Response single plugin" } }, "tags": [ "PluginV1alpha1" ] }, "patch": { "description": "Patch Plugin", "operationId": "patchPlugin", "parameters": [ { "description": "Name of plugin", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Response plugin patched just now" } }, "tags": [ "PluginV1alpha1" ] }, "put": { "description": "Update Plugin", "operationId": "updatePlugin", "parameters": [ { "description": "Name of plugin", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Updated plugin" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Plugin" } } }, "description": "Response plugins updated just now" } }, "tags": [ "PluginV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/reverseproxies": { "get": { "description": "List ReverseProxy", "operationId": "listReverseProxy", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxyList" } } }, "description": "Response reverseproxies" } }, "tags": [ "ReverseProxyV1alpha1" ] }, "post": { "description": "Create ReverseProxy", "operationId": "createReverseProxy", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Fresh reverseproxy" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Response reverseproxies created just now" } }, "tags": [ "ReverseProxyV1alpha1" ] } }, "/apis/plugin.halo.run/v1alpha1/reverseproxies/{name}": { "delete": { "description": "Delete ReverseProxy", "operationId": "deleteReverseProxy", "parameters": [ { "description": "Name of reverseproxy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response reverseproxy deleted just now" } }, "tags": [ "ReverseProxyV1alpha1" ] }, "get": { "description": "Get ReverseProxy", "operationId": "getReverseProxy", "parameters": [ { "description": "Name of reverseproxy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Response single reverseproxy" } }, "tags": [ "ReverseProxyV1alpha1" ] }, "patch": { "description": "Patch ReverseProxy", "operationId": "patchReverseProxy", "parameters": [ { "description": "Name of reverseproxy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Response reverseproxy patched just now" } }, "tags": [ "ReverseProxyV1alpha1" ] }, "put": { "description": "Update ReverseProxy", "operationId": "updateReverseProxy", "parameters": [ { "description": "Name of reverseproxy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Updated reverseproxy" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ReverseProxy" } } }, "description": "Response reverseproxies updated just now" } }, "tags": [ "ReverseProxyV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/devices": { "get": { "description": "List Device", "operationId": "listDevice", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/DeviceList" } } }, "description": "Response devices" } }, "tags": [ "DeviceV1alpha1" ] }, "post": { "description": "Create Device", "operationId": "createDevice", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Fresh device" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Response devices created just now" } }, "tags": [ "DeviceV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/devices/{name}": { "delete": { "description": "Delete Device", "operationId": "deleteDevice", "parameters": [ { "description": "Name of device", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response device deleted just now" } }, "tags": [ "DeviceV1alpha1" ] }, "get": { "description": "Get Device", "operationId": "getDevice", "parameters": [ { "description": "Name of device", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Response single device" } }, "tags": [ "DeviceV1alpha1" ] }, "patch": { "description": "Patch Device", "operationId": "patchDevice", "parameters": [ { "description": "Name of device", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Response device patched just now" } }, "tags": [ "DeviceV1alpha1" ] }, "put": { "description": "Update Device", "operationId": "updateDevice", "parameters": [ { "description": "Name of device", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Updated device" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Device" } } }, "description": "Response devices updated just now" } }, "tags": [ "DeviceV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/personalaccesstokens": { "get": { "description": "List PersonalAccessToken", "operationId": "listPersonalAccessToken", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessTokenList" } } }, "description": "Response personalaccesstokens" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] }, "post": { "description": "Create PersonalAccessToken", "operationId": "createPersonalAccessToken", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Fresh personalaccesstoken" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Response personalaccesstokens created just now" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/personalaccesstokens/{name}": { "delete": { "description": "Delete PersonalAccessToken", "operationId": "deletePersonalAccessToken", "parameters": [ { "description": "Name of personalaccesstoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response personalaccesstoken deleted just now" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] }, "get": { "description": "Get PersonalAccessToken", "operationId": "getPersonalAccessToken", "parameters": [ { "description": "Name of personalaccesstoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Response single personalaccesstoken" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] }, "patch": { "description": "Patch PersonalAccessToken", "operationId": "patchPersonalAccessToken", "parameters": [ { "description": "Name of personalaccesstoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Response personalaccesstoken patched just now" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] }, "put": { "description": "Update PersonalAccessToken", "operationId": "updatePersonalAccessToken", "parameters": [ { "description": "Name of personalaccesstoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Updated personalaccesstoken" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "Response personalaccesstokens updated just now" } }, "tags": [ "PersonalAccessTokenV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/remembermetokens": { "get": { "description": "List RememberMeToken", "operationId": "listRememberMeToken", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeTokenList" } } }, "description": "Response remembermetokens" } }, "tags": [ "RememberMeTokenV1alpha1" ] }, "post": { "description": "Create RememberMeToken", "operationId": "createRememberMeToken", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Fresh remembermetoken" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Response remembermetokens created just now" } }, "tags": [ "RememberMeTokenV1alpha1" ] } }, "/apis/security.halo.run/v1alpha1/remembermetokens/{name}": { "delete": { "description": "Delete RememberMeToken", "operationId": "deleteRememberMeToken", "parameters": [ { "description": "Name of remembermetoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response remembermetoken deleted just now" } }, "tags": [ "RememberMeTokenV1alpha1" ] }, "get": { "description": "Get RememberMeToken", "operationId": "getRememberMeToken", "parameters": [ { "description": "Name of remembermetoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Response single remembermetoken" } }, "tags": [ "RememberMeTokenV1alpha1" ] }, "patch": { "description": "Patch RememberMeToken", "operationId": "patchRememberMeToken", "parameters": [ { "description": "Name of remembermetoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Response remembermetoken patched just now" } }, "tags": [ "RememberMeTokenV1alpha1" ] }, "put": { "description": "Update RememberMeToken", "operationId": "updateRememberMeToken", "parameters": [ { "description": "Name of remembermetoken", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Updated remembermetoken" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/RememberMeToken" } } }, "description": "Response remembermetokens updated just now" } }, "tags": [ "RememberMeTokenV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/attachments": { "get": { "description": "List Attachment", "operationId": "listAttachment", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AttachmentList" } } }, "description": "Response attachments" } }, "tags": [ "AttachmentV1alpha1" ] }, "post": { "description": "Create Attachment", "operationId": "createAttachment", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Fresh attachment" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Response attachments created just now" } }, "tags": [ "AttachmentV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/attachments/{name}": { "delete": { "description": "Delete Attachment", "operationId": "deleteAttachment", "parameters": [ { "description": "Name of attachment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response attachment deleted just now" } }, "tags": [ "AttachmentV1alpha1" ] }, "get": { "description": "Get Attachment", "operationId": "getAttachment", "parameters": [ { "description": "Name of attachment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Response single attachment" } }, "tags": [ "AttachmentV1alpha1" ] }, "patch": { "description": "Patch Attachment", "operationId": "patchAttachment", "parameters": [ { "description": "Name of attachment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Response attachment patched just now" } }, "tags": [ "AttachmentV1alpha1" ] }, "put": { "description": "Update Attachment", "operationId": "updateAttachment", "parameters": [ { "description": "Name of attachment", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Updated attachment" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "Response attachments updated just now" } }, "tags": [ "AttachmentV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/groups": { "get": { "description": "List Group", "operationId": "listGroup", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/GroupList" } } }, "description": "Response groups" } }, "tags": [ "GroupV1alpha1" ] }, "post": { "description": "Create Group", "operationId": "createGroup", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Fresh group" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Response groups created just now" } }, "tags": [ "GroupV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/groups/{name}": { "delete": { "description": "Delete Group", "operationId": "deleteGroup", "parameters": [ { "description": "Name of group", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response group deleted just now" } }, "tags": [ "GroupV1alpha1" ] }, "get": { "description": "Get Group", "operationId": "getGroup", "parameters": [ { "description": "Name of group", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Response single group" } }, "tags": [ "GroupV1alpha1" ] }, "patch": { "description": "Patch Group", "operationId": "patchGroup", "parameters": [ { "description": "Name of group", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Response group patched just now" } }, "tags": [ "GroupV1alpha1" ] }, "put": { "description": "Update Group", "operationId": "updateGroup", "parameters": [ { "description": "Name of group", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Updated group" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Group" } } }, "description": "Response groups updated just now" } }, "tags": [ "GroupV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/policies": { "get": { "description": "List Policy", "operationId": "listPolicy", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyList" } } }, "description": "Response policies" } }, "tags": [ "PolicyV1alpha1" ] }, "post": { "description": "Create Policy", "operationId": "createPolicy", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Fresh policy" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Response policies created just now" } }, "tags": [ "PolicyV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/policies/{name}": { "delete": { "description": "Delete Policy", "operationId": "deletePolicy", "parameters": [ { "description": "Name of policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response policy deleted just now" } }, "tags": [ "PolicyV1alpha1" ] }, "get": { "description": "Get Policy", "operationId": "getPolicy", "parameters": [ { "description": "Name of policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Response single policy" } }, "tags": [ "PolicyV1alpha1" ] }, "patch": { "description": "Patch Policy", "operationId": "patchPolicy", "parameters": [ { "description": "Name of policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Response policy patched just now" } }, "tags": [ "PolicyV1alpha1" ] }, "put": { "description": "Update Policy", "operationId": "updatePolicy", "parameters": [ { "description": "Name of policy", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Updated policy" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Policy" } } }, "description": "Response policies updated just now" } }, "tags": [ "PolicyV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/policytemplates": { "get": { "description": "List PolicyTemplate", "operationId": "listPolicyTemplate", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplateList" } } }, "description": "Response policytemplates" } }, "tags": [ "PolicyTemplateV1alpha1" ] }, "post": { "description": "Create PolicyTemplate", "operationId": "createPolicyTemplate", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Fresh policytemplate" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Response policytemplates created just now" } }, "tags": [ "PolicyTemplateV1alpha1" ] } }, "/apis/storage.halo.run/v1alpha1/policytemplates/{name}": { "delete": { "description": "Delete PolicyTemplate", "operationId": "deletePolicyTemplate", "parameters": [ { "description": "Name of policytemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response policytemplate deleted just now" } }, "tags": [ "PolicyTemplateV1alpha1" ] }, "get": { "description": "Get PolicyTemplate", "operationId": "getPolicyTemplate", "parameters": [ { "description": "Name of policytemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Response single policytemplate" } }, "tags": [ "PolicyTemplateV1alpha1" ] }, "patch": { "description": "Patch PolicyTemplate", "operationId": "patchPolicyTemplate", "parameters": [ { "description": "Name of policytemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Response policytemplate patched just now" } }, "tags": [ "PolicyTemplateV1alpha1" ] }, "put": { "description": "Update PolicyTemplate", "operationId": "updatePolicyTemplate", "parameters": [ { "description": "Name of policytemplate", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Updated policytemplate" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PolicyTemplate" } } }, "description": "Response policytemplates updated just now" } }, "tags": [ "PolicyTemplateV1alpha1" ] } }, "/apis/theme.halo.run/v1alpha1/themes": { "get": { "description": "List Theme", "operationId": "listTheme", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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" } } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ThemeList" } } }, "description": "Response themes" } }, "tags": [ "ThemeV1alpha1" ] }, "post": { "description": "Create Theme", "operationId": "createTheme", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Fresh theme" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Response themes created just now" } }, "tags": [ "ThemeV1alpha1" ] } }, "/apis/theme.halo.run/v1alpha1/themes/{name}": { "delete": { "description": "Delete Theme", "operationId": "deleteTheme", "parameters": [ { "description": "Name of theme", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Response theme deleted just now" } }, "tags": [ "ThemeV1alpha1" ] }, "get": { "description": "Get Theme", "operationId": "getTheme", "parameters": [ { "description": "Name of theme", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Response single theme" } }, "tags": [ "ThemeV1alpha1" ] }, "patch": { "description": "Patch Theme", "operationId": "patchTheme", "parameters": [ { "description": "Name of theme", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/JsonPatch" } } } }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Response theme patched just now" } }, "tags": [ "ThemeV1alpha1" ] }, "put": { "description": "Update Theme", "operationId": "updateTheme", "parameters": [ { "description": "Name of theme", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Updated theme" }, "responses": { "200": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Theme" } } }, "description": "Response themes updated just now" } }, "tags": [ "ThemeV1alpha1" ] } }, "/apis/uc.api.auth.halo.run/v1alpha1/user-connections/{registerId}/disconnect": { "put": { "description": "Disconnect my connection from a third-party platform.", "operationId": "DisconnectMyConnection", "parameters": [ { "description": "The registration ID of the third-party platform.", "in": "path", "name": "registerId", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserConnection" } } } }, "description": "default response" } }, "tags": [ "UserConnectionV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts": { "get": { "description": "List posts owned by the current user with pagination, sorting, keyword, publish phase, and category filters.", "operationId": "ListMyPosts", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Filter posts by publish phase. Supported values follow PostPhase, such as DRAFT, PENDING_APPROVAL, PUBLISHED, or FAILED.", "in": "query", "name": "publishPhase", "schema": { "type": "string", "enum": [ "DRAFT", "PENDING_APPROVAL", "PUBLISHED", "FAILED" ] } }, { "description": "Keyword used to match post title, slug, or excerpt.", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Category metadata name used to include posts in that category and its child categories.", "in": "query", "name": "categoryWithChildren", "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ListedPostList" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] }, "post": { "description": "Create a draft post for the current user. To create it with initial content, put JSON-serialized Content into metadata.annotations[\u0027content.halo.run/content-json\u0027].", "operationId": "CreateMyPost", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Post extension to create. The server assigns spec.owner from the current user and consumes the content-json annotation as initial content when present.", "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts/{name}": { "get": { "description": "Get a post owned by the current user by metadata.name.", "operationId": "GetMyPost", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] }, "put": { "description": "Update post metadata and editable spec fields for the current user. Content is not updated by this operation.", "operationId": "UpdateMyPost", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "Post extension with updated metadata/spec values. The server preserves owner, publish, snapshot, and deleted state fields, and ignores the content-json annotation here.", "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts/{name}/draft": { "get": { "description": "Get the editable draft snapshot of a post owned by the current user.", "operationId": "GetMyPostDraft", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "Whether to return the head snapshot patched against the base snapshot. Defaults to false.", "in": "query", "name": "patched", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] }, "put": { "description": "Update the editable draft snapshot of a post owned by the current user. The snapshot must belong to the post and must be the current head snapshot.", "operationId": "UpdateMyPostDraft", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "Snapshot payload carrying JSON-serialized Content in metadata.annotations[\u0027content.halo.run/content-json\u0027].", "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts/{name}/publish": { "put": { "description": "Publish a post owned by the current user from its current head snapshot.", "operationId": "PublishMyPost", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts/{name}/recycle": { "delete": { "description": "Move a post owned by the current user to the recycle bin.", "operationId": "RecycleMyPost", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/posts/{name}/unpublish": { "put": { "description": "Unpublish a post owned by the current user so it is no longer served as published content.", "operationId": "UnpublishMyPost", "parameters": [ { "description": "metadata.name of a post owned by the current user.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Post" } } }, "description": "default response" } }, "tags": [ "PostV1alpha1Uc" ] } }, "/apis/uc.api.content.halo.run/v1alpha1/snapshots/{name}": { "get": { "description": "Get a content snapshot for a post owned by the current user. The snapshot must belong to the post specified by postName.", "operationId": "GetSnapshotForPost", "parameters": [ { "description": "metadata.name of the snapshot to fetch.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } }, { "description": "metadata.name of the post that owns the snapshot. The post must belong to the current user.", "in": "query", "name": "postName", "required": true, "schema": { "type": "string" } }, { "description": "Whether to return the snapshot patched against the post base snapshot. Defaults to false.", "in": "query", "name": "patched", "schema": { "type": "boolean" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Snapshot" } } }, "description": "default response" } }, "tags": [ "SnapshotV1alpha1Uc" ] } }, "/apis/uc.api.halo.run/v1alpha1/annotationsettings": { "get": { "description": "List available AnnotationSettings for the given targetRef. The available AnnotationSettings are determined by the currently activated theme and started plugins.", "operationId": "listAvailableAnnotationSettings", "parameters": [ { "description": "The targetRef of the AnnotationSetting. e.g.: \u0027content.halo.run/Post", "in": "query", "name": "targetRef", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AnnotationSetting" } } } }, "description": "default response" } }, "tags": [ "AnnotationSettingV1AlphaUc" ] } }, "/apis/uc.api.halo.run/v1alpha1/user-preferences/{group}": { "get": { "description": "Get my preference by group.", "operationId": "getMyPreference", "parameters": [ { "description": "Group of user preference, e.g. `notification`.", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "type": "object" } } }, "description": "default response" } }, "tags": [ "UserPreferenceV1alpha1Uc" ] }, "put": { "description": "Create or update my preference by group.", "operationId": "updateMyPreference", "parameters": [ { "description": "Group of user preference, e.g. `notification`.", "in": "path", "name": "group", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "type": "object" } } }, "required": true }, "responses": { "204": { "description": "No content, preference updated successfully." } }, "tags": [ "UserPreferenceV1alpha1Uc" ] } }, "/apis/uc.api.halo.run/v1alpha1/users/-": { "get": { "description": "Get current user profile without password hash.", "operationId": "GetMyUser", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UcUserVo" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Uc" ] } }, "/apis/uc.api.halo.run/v1alpha1/users/-/password": { "put": { "description": "Set or change the password of the current user.", "operationId": "ChangeMyPassword", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ChangeMyPasswordRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UcUserVo" } } }, "description": "default response" } }, "tags": [ "UserV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/settings": { "get": { "description": "Get Two-factor authentication settings.", "operationId": "GetTwoFactorAuthenticationSettings", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TwoFactorAuthSettings" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/settings/disabled": { "put": { "description": "Disable Two-factor authentication", "operationId": "DisableTwoFactor", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PasswordRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TwoFactorAuthSettings" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/settings/enabled": { "put": { "description": "Enable Two-factor authentication", "operationId": "EnableTwoFactor", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PasswordRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TwoFactorAuthSettings" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/totp": { "post": { "description": "Configure a TOTP", "operationId": "ConfigurerTotp", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TotpRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TwoFactorAuthSettings" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/totp/-": { "delete": { "description": "Delete the current user\u0027s configured TOTP authenticator after password verification.", "operationId": "DeleteTotp", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PasswordRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TwoFactorAuthSettings" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/authentications/two-factor/totp/auth-link": { "get": { "description": "Get TOTP auth link, including secret", "operationId": "GetTotpAuthLink", "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/TotpAuthLinkResponse" } } }, "description": "default response" } }, "tags": [ "TwoFactorAuthV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/devices": { "get": { "description": "List all user devices", "operationId": "ListDevices", "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserDevice" } } } }, "description": "default response" } }, "tags": [ "DeviceV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/devices/{deviceId}": { "delete": { "description": "Revoke a own device", "operationId": "RevokeDevice", "parameters": [ { "description": "Device ID", "in": "path", "name": "deviceId", "required": true, "schema": { "type": "string" } } ], "responses": { "204 NO_CONTENT": { "description": "default response" } }, "tags": [ "DeviceV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/personalaccesstokens": { "get": { "description": "Obtain PAT list.", "operationId": "ObtainPats", "responses": { "default": { "content": { "*/*": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersonalAccessToken" } } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] }, "post": { "description": "Generate a PAT.", "operationId": "GeneratePat", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/personalaccesstokens/{name}": { "delete": { "description": "Delete a PAT", "operationId": "DeletePat", "parameters": [ { "description": "metadata.name of the PAT to delete.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] }, "get": { "description": "Obtain a PAT.", "operationId": "ObtainPat", "parameters": [ { "description": "metadata.name of the PAT to fetch.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/personalaccesstokens/{name}/actions/restoration": { "put": { "description": "Restore a PAT.", "operationId": "RestorePat", "parameters": [ { "description": "metadata.name of the PAT to restore.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] } }, "/apis/uc.api.security.halo.run/v1alpha1/personalaccesstokens/{name}/actions/revocation": { "put": { "description": "Revoke a PAT", "operationId": "RevokePat", "parameters": [ { "description": "metadata.name of the PAT to revoke.", "in": "path", "name": "name", "required": true, "schema": { "type": "string" } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/PersonalAccessToken" } } }, "description": "default response" } }, "tags": [ "PersonalAccessTokenV1alpha1Uc" ] } }, "/apis/uc.api.storage.halo.run/v1alpha1/attachments": { "get": { "description": "List attachments of the current user uploaded.", "operationId": "ListMyAttachments", "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": "Label selector. e.g.: hidden!\u003dtrue", "in": "query", "name": "labelSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "description": "Field selector. e.g.: metadata.name\u003d\u003dhalo", "in": "query", "name": "fieldSelector", "schema": { "type": "array", "items": { "type": "string" } } }, { "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": "Filter attachments without group. This parameter will ignore group parameter.", "in": "query", "name": "ungrouped", "schema": { "type": "boolean" } }, { "description": "Keyword for searching.", "in": "query", "name": "keyword", "schema": { "type": "string" } }, { "description": "Acceptable media types.", "in": "query", "name": "accepts", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AttachmentList" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Uc" ] }, "post": { "deprecated": true, "description": "Create attachment for the given post. Deprecated in favor of /attachments/-/upload.", "operationId": "CreateAttachmentForPost", "parameters": [ { "description": "Wait for permalink.", "in": "query", "name": "waitForPermalink", "schema": { "type": "boolean" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/PostAttachmentRequest" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Uc" ] } }, "/apis/uc.api.storage.halo.run/v1alpha1/attachments/-/match-permalinks": { "post": { "description": "Match URL strings against Attachment permalinks for user center.", "operationId": "MatchAttachmentPermalinksForUc", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentPermalinkMatchRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/AttachmentPermalinkMatchList" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Uc" ] } }, "/apis/uc.api.storage.halo.run/v1alpha1/attachments/-/upload": { "post": { "description": "Upload attachment to user center storage.", "operationId": "UploadAttachmentForUc", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/UploadForm" } } } }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Uc" ] } }, "/apis/uc.api.storage.halo.run/v1alpha1/attachments/-/upload-from-url": { "post": { "deprecated": true, "description": "Upload attachment from the given URL.\nDeprecated in favor of /attachments/-/upload.", "operationId": "ExternalTransferAttachment_1", "parameters": [ { "description": "Wait for permalink.", "in": "query", "name": "waitForPermalink", "schema": { "type": "boolean" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UcUploadFromUrlRequest" } } }, "required": true }, "responses": { "default": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/Attachment" } } }, "description": "default response" } }, "tags": [ "AttachmentV1alpha1Uc" ] } }, "/system/setup": { "get": { "description": "Jump to setup page", "operationId": "JumpToSetupPage", "responses": { "default": { "content": { "text/html": { "schema": { "type": "string" } } }, "description": "default response" } }, "tags": [ "SystemV1alpha1Public" ] }, "post": { "description": "Setup system", "operationId": "SetupSystem", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetupRequest" } } }, "required": true }, "responses": { "204": { "content": {}, "description": "No Content" } }, "tags": [ "SystemV1alpha1Public" ] } } }, "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" } } }, "AnnotationSetting": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/AnnotationSettingSpec" } }, "description": "Annotation setting extension that defines dynamic annotation forms for a target extension kind." }, "AnnotationSettingList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/AnnotationSetting" } }, "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" } } }, "AnnotationSettingSpec": { "required": [ "formSchema", "targetRef" ], "type": "object", "properties": { "formSchema": { "minLength": 1, "type": "array", "description": "FormKit-compatible schema used to render annotation fields.", "items": { "minLength": 1, "type": "object" } }, "targetRef": { "$ref": "#/components/schemas/GroupKind" } }, "description": "Desired annotation form configuration for a target resource kind." }, "Attachment": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/AttachmentSpec" }, "status": { "$ref": "#/components/schemas/AttachmentStatus" } }, "description": "Attachment extension that describes an uploaded file and its resolved access URLs." }, "AttachmentList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Attachment" } }, "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" } } }, "AttachmentPermalinkMatchList": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/AttachmentPermalinkMatchResult" } } }, "description": "Ordered Attachment permalink match results." }, "AttachmentPermalinkMatchRequest": { "required": [ "urls" ], "type": "object", "properties": { "urls": { "type": "array", "items": { "type": "string" } } }, "description": "Request payload for matching URL strings against Attachment permalinks." }, "AttachmentPermalinkMatchResult": { "type": "object", "properties": { "matched": { "type": "boolean" }, "url": { "type": "string" } }, "description": "Result for one Attachment permalink match input." }, "AttachmentSpec": { "type": "object", "properties": { "displayName": { "type": "string", "description": "Display name shown for the attachment." }, "groupName": { "type": "string", "description": "Attachment group metadata.name this attachment belongs to." }, "mediaType": { "type": "string", "description": "Media type detected or supplied for the attachment, such as image/png." }, "ownerName": { "type": "string", "description": "User metadata.name of the uploader." }, "policyName": { "type": "string", "description": "Storage policy metadata.name used to store this attachment." }, "size": { "minimum": 0, "type": "integer", "description": "Size of the attachment in bytes.", "format": "int64" }, "tags": { "uniqueItems": true, "type": "array", "description": "Free-form tags assigned to the attachment.", "items": { "type": "string" } } }, "description": "Desired attachment metadata and storage placement." }, "AttachmentStatus": { "type": "object", "properties": { "permalink": { "type": "string", "description": "Public permalink for the attachment. Local storage usually exposes a public URL, while object storage may\n expose the object URL." }, "thumbnails": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Generated thumbnail URLs keyed by thumbnail size name." } }, "description": "Observed attachment access state." }, "AuthProvider": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/AuthProviderSpec" } }, "description": "Authentication provider extension that describes an external or form-based sign-in integration." }, "AuthProviderList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/AuthProvider" } }, "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" } } }, "AuthProviderSpec": { "required": [ "authType", "authenticationUrl", "displayName" ], "type": "object", "properties": { "authType": { "type": "string", "description": "Auth type: form or oauth2.", "enum": [ "FORM", "OAUTH2" ] }, "authenticationUrl": { "type": "string", "description": "URL that starts the authentication flow." }, "bindingUrl": { "type": "string", "description": "URL that starts account binding for an already signed-in user." }, "configMapRef": { "$ref": "#/components/schemas/ConfigMapRef" }, "description": { "type": "string", "description": "Human-readable description of the provider." }, "displayName": { "type": "string", "description": "Display name shown on sign-in and account binding screens." }, "helpPage": { "type": "string", "description": "Help page URL for users who need sign-in assistance." }, "logo": { "type": "string", "description": "Logo URL or attachment URI for the provider." }, "method": { "type": "string", "description": "HTTP method used when starting the authentication flow." }, "rememberMeSupport": { "type": "boolean", "description": "Whether the provider supports remember-me during sign-in." }, "settingRef": { "$ref": "#/components/schemas/SettingRef" }, "unbindUrl": { "type": "string", "description": "URL that unbinds the external account from the current user." }, "website": { "type": "string", "description": "Provider website URL." } }, "description": "Authentication provider metadata and endpoint configuration." }, "Author": { "required": [ "name" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string", "description": "Author display name." }, "website": { "type": "string", "description": "Author website URL." } }, "description": "Theme author metadata." }, "Backup": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/BackupSpec" }, "status": { "$ref": "#/components/schemas/BackupStatus" } }, "description": "Backup metadata and runtime state for an exported Halo data package." }, "BackupFile": { "type": "object", "properties": { "filename": { "type": "string", "description": "Filename of backup file." }, "lastModifiedTime": { "type": "string", "description": "Last modified time of backup file.", "format": "date-time" }, "size": { "type": "integer", "description": "Size of backup file.", "format": "int64" } }, "description": "Backup file." }, "BackupList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Backup" } }, "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" } } }, "BackupSpec": { "type": "object", "properties": { "expiresAt": { "type": "string", "description": "Time after which the generated backup should be considered expired.", "format": "date-time" }, "format": { "type": "string", "description": "Backup file format. Currently, only zip is supported." } }, "description": "Desired backup options." }, "BackupStatus": { "type": "object", "properties": { "completionTimestamp": { "type": "string", "description": "Time when backup execution finished, regardless of success or failure.", "format": "date-time" }, "failureMessage": { "type": "string", "description": "Human-readable failure message for a failed backup." }, "failureReason": { "type": "string", "description": "Stable failure reason code for a failed backup." }, "filename": { "type": "string", "description": "Name of the generated backup file." }, "phase": { "type": "string", "description": "Current backup execution phase.", "enum": [ "PENDING", "RUNNING", "SUCCEEDED", "FAILED" ] }, "size": { "type": "integer", "description": "Size of the generated backup file in bytes.", "format": "int64" }, "startTimestamp": { "type": "string", "description": "Time when backup execution started.", "format": "date-time" } }, "description": "Observed backup execution state." }, "Category": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/CategorySpec" }, "status": { "$ref": "#/components/schemas/CategoryStatus" } }, "description": "Category extension for grouping posts and building category archives." }, "CategoryList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Category" } }, "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" } } }, "CategoryPositionRequest": { "type": "object", "properties": { "beforeName": { "type": "string", "description": "target next sibling Category metadata.name, or null to append" }, "parentName": { "type": "string", "description": "target parent Category metadata.name, or null for root" } }, "description": "Request to move a Category in the Console category tree." }, "CategorySpec": { "required": [ "displayName", "priority", "slug" ], "type": "object", "properties": { "children": { "type": "array", "description": "Legacy child Category metadata.name values. Category hierarchy is now sourced from Category.spec.parent.", "deprecated": true, "items": { "type": "string", "description": "Legacy child Category metadata.name values. Category hierarchy is now sourced from Category.spec.parent.", "deprecated": true } }, "cover": { "type": "string", "description": "Cover image URL or attachment URI of the category." }, "description": { "type": "string", "description": "Human-readable description of the category." }, "displayName": { "minLength": 1, "type": "string", "description": "Display name of the category." }, "hideFromList": { "type": "boolean", "description": "Hides this root category tree and its posts from theme-side lists. Permalinks remain accessible, and only\n root categories are expected to set this flag." }, "parent": { "type": "string", "description": "Parent Category metadata.name. Root categories leave this unset." }, "postTemplate": { "maxLength": 255, "type": "string", "description": "Theme template used for posts in this category when the post does not specify its own spec.template." }, "preventParentPostCascadeQuery": { "type": "boolean", "description": "Stops parent category post queries from cascading into this category tree. Direct post queries for this\n category are unaffected." }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32", "default": 0 }, "slug": { "minLength": 1, "type": "string", "description": "URL slug used to build the category permalink." }, "template": { "maxLength": 255, "type": "string", "description": "Theme template used to render the category archive page." } }, "description": "Desired category display, hierarchy, and rendering configuration." }, "CategoryStatus": { "type": "object", "properties": { "permalink": { "type": "string", "description": "Absolute permalink calculated from the category permalink policy." }, "postCount": { "type": "integer", "description": "Total number of posts in this category and all descendant categories.", "format": "int32" }, "visiblePostCount": { "type": "integer", "description": "Total number of published and public posts in this category and all descendant categories.", "format": "int32" } }, "description": "Observed category state derived by content reconcilers." }, "CategoryTreeNode": { "required": [ "category", "children" ], "type": "object", "properties": { "category": { "$ref": "#/components/schemas/Category" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryTreeNode" } } }, "description": "Console Category tree node." }, "CategoryVo": { "required": [ "metadata" ], "type": "object", "properties": { "metadata": { "$ref": "#/components/schemas/Metadata" }, "postCount": { "type": "integer", "format": "int32" }, "spec": { "$ref": "#/components/schemas/CategorySpec" }, "status": { "$ref": "#/components/schemas/CategoryStatus" } }, "description": "A value object for {@link Category Category}." }, "CategoryVoList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/CategoryVo" } }, "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" } } }, "ChangeMyPasswordRequest": { "required": [ "password" ], "type": "object", "properties": { "oldPassword": { "type": "string", "description": "Old password. Required and verified only when the current user has a password; ignored otherwise." }, "password": { "maxLength": 257, "minLength": 5, "type": "string", "description": "new password of the current user" } }, "description": "Payload for setting or changing the current user\u0027s password." }, "ChangeOwnPasswordRequest": { "required": [ "oldPassword", "password" ], "type": "object", "properties": { "oldPassword": { "type": "string", "description": "old password" }, "password": { "minLength": 5, "type": "string", "description": "new password" } }, "description": "Payload for changing the current user\u0027s password." }, "ChangePasswordRequest": { "required": [ "password" ], "type": "object", "properties": { "password": { "minLength": 5, "type": "string", "description": "new password" } }, "description": "Payload for changing a user\u0027s password." }, "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" } }, "description": "Comment extension for a post, single page, or another commentable subject." }, "CommentEmailOwner": { "required": [ "displayName" ], "type": "object", "properties": { "avatar": { "type": "string", "description": "Avatar URL of the guest commenter." }, "displayName": { "type": "string", "description": "Display name of the guest commenter." }, "email": { "type": "string", "description": "Email address of the guest commenter. It is used as the owner name when present." }, "website": { "type": "string", "description": "Website URL of the guest commenter." } }, "description": "Guest/email owner information used when a comment is not owned by a Halo user." }, "CommentList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Comment" } }, "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" } } }, "CommentOwner": { "required": [ "kind", "name" ], "type": "object", "properties": { "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional owner metadata, such as avatar, website, or email hash." }, "displayName": { "type": "string", "description": "Display name shown for the owner." }, "kind": { "minLength": 1, "type": "string", "description": "Owner identity kind. Built-in values are User and Email." }, "name": { "maxLength": 64, "type": "string", "description": "Owner identifier. For User owners, this is the User metadata.name; for Email owners, an email address." } }, "description": "Identity of a comment or reply owner." }, "CommentRequest": { "required": [ "content", "raw", "subjectRef" ], "type": "object", "properties": { "allowNotification": { "type": "boolean", "description": "Whether to subscribe the owner to notifications for future replies.", "default": false }, "content": { "minLength": 1, "type": "string", "description": "Rendered HTML content for the comment. Unsafe HTML is rejected." }, "hidden": { "type": "boolean", "description": "Whether the comment should be hidden from normal display.", "default": false }, "owner": { "$ref": "#/components/schemas/CommentEmailOwner" }, "raw": { "minLength": 1, "type": "string", "description": "Original comment text submitted by the editor." }, "subjectRef": { "$ref": "#/components/schemas/Ref" } }, "description": "Comment creation payload for console comment APIs." }, "CommentSpec": { "required": [ "allowNotification", "approved", "content", "hidden", "owner", "priority", "raw", "subjectRef", "top" ], "type": "object", "properties": { "allowNotification": { "type": "boolean", "description": "Whether notification subscriptions should be created for this comment or reply.", "default": true }, "approved": { "type": "boolean", "description": "Whether the comment has passed moderation and may be visible.", "default": false }, "approvedTime": { "type": "string", "description": "Time when the comment was approved.", "format": "date-time" }, "content": { "minLength": 1, "type": "string", "description": "Rendered HTML content displayed to REST and theme consumers." }, "creationTime": { "type": "string", "description": "Creation time supplied by the caller. If absent, metadata.creationTimestamp is used.", "format": "date-time" }, "hidden": { "type": "boolean", "description": "Whether the comment should be hidden from public REST and theme output.", "default": false }, "ipAddress": { "type": "string", "description": "IP address recorded when the comment was submitted." }, "lastReadTime": { "type": "string", "description": "Latest time the comment owner has read replies for this comment.", "format": "date-time" }, "owner": { "$ref": "#/components/schemas/CommentOwner" }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32", "default": 0 }, "raw": { "minLength": 1, "type": "string", "description": "Raw comment body submitted by the owner before HTML sanitization and rendering." }, "subjectRef": { "$ref": "#/components/schemas/Ref" }, "top": { "type": "boolean", "description": "Whether the comment is pinned above normal comment ordering.", "default": false }, "userAgent": { "type": "string", "description": "Browser user agent recorded when the comment was submitted." } }, "description": "Desired state of a top-level comment." }, "CommentStats": { "type": "object", "properties": { "upvote": { "type": "integer", "description": "Total upvote count.", "format": "int32" } }, "description": "Aggregated counters for a comment or reply." }, "CommentStatsVo": { "type": "object", "properties": { "upvote": { "type": "integer", "format": "int32" } }, "description": "comment stats value object." }, "CommentStatus": { "type": "object", "properties": { "hasNewReply": { "type": "boolean", "description": "Whether unreadReplyCount is greater than zero." }, "lastReplyTime": { "type": "string", "description": "Creation time of the latest reply under this comment.", "format": "date-time" }, "observedVersion": { "type": "integer", "description": "Metadata version observed by the last successful reconciliation.", "format": "int64" }, "replyCount": { "type": "integer", "description": "Total number of replies under this comment.", "format": "int32" }, "unreadReplyCount": { "type": "integer", "description": "Number of replies created after the comment owner\u0027s last read time.", "format": "int32" }, "visibleReplyCount": { "type": "integer", "description": "Total number of approved and non-hidden replies under this comment.", "format": "int32" } }, "description": "Observed state of a top-level comment." }, "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 next 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 next 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" } } }, "Condition": { "required": [ "lastTransitionTime", "status", "type" ], "type": "object", "properties": { "lastTransitionTime": { "type": "string", "description": "Last time the condition transitioned from one status to another.", "format": "date-time" }, "message": { "maxLength": 32768, "type": "string", "description": "Human-readable message indicating details about last transition. This may be an empty string." }, "reason": { "maxLength": 1024, "pattern": "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$", "type": "string", "description": "Unique, one-word, CamelCase reason for the condition\u0027s last transition." }, "status": { "type": "string", "description": "Status is the status of the condition. Can be True, False, Unknown.", "enum": [ "TRUE", "FALSE", "UNKNOWN" ] }, "type": { "maxLength": 316, "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$", "type": "string", "description": "type of condition in CamelCase or in foo.example.com/CamelCase. example: Ready, Initialized. maxLength: 316." } }, "description": "EqualsAndHashCode 排除了lastTransitionTime否则失败时,lastTransitionTime 会被更新 导致 equals 为 false,一直被加入队列." }, "ConfigMap": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "data": { "type": "object", "additionalProperties": { "type": "string" }, "description": "String key-value configuration entries consumed by Halo or plugins." }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" } }, "description": "ConfigMap holds configuration data to consume." }, "ConfigMapList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ConfigMap" } }, "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" } } }, "ConfigMapRef": { "required": [ "name" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string", "description": "ConfigMap metadata.name." } }, "description": "Reference to a ConfigMap used by this provider." }, "Content": { "required": [ "content", "raw", "rawType" ], "type": "object", "properties": { "content": { "type": "string", "description": "Rendered HTML or normalized content derived from raw." }, "raw": { "type": "string", "description": "Source text stored by the editor." }, "rawType": { "type": "string", "description": "Editor/source format of the raw content, for example HTML or Markdown." } }, "description": "Full content payload reconstructed from a content snapshot." }, "ContentUpdateParam": { "required": [ "content", "raw", "rawType" ], "type": "object", "properties": { "content": { "type": "string", "description": "Rendered HTML or normalized content derived from raw." }, "raw": { "type": "string", "description": "Source text stored by the editor." }, "rawType": { "type": "string", "description": "Editor/source format of the raw content, for example HTML or Markdown." }, "version": { "type": "integer", "description": "Expected current head snapshot version; conflicts create a new head snapshot.", "format": "int64" } }, "description": "Content update payload for post and single page editors." }, "ContentVo": { "type": "object", "properties": { "content": { "type": "string" }, "raw": { "type": "string" } }, "description": "A value object for Content from {@link Snapshot Snapshot}." }, "ContentWrapper": { "type": "object", "properties": { "content": { "type": "string", "description": "Rendered HTML or normalized content derived from raw." }, "raw": { "type": "string", "description": "Source text stored by the editor." }, "rawType": { "type": "string", "description": "Editor/source format of the raw content, for example HTML or Markdown." }, "snapshotName": { "type": "string", "description": "Name of the snapshot used to build this content." } }, "description": "Full content reconstructed from a content snapshot and its base snapshot." }, "Contributor": { "type": "object", "properties": { "avatar": { "type": "string", "description": "User avatar URL." }, "displayName": { "type": "string", "description": "User display name." }, "name": { "type": "string", "description": "User metadata name." } }, "description": "User summary for a content owner or contributor." }, "ContributorVo": { "required": [ "metadata" ], "type": "object", "properties": { "avatar": { "type": "string" }, "bio": { "type": "string" }, "displayName": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "name": { "type": "string" }, "permalink": { "type": "string" } }, "description": "A value object for {@link run.halo.app.core.extension.User run.halo.app.core.extension.User}." }, "CopyOperation": { "required": [ "from", "op", "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" } } }, "Counter": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "approvedComment": { "type": "integer", "description": "Number of approved comments recorded for the resource.", "format": "int32" }, "downvote": { "type": "integer", "description": "Number of downvotes recorded for the resource.", "format": "int32" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "totalComment": { "type": "integer", "description": "Total number of comments recorded for the resource.", "format": "int32" }, "upvote": { "type": "integer", "description": "Number of upvotes recorded for the resource.", "format": "int32" }, "visit": { "type": "integer", "description": "Number of visits recorded for the resource.", "format": "int32" } }, "description": "Counter extension that stores aggregate interaction counts for a resource." }, "CounterList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Counter" } }, "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" } } }, "CounterRequest": { "required": [ "name", "plural" ], "type": "object", "properties": { "group": { "type": "string", "description": "API group of the extension resource" }, "hostname": { "type": "string", "description": "visitor host name" }, "language": { "type": "string", "description": "visitor browser language" }, "name": { "type": "string", "description": "extension resource \u003ccode\u003emetadata.name\u003c/code\u003e" }, "plural": { "type": "string", "description": "plural name of the extension resource" }, "referrer": { "type": "string", "description": "referrer URL of the visit" }, "screen": { "type": "string", "description": "visitor screen size or display descriptor" } }, "description": "Payload for counting a visit to an extension resource." }, "CreateUserRequest": { "required": [ "email", "name" ], "type": "object", "properties": { "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "metadata annotations to set on the user" }, "avatar": { "type": "string", "description": "avatar URL of the user" }, "bio": { "type": "string", "description": "biography or profile text of the user" }, "displayName": { "type": "string", "description": "display name shown in the console and theme" }, "email": { "type": "string", "description": "email address of the user" }, "name": { "type": "string", "description": "user \u003ccode\u003emetadata.name\u003c/code\u003e, which also serves as the login name" }, "password": { "type": "string", "description": "raw password to set for the user" }, "phone": { "type": "string", "description": "phone number of the user" }, "roles": { "uniqueItems": true, "type": "array", "description": "role \u003ccode\u003emetadata.name\u003c/code\u003e values to grant to the user after creation", "items": { "type": "string" } } }, "description": "Payload for creating a user from the console." }, "CustomTemplates": { "type": "object", "properties": { "category": { "type": "array", "description": "Custom templates available for categories.", "items": { "$ref": "#/components/schemas/TemplateDescriptor" } }, "page": { "type": "array", "description": "Custom templates available for single pages.", "items": { "$ref": "#/components/schemas/TemplateDescriptor" } }, "post": { "type": "array", "description": "Custom templates available for posts.", "items": { "$ref": "#/components/schemas/TemplateDescriptor" } } }, "description": "Custom template descriptors grouped by the content type they render." }, "DashboardStats": { "required": [ "approvedComments", "comments", "posts", "upvotes", "users", "visits" ], "type": "object", "properties": { "approvedComments": { "type": "integer", "description": "Approved comment count.", "format": "int64" }, "comments": { "type": "integer", "description": "Total comment count.", "format": "int64" }, "posts": { "type": "integer", "description": "Total non-deleted post count.", "format": "int64" }, "upvotes": { "type": "integer", "description": "Total upvote count.", "format": "int64" }, "users": { "type": "integer", "description": "Total user count.", "format": "int64" }, "visits": { "type": "integer", "description": "Total visit count.", "format": "int64" } }, "description": "Dashboard statistics for the console overview." }, "DetailedUser": { "required": [ "roles", "user" ], "type": "object", "properties": { "roles": { "type": "array", "description": "roles granted to the user", "items": { "$ref": "#/components/schemas/Role" } }, "user": { "$ref": "#/components/schemas/User" } }, "description": "User detail response with resolved roles." }, "Device": { "required": [ "apiVersion", "kind", "metadata", "spec", "status" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/DeviceSpec" }, "status": { "$ref": "#/components/schemas/DeviceStatus" } }, "description": "Device extension that records an authenticated browser session for account security visibility." }, "DeviceList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Device" } }, "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" } } }, "DeviceSpec": { "required": [ "ipAddress", "principalName", "sessionId" ], "type": "object", "properties": { "ipAddress": { "maxLength": 129, "type": "string", "description": "Client IP address observed for the session." }, "lastAccessedTime": { "type": "string", "description": "Last time this session accessed Halo.", "format": "date-time" }, "lastAuthenticatedTime": { "type": "string", "description": "Last time the user authenticated for this session.", "format": "date-time" }, "principalName": { "minLength": 1, "type": "string", "description": "Principal name of the authenticated user." }, "rememberMeSeriesId": { "type": "string", "description": "Remember-me series id associated with the session, if any." }, "sessionId": { "minLength": 1, "type": "string", "description": "Web session identifier associated with the device." }, "userAgent": { "maxLength": 500, "type": "string", "description": "Client user-agent header captured for the session." } }, "description": "Session identity and request metadata captured for a device." }, "DeviceStatus": { "type": "object", "properties": { "browser": { "type": "string", "description": "Browser name parsed from the user agent." }, "os": { "type": "string", "description": "Operating system name parsed from the user agent." } }, "description": "Parsed browser and operating system details for display." }, "EmailConfigValidationRequest": { "type": "object", "properties": { "displayName": { "type": "string", "description": "Gets email display name." }, "enable": { "type": "boolean" }, "encryption": { "type": "string" }, "host": { "type": "string" }, "password": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "sender": { "type": "string", "description": "Gets email sender address." }, "username": { "type": "string" } }, "description": "Email sender configuration to validate." }, "EmailVerifyRequest": { "required": [ "email" ], "type": "object", "properties": { "email": { "type": "string", "format": "email", "description": "email address to verify", "minLength": 1 } }, "description": "Payload for sending an email verification code." }, "Excerpt": { "required": [ "autoGenerate" ], "type": "object", "properties": { "autoGenerate": { "type": "boolean", "description": "Whether Halo should generate the excerpt from the released content automatically.", "default": true }, "raw": { "type": "string", "description": "Manual excerpt text used when autoGenerate is false." } }, "description": "Excerpt generation configuration for a post or single page." }, "Extension": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" } }, "description": "Extension is an interface which represents an Extension. It contains setters and getters of GroupVersionKind and\n Metadata." }, "ExtensionDefinition": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ExtensionSpec" } }, "description": "Extension definition that describes one plugin-provided implementation of an extension point." }, "ExtensionDefinitionList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ExtensionDefinition" } }, "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" } } }, "ExtensionPointDefinition": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ExtensionPointSpec" } }, "description": "Extension point definition that advertises where plugins can contribute implementations." }, "ExtensionPointDefinitionList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ExtensionPointDefinition" } }, "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" } } }, "ExtensionPointSpec": { "required": [ "className", "displayName", "type" ], "type": "object", "properties": { "className": { "type": "string", "description": "Fully qualified Java class name of the extension point interface." }, "description": { "type": "string", "description": "Human-readable description of what this extension point allows plugins to provide." }, "displayName": { "type": "string", "description": "Display name shown for the extension point." }, "icon": { "type": "string", "description": "Icon URL, class, or identifier shown for the extension point." }, "type": { "type": "string", "description": "Registration mode used when loading implementations for this extension point.", "enum": [ "SINGLETON", "MULTI_INSTANCE" ] } }, "description": "Desired extension point metadata." }, "ExtensionSpec": { "required": [ "className", "displayName", "extensionPointName" ], "type": "object", "properties": { "className": { "type": "string", "description": "Fully qualified Java class name of the implementation." }, "description": { "type": "string", "description": "Human-readable description of what this implementation does." }, "displayName": { "type": "string", "description": "Display name shown for the implementation." }, "extensionPointName": { "type": "string", "description": "ExtensionPointDefinition metadata.name this implementation contributes to." }, "icon": { "type": "string", "description": "Icon URL, class, or identifier shown for the implementation." } }, "description": "Desired plugin-provided extension implementation metadata." }, "FileReverseProxyProvider": { "type": "object", "properties": { "directory": { "type": "string" }, "filename": { "type": "string" } }, "description": "File provider that resolves a request to a plugin or theme file location." }, "GrantRequest": { "required": [ "roles" ], "type": "object", "properties": { "roles": { "uniqueItems": true, "type": "array", "description": "role \u003ccode\u003emetadata.name\u003c/code\u003e values to grant", "items": { "type": "string" } } }, "description": "Payload for granting roles to a user." }, "Group": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/GroupSpec" }, "status": { "$ref": "#/components/schemas/GroupStatus" } }, "description": "Attachment group extension used to organize attachments and expose aggregate counts." }, "GroupKind": { "type": "object", "properties": { "group": { "type": "string", "description": "is group name of Extension." }, "kind": { "type": "string", "description": "is kind name of Extension." } }, "description": "GroupKind contains group and kind data only." }, "GroupList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Group" } }, "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" } } }, "GroupSpec": { "required": [ "displayName" ], "type": "object", "properties": { "displayName": { "type": "string", "description": "Display name shown for the attachment group." } }, "description": "Desired attachment group metadata." }, "GroupStatus": { "type": "object", "properties": { "totalAttachments": { "minimum": 0, "type": "integer", "description": "Total number of attachments under the group.", "format": "int64" }, "updateTimestamp": { "type": "string", "description": "Last time the group aggregate state was updated.", "format": "date-time" } }, "description": "Observed attachment group aggregate state." }, "HaloDocument": { "required": [ "content", "id", "metadataName", "ownerName", "permalink", "title", "type" ], "type": "object", "properties": { "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom metadata. Make sure the map is serializable." }, "categories": { "type": "array", "description": "Document categories. The item in the list is the category metadata name.", "items": { "type": "string" } }, "content": { "minLength": 1, "type": "string", "description": "Document content. Safety content, without HTML tag." }, "creationTimestamp": { "type": "string", "description": "Document creation timestamp.", "format": "date-time" }, "description": { "type": "string", "description": "Document description." }, "exposed": { "type": "boolean", "description": "Whether the document is exposed to the public." }, "id": { "minLength": 1, "type": "string", "description": "Document ID. It should be unique globally." }, "metadataName": { "minLength": 1, "type": "string", "description": "Metadata name of the corresponding extension." }, "ownerName": { "minLength": 1, "type": "string", "description": "Document owner metadata name." }, "permalink": { "minLength": 1, "type": "string", "description": "Document permalink." }, "published": { "type": "boolean", "description": "Whether the document is published." }, "recycled": { "type": "boolean", "description": "Whether the document is recycled." }, "tags": { "type": "array", "description": "Document tags. The item in the list is the tag metadata name.", "items": { "type": "string" } }, "title": { "minLength": 1, "type": "string", "description": "Document title." }, "type": { "minLength": 1, "type": "string", "description": "Document type. e.g.: post.content.halo.run, singlepage.content.halo.run, moment.moment.halo.run,\n doc.doc.halo.run." }, "updateTimestamp": { "type": "string", "description": "Document update timestamp.", "format": "date-time" } }, "description": "Document for search." }, "IAvatarUploadRequest": { "required": [ "file" ], "type": "object", "properties": { "file": { "type": "string", "description": "Avatar file.", "format": "binary" } }, "description": "Multipart payload for uploading a user avatar." }, "IUploadRequest": { "required": [ "file", "policyName" ], "type": "object", "properties": { "file": { "type": "string", "description": "Attachment file.", "format": "binary" }, "groupName": { "type": "string", "description": "Attachment group \u003ccode\u003emetadata.name\u003c/code\u003e." }, "policyName": { "type": "string", "description": "Storage policy \u003ccode\u003emetadata.name\u003c/code\u003e." } }, "description": "Multipart payload for uploading an attachment." }, "InstallFromUriRequest": { "required": [ "uri" ], "type": "object", "properties": { "uri": { "type": "string", "description": "remote URI of the theme ZIP file", "format": "uri" } }, "description": "Payload for installing a theme from a remote URI." }, "InterestReason": { "required": [ "reasonType", "subject" ], "type": "object", "properties": { "expression": { "type": "string", "description": "Optional expression used to match reasons more flexibly than subject matching." }, "reasonType": { "type": "string", "description": "ReasonType metadata.name this subscription is interested in." }, "subject": { "$ref": "#/components/schemas/InterestReasonSubject" } }, "description": "Reason selector that decides which notifications match this subscription." }, "InterestReasonSubject": { "required": [ "apiVersion", "kind" ], "type": "object", "properties": { "apiVersion": { "minLength": 1, "type": "string", "description": "Subject API version." }, "kind": { "minLength": 1, "type": "string", "description": "Subject kind." }, "name": { "type": "string", "description": "Subject metadata.name. If omitted, all subjects of the selected kind and API version are matched." } }, "description": "Subject selector used by a subscription interest reason." }, "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" } ] } }, "License": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" } }, "description": "Common data objects for license." }, "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 next 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" } } }, "ListedAuthProvider": { "required": [ "displayName", "name" ], "type": "object", "properties": { "authType": { "type": "string", "enum": [ "FORM", "OAUTH2" ] }, "authenticationUrl": { "type": "string" }, "bindingUrl": { "type": "string" }, "description": { "type": "string" }, "displayName": { "type": "string" }, "enabled": { "type": "boolean" }, "helpPage": { "type": "string" }, "isBound": { "type": "boolean" }, "logo": { "type": "string" }, "name": { "type": "string" }, "priority": { "type": "integer", "format": "int32" }, "privileged": { "type": "boolean" }, "supportsBinding": { "type": "boolean" }, "unbindingUrl": { "type": "string" }, "website": { "type": "string" } }, "description": "A listed value object for {@link run.halo.app.core.extension.AuthProvider run.halo.app.core.extension.AuthProvider}." }, "ListedComment": { "required": [ "comment", "owner", "stats" ], "type": "object", "properties": { "comment": { "$ref": "#/components/schemas/Comment" }, "owner": { "$ref": "#/components/schemas/OwnerInfo" }, "stats": { "$ref": "#/components/schemas/CommentStats" }, "subject": { "$ref": "#/components/schemas/Extension" } }, "description": "Comment list item with resolved owner, subject, and counters." }, "ListedCommentList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedComment" } }, "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" } } }, "ListedPost": { "required": [ "categories", "contributors", "owner", "post", "stats", "tags" ], "type": "object", "properties": { "categories": { "type": "array", "description": "Resolved categories referenced by the post spec.", "items": { "$ref": "#/components/schemas/Category" } }, "contributors": { "type": "array", "description": "Users that have contributed to the post content snapshots.", "items": { "$ref": "#/components/schemas/Contributor" } }, "owner": { "$ref": "#/components/schemas/Contributor" }, "post": { "$ref": "#/components/schemas/Post" }, "stats": { "$ref": "#/components/schemas/Stats" }, "tags": { "type": "array", "description": "Resolved tags referenced by the post spec.", "items": { "$ref": "#/components/schemas/Tag" } } }, "description": "Post list item with resolved categories, tags, contributors, owner, and counters." }, "ListedPostList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedPost" } }, "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" } } }, "ListedPostVo": { "required": [ "metadata" ], "type": "object", "properties": { "categories": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryVo" } }, "contributors": { "type": "array", "items": { "$ref": "#/components/schemas/ContributorVo" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "owner": { "$ref": "#/components/schemas/ContributorVo" }, "spec": { "$ref": "#/components/schemas/PostSpec" }, "stats": { "$ref": "#/components/schemas/StatsVo" }, "status": { "$ref": "#/components/schemas/PostStatus" }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/TagVo" } } }, "description": "A value object for {@link Post Post}." }, "ListedPostVoList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedPostVo" } }, "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" } } }, "ListedReply": { "required": [ "owner", "reply", "stats" ], "type": "object", "properties": { "owner": { "$ref": "#/components/schemas/OwnerInfo" }, "reply": { "$ref": "#/components/schemas/Reply" }, "stats": { "$ref": "#/components/schemas/CommentStats" } }, "description": "Reply list item with resolved owner and counters." }, "ListedReplyList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedReply" } }, "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" } } }, "ListedSinglePage": { "required": [ "contributors", "owner", "page", "stats" ], "type": "object", "properties": { "contributors": { "type": "array", "description": "Users that have contributed to the single page content snapshots.", "items": { "$ref": "#/components/schemas/Contributor" } }, "owner": { "$ref": "#/components/schemas/Contributor" }, "page": { "$ref": "#/components/schemas/SinglePage" }, "stats": { "$ref": "#/components/schemas/Stats" } }, "description": "Single page list item with resolved contributors, owner, and counters." }, "ListedSinglePageList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedSinglePage" } }, "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" } } }, "ListedSinglePageVo": { "required": [ "metadata" ], "type": "object", "properties": { "contributors": { "type": "array", "items": { "$ref": "#/components/schemas/ContributorVo" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "owner": { "$ref": "#/components/schemas/ContributorVo" }, "spec": { "$ref": "#/components/schemas/SinglePageSpec" }, "stats": { "$ref": "#/components/schemas/StatsVo" }, "status": { "$ref": "#/components/schemas/SinglePageStatus" } }, "description": "A chunk of items." }, "ListedSinglePageVoList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedSinglePageVo" } }, "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" } } }, "ListedSnapshotDto": { "required": [ "metadata", "spec" ], "type": "object", "properties": { "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ListedSnapshotSpec" } }, "description": "Content snapshot list item with metadata and display-oriented snapshot fields." }, "ListedSnapshotSpec": { "required": [ "owner" ], "type": "object", "properties": { "modifyTime": { "type": "string", "description": "Last modification time of the snapshot content.", "format": "date-time" }, "owner": { "type": "string", "description": "User name of the snapshot owner." } }, "description": "Display fields for a content snapshot list item." }, "ListedUser": { "required": [ "roles", "user" ], "type": "object", "properties": { "roles": { "type": "array", "items": { "$ref": "#/components/schemas/Role" } }, "user": { "$ref": "#/components/schemas/User" } }, "description": "A chunk of items." }, "MarkSpecifiedRequest": { "required": [ "names" ], "type": "object", "properties": { "names": { "type": "array", "description": "notification \u003ccode\u003emetadata.name\u003c/code\u003e values to mark as read", "items": { "type": "string" } } }, "description": "Payload for marking multiple notifications as read." }, "Menu": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/MenuSpec" } }, "description": "Menu extension that groups ordered menu items for theme navigation." }, "MenuItem": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/MenuItemSpec" }, "status": { "$ref": "#/components/schemas/MenuItemStatus" } }, "description": "Menu item extension that describes a navigable item and its resolved rendering state." }, "MenuItemList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/MenuItem" } }, "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" } } }, "MenuItemPositionRequest": { "required": [ "menuName" ], "type": "object", "properties": { "beforeName": { "type": "string", "description": "target next sibling MenuItem metadata.name, or null to append" }, "menuName": { "type": "string", "description": "selected Menu metadata.name" }, "parentName": { "type": "string", "description": "target parent MenuItem metadata.name, or null for root" } }, "description": "Request to move a MenuItem within its owning Menu." }, "MenuItemSpec": { "type": "object", "properties": { "children": { "type": "array", "description": "Legacy child MenuItem names. Menu hierarchy is now sourced from MenuItem.spec.menuName and MenuItem.spec.parent.", "deprecated": true, "items": { "type": "string", "description": "Legacy child MenuItem names. Menu hierarchy is now sourced from MenuItem.spec.menuName and MenuItem.spec.parent.", "deprecated": true } }, "displayName": { "type": "string", "description": "Display name shown for the menu item." }, "href": { "type": "string", "description": "Direct URL used by the menu item." }, "menuName": { "type": "string", "description": "Owning Menu metadata.name. Optional for compatibility with legacy raw payloads." }, "parent": { "type": "string", "description": "Parent MenuItem metadata.name in the same menu. Root items leave this unset." }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32" }, "target": { "type": "string", "description": "HTML anchor target used by the menu item.", "enum": [ "_blank", "_self", "_parent", "_top" ] }, "targetRef": { "$ref": "#/components/schemas/Ref" } }, "description": "Desired menu item configuration." }, "MenuItemStatus": { "type": "object", "properties": { "displayName": { "type": "string", "description": "Calculated display name after resolving targetRef, falling back to spec.displayName." }, "href": { "type": "string", "description": "Calculated href after resolving targetRef, falling back to spec.href." } }, "description": "Resolved menu item values used for rendering." }, "MenuItemTreeNode": { "required": [ "children", "menuItem" ], "type": "object", "properties": { "children": { "type": "array", "items": { "$ref": "#/components/schemas/MenuItemTreeNode" } }, "menuItem": { "$ref": "#/components/schemas/MenuItem" } }, "description": "Console MenuItem tree node." }, "MenuItemVo": { "required": [ "metadata" ], "type": "object", "properties": { "children": { "type": "array", "items": { "$ref": "#/components/schemas/MenuItemVo" } }, "displayName": { "type": "string", "description": "Gets menu item\u0027s display name." }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "parentName": { "type": "string" }, "spec": { "$ref": "#/components/schemas/MenuItemSpec" }, "status": { "$ref": "#/components/schemas/MenuItemStatus" } }, "description": "A value object for {@link MenuItem MenuItem}." }, "MenuList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Menu" } }, "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" } } }, "MenuSpec": { "required": [ "displayName" ], "type": "object", "properties": { "displayName": { "type": "string", "description": "Display name shown for the menu." }, "menuItems": { "type": "array", "description": "Legacy ordered root MenuItem names. Menu hierarchy is now sourced from MenuItem.spec.menuName and MenuItem.spec.parent.", "deprecated": true, "items": { "type": "string", "description": "Legacy ordered root MenuItem names. Menu hierarchy is now sourced from MenuItem.spec.menuName and MenuItem.spec.parent.", "deprecated": true } } }, "description": "Desired menu configuration." }, "MenuVo": { "required": [ "metadata" ], "type": "object", "properties": { "menuItems": { "type": "array", "items": { "$ref": "#/components/schemas/MenuItemVo" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/MenuSpec" } }, "description": "A value object for {@link Menu Menu}." }, "Metadata": { "required": [ "name" ], "type": "object", "properties": { "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Annotations are like key-value format." }, "creationTimestamp": { "type": "string", "description": "Creation timestamp of the Extension.", "format": "date-time", "nullable": true }, "deletionTimestamp": { "type": "string", "description": "Deletion timestamp of the Extension.", "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" }, "description": "Labels are like key-value format." }, "name": { "type": "string", "description": "Metadata name" }, "version": { "type": "integer", "description": "Current version of the Extension. It will be bumped up every update.", "format": "int64", "nullable": true } }, "description": "Metadata of Extension." }, "MoveOperation": { "required": [ "from", "op", "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" } } }, "NavigationPostVo": { "type": "object", "properties": { "next": { "$ref": "#/components/schemas/ListedPostVo" }, "previous": { "$ref": "#/components/schemas/ListedPostVo" } }, "description": "Post navigation vo to hold previous and next item." }, "Notification": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/NotificationSpec" } }, "description": "Notification extension that stores an on-site notification delivered to a Halo user.\n\n \u003cp\u003eSupports the following operations:\n\n \u003cul\u003e\n \u003cli\u003eMarked as read: {@link NotificationSpec#setUnread(boolean) NotificationSpec#setUnread(boolean)}\n \u003cli\u003eGet the last read time: {@link NotificationSpec#getLastReadAt NotificationSpec#getLastReadAt()}\n \u003cli\u003eFilter by recipient: {@link NotificationSpec#getRecipient NotificationSpec#getRecipient()}\n \u003c/ul\u003e" }, "NotificationList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Notification" } }, "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" } } }, "NotificationSpec": { "required": [ "htmlContent", "rawContent", "reason", "recipient", "title" ], "type": "object", "properties": { "htmlContent": { "type": "string", "description": "HTML notification content." }, "lastReadAt": { "type": "string", "description": "Last time the recipient marked this notification as read.", "format": "date-time" }, "rawContent": { "type": "string", "description": "Plain text or source notification content." }, "reason": { "minLength": 1, "type": "string", "description": "Reason metadata.name that generated this notification." }, "recipient": { "minLength": 1, "type": "string", "description": "User metadata.name that receives the notification." }, "title": { "minLength": 1, "type": "string", "description": "Notification title shown in the notification center." }, "unread": { "type": "boolean", "description": "Whether the recipient has not read the notification yet." } }, "description": "Notification content and read state for one recipient." }, "NotificationTemplate": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/NotificationTemplateSpec" } }, "description": "Notification template extension that defines localized message content for matching reason types.\n\n \u003cp\u003eIt describes the notification template\u0027s name, description, and the template content.\n\n \u003cp\u003e{@link Spec#getReasonSelector Spec#getReasonSelector()} is used to select the template by reasonType and language, if multiple templates\n are matched, the best match will be selected. This is useful when you want to override the default template." }, "NotificationTemplateList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/NotificationTemplate" } }, "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" } } }, "NotificationTemplateSpec": { "type": "object", "properties": { "reasonSelector": { "$ref": "#/components/schemas/ReasonSelector" }, "template": { "$ref": "#/components/schemas/TemplateContent" } }, "description": "Desired notification template selector and content." }, "NotifierDescriptor": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/NotifierDescriptorSpec" } }, "description": "Notifier descriptor extension that advertises a notification delivery implementation and its settings.\n\n \u003cp\u003eIt describes the notifier\u0027s name, description, and the extension name of the notifier to let the user know what\n the notifier is and what it can do in the UI and also let the \u003ccode\u003eNotificationCenter\u003c/code\u003e know how to load the\n notifier and prepare the notifier\u0027s settings." }, "NotifierDescriptorList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/NotifierDescriptor" } }, "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" } } }, "NotifierDescriptorSpec": { "required": [ "displayName", "notifierExtName" ], "type": "object", "properties": { "description": { "type": "string", "description": "Human-readable description of what the notifier sends." }, "displayName": { "minLength": 1, "type": "string", "description": "Display name shown for the notifier." }, "notifierExtName": { "minLength": 1, "type": "string", "description": "Extension name of the notifier implementation." }, "receiverSettingRef": { "$ref": "#/components/schemas/NotifierSettingRef" }, "senderSettingRef": { "$ref": "#/components/schemas/NotifierSettingRef" } }, "description": "Desired notifier descriptor metadata and configuration references." }, "NotifierInfo": { "required": [ "name" ], "type": "object", "properties": { "description": { "type": "string", "description": "description of the notifier" }, "displayName": { "type": "string", "description": "display name of the notifier" }, "name": { "type": "string", "description": "notifier \u003ccode\u003emetadata.name\u003c/code\u003e" } }, "description": "Notifier metadata used by notification preference UI." }, "NotifierSettingRef": { "required": [ "group", "name" ], "type": "object", "properties": { "group": { "type": "string", "description": "Setting form group name." }, "name": { "type": "string", "description": "Setting metadata.name." } }, "description": "Reference to a notifier setting form group." }, "OwnerInfo": { "type": "object", "properties": { "avatar": { "type": "string", "description": "Owner avatar URL." }, "displayName": { "type": "string", "description": "Owner display name." }, "email": { "type": "string", "description": "Owner email address when available." }, "kind": { "type": "string", "description": "Owner kind, such as User or email." }, "name": { "type": "string", "description": "Owner name. For Halo users, this is the user metadata name." } }, "description": "Resolved owner summary for a comment or reply." }, "PageLayout": { "type": "object", "properties": { "message": { "type": "string", "description": "Human-readable diagnostic message." }, "reason": { "type": "string", "description": "Stable diagnostic reason." }, "state": { "type": "string", "description": "Compatibility state of the page layout contract.", "enum": [ "SUPPORTED", "MISSING", "INVALID" ] }, "template": { "type": "string", "description": "Contract template path relative to the theme root." } }, "description": "Page layout contract compatibility details." }, "PasswordRequest": { "required": [ "password" ], "type": "object", "properties": { "password": { "minLength": 1, "type": "string", "description": "Current password of the authenticated user." }, "totpCode": { "type": "string", "description": "Current TOTP code, required when TOTP has already been configured." } }, "description": "Password verification payload for changing two-factor authentication settings." }, "PatSpec": { "required": [ "name", "tokenId", "username" ], "type": "object", "properties": { "description": { "type": "string", "description": "Optional human-readable description of how the token is used." }, "expiresAt": { "type": "string", "description": "Time when the token expires. A null value means the token does not expire by time.", "format": "date-time" }, "lastUsed": { "type": "string", "description": "Last time the token was used successfully.", "format": "date-time" }, "name": { "type": "string", "description": "Display name chosen by the token owner." }, "revoked": { "type": "boolean", "description": "Whether the token has been manually revoked." }, "revokesAt": { "type": "string", "description": "Time when the token was revoked.", "format": "date-time" }, "roles": { "type": "array", "description": "Role names granted to this token.", "items": { "type": "string" } }, "scopes": { "type": "array", "description": "Scope strings granted to this token.", "items": { "type": "string" } }, "tokenId": { "type": "string", "description": "Stable token identifier stored separately from the secret token value." }, "username": { "type": "string", "description": "User metadata.name that owns this token." } }, "description": "Desired personal access token settings and lifecycle flags." }, "PersonalAccessToken": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/PatSpec" } }, "description": "Personal access token extension used for non-interactive API authentication on behalf of a Halo user." }, "PersonalAccessTokenList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/PersonalAccessToken" } }, "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" } } }, "Plugin": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/PluginSpec" }, "status": { "$ref": "#/components/schemas/PluginStatus" } }, "description": "Plugin extension that describes an installed plugin and its runtime lifecycle state." }, "PluginAuthor": { "required": [ "name" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string", "description": "Author display name." }, "website": { "type": "string", "description": "Author website URL." } }, "description": "Plugin author metadata." }, "PluginInstallRequest": { "type": "object", "properties": { "file": { "type": "string", "description": "Plugin JAR file.", "format": "binary" }, "presetName": { "type": "string", "description": "Plugin preset name. Halo finds the plugin from plugin presets." }, "source": { "type": "string", "description": "Install source. Defaults to file.", "enum": [ "FILE", "PRESET", "URL" ] } }, "description": "Multipart payload for installing a plugin." }, "PluginList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Plugin" } }, "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" } } }, "PluginRunningStateRequest": { "required": [ "enable" ], "type": "object", "properties": { "async": { "type": "boolean", "description": "Whether to change the state asynchronously.", "default": false }, "enable": { "type": "boolean", "description": "Whether the plugin should be enabled." } }, "description": "Payload for changing a plugin running state." }, "PluginSpec": { "required": [ "version" ], "type": "object", "properties": { "author": { "$ref": "#/components/schemas/PluginAuthor" }, "configMapName": { "type": "string", "description": "ConfigMap metadata.name storing plugin configuration values." }, "description": { "type": "string", "description": "Human-readable plugin description." }, "displayName": { "type": "string", "description": "Display name shown for the plugin." }, "enabled": { "type": "boolean", "description": "Whether the plugin should be enabled." }, "homepage": { "type": "string", "description": "Plugin homepage URL." }, "issues": { "type": "string", "description": "Issue tracker URL." }, "license": { "type": "array", "description": "Licenses declared by the plugin.", "items": { "$ref": "#/components/schemas/License" } }, "logo": { "type": "string", "description": "Logo URL or attachment URI for the plugin." }, "pluginDependencies": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Required plugin dependencies keyed by plugin name with version constraints as values." }, "repo": { "type": "string", "description": "Source repository URL." }, "requires": { "type": "string", "description": "SemVer format." }, "settingName": { "type": "string", "description": "Setting metadata.name used to render the plugin configuration form." }, "version": { "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$", "type": "string", "description": "plugin version." } }, "description": "Desired plugin metadata and configuration references." }, "PluginStatus": { "type": "object", "properties": { "conditions": { "type": "array", "properties": { "empty": { "type": "boolean" } }, "description": "Reconciliation conditions for the plugin.", "items": { "$ref": "#/components/schemas/Condition" } }, "entry": { "type": "string", "description": "JavaScript bundle entry path served for the plugin UI." }, "lastProbeState": { "type": "string", "description": "Last PF4J probe state observed for the plugin.", "enum": [ "CREATED", "DISABLED", "RESOLVED", "STARTED", "STOPPED", "FAILED", "UNLOADED" ] }, "lastStartTime": { "type": "string", "description": "Last time the plugin started successfully.", "format": "date-time" }, "loadLocation": { "type": "string", "description": "URI location where the plugin artifact was loaded from.", "format": "uri" }, "logo": { "type": "string", "description": "Resolved logo URL or attachment URI for the plugin." }, "phase": { "type": "string", "description": "Current plugin lifecycle phase.", "enum": [ "PENDING", "STARTING", "CREATED", "DISABLING", "DISABLED", "RESOLVED", "STARTED", "STOPPED", "FAILED", "UNKNOWN" ] }, "stylesheet": { "type": "string", "description": "Stylesheet bundle path served for the plugin UI." } }, "description": "Observed plugin lifecycle and runtime asset state." }, "Policy": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/PolicySpec" } }, "description": "Storage policy extension that binds attachment uploads to a policy template and configuration." }, "PolicyList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Policy" } }, "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" } } }, "PolicyRule": { "type": "object", "properties": { "apiGroups": { "type": "array", "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any\n action requested against one of the enumerated resources in any API group will be allowed.", "items": { "type": "string" } }, "nonResourceURLs": { "type": "array", "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the\n full, final step in the path If an action is not a resource API request, then the URL is split on \u0027/\u0027 and is\n checked against the NonResourceURLs to look for a match. Since non-resource URLs are not namespaced, this\n field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API\n resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", "items": { "type": "string" } }, "resourceNames": { "type": "array", "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything\n is allowed.", "items": { "type": "string" } }, "resources": { "type": "array", "description": "Resources is a list of resources this rule applies to. \u0027*\u0027 represents all resources in the specified\n apiGroups. \u0027*\u0026#47;foo\u0027 represents the subresource \u0027foo\u0027 for all resources in the specified apiGroups.", "items": { "type": "string" } }, "verbs": { "type": "array", "description": "Verbs allowed by this rule, such as get, list, create, update, patch, or delete.", "items": { "type": "string" } } }, "description": "PolicyRule holds information that describes a policy rule, but does not contain information about whom the rule\n applies to or which namespace the rule applies to." }, "PolicySpec": { "required": [ "displayName", "templateName" ], "type": "object", "properties": { "configMapName": { "type": "string", "description": "ConfigMap metadata.name storing configuration values for this policy." }, "displayName": { "type": "string", "description": "Display name shown for the storage policy." }, "templateName": { "type": "string", "description": "PolicyTemplate metadata.name that provides the storage implementation." } }, "description": "Desired storage policy configuration." }, "PolicyTemplate": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/PolicyTemplateSpec" } }, "description": "Storage policy template extension that declares an attachment storage implementation and its settings form." }, "PolicyTemplateList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/PolicyTemplate" } }, "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" } } }, "PolicyTemplateSpec": { "required": [ "settingName" ], "type": "object", "properties": { "displayName": { "type": "string", "description": "Display name shown for the storage policy template." }, "settingName": { "type": "string", "description": "Setting metadata.name used to render configuration fields for policies created from this template." } }, "description": "Desired storage policy template metadata." }, "Post": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/PostSpec" }, "status": { "$ref": "#/components/schemas/PostStatus" } }, "description": "Post extension that stores article metadata, publication settings, taxonomy, and derived status." }, "PostAttachmentRequest": { "required": [ "file" ], "type": "object", "properties": { "file": { "type": "string", "description": "attachment data", "format": "binary" }, "postName": { "type": "string", "description": "post \u003ccode\u003emetadata.name\u003c/code\u003e" }, "singlePageName": { "type": "string", "description": "single page \u003ccode\u003emetadata.name\u003c/code\u003e" } }, "description": "Multipart payload for uploading a post attachment." }, "PostList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Post" } }, "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" } } }, "PostRequest": { "required": [ "content", "post" ], "type": "object", "properties": { "content": { "$ref": "#/components/schemas/ContentUpdateParam" }, "post": { "$ref": "#/components/schemas/Post" } }, "description": "Post editor payload containing the post extension and its editable content." }, "PostSpec": { "required": [ "allowComment", "deleted", "excerpt", "pinned", "priority", "publish", "slug", "title", "visible" ], "type": "object", "properties": { "allowComment": { "type": "boolean", "description": "Whether new comments are allowed for this post.", "default": true }, "baseSnapshot": { "type": "string", "description": "Base Snapshot metadata.name used to reconstruct raw and rendered content from patches." }, "categories": { "type": "array", "description": "Category metadata.name values associated with the post.", "items": { "type": "string" } }, "cover": { "type": "string", "description": "Cover image URL or attachment URI of the post." }, "deleted": { "type": "boolean", "description": "Whether the post is logically deleted and should be treated as recycled.", "default": false }, "excerpt": { "$ref": "#/components/schemas/Excerpt" }, "headSnapshot": { "type": "string", "description": "Snapshot metadata.name containing the latest editable draft content." }, "htmlMetas": { "type": "array", "description": "HTML meta tag attribute maps injected into the rendered post page head.", "items": { "type": "object", "additionalProperties": { "type": "string" } } }, "owner": { "type": "string", "description": "User metadata.name of the post owner." }, "pinned": { "type": "boolean", "description": "Whether the post should be pinned ahead of normal post ordering.", "default": false }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32", "default": 0 }, "publish": { "type": "boolean", "description": "Desired publish state. False keeps the post as a draft or moves it back to draft.", "default": false }, "publishTime": { "type": "string", "description": "Time when the post was published or is scheduled to be published.", "format": "date-time" }, "releaseSnapshot": { "type": "string", "description": "Snapshot metadata.name selected as the published content version." }, "slug": { "minLength": 1, "type": "string", "description": "URL slug used to build the post permalink." }, "tags": { "type": "array", "description": "Tag metadata.name values associated with the post.", "items": { "type": "string" } }, "template": { "type": "string", "description": "Theme template used to render this post." }, "title": { "minLength": 1, "type": "string", "description": "Display title of the post." }, "visible": { "type": "string", "description": "Visibility used by theme-side and public REST queries; anonymous clients only receive PUBLIC posts.", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" ] } }, "description": "Desired post content, publication, taxonomy, and rendering configuration." }, "PostStatus": { "type": "object", "properties": { "commentsCount": { "type": "integer", "description": "Total number of comments associated with the content item.", "format": "int32" }, "conditions": { "type": "array", "properties": { "empty": { "type": "boolean" } }, "description": "Reconciliation conditions reported by controllers for this content item.", "items": { "$ref": "#/components/schemas/Condition" } }, "contributors": { "type": "array", "description": "User metadata.name values that contributed to the content snapshots.", "items": { "type": "string" } }, "excerpt": { "type": "string", "description": "Excerpt text resolved from the content excerpt configuration." }, "hideFromList": { "type": "boolean", "description": "Whether any associated category hides this content item from theme-side lists." }, "inProgress": { "type": "boolean", "description": "Whether the latest draft snapshot differs from the released snapshot." }, "lastModifyTime": { "type": "string", "description": "Last modification time of the released snapshot.", "format": "date-time" }, "observedVersion": { "type": "integer", "description": "Metadata version observed by the last successful reconciliation.", "format": "int64" }, "permalink": { "type": "string", "description": "Absolute permalink calculated from the content permalink policy." }, "phase": { "type": "string", "description": "Current publishing phase, such as DRAFT, PENDING_APPROVAL, PUBLISHED, or FAILED." } }, "description": "Observed post state derived by content reconcilers." }, "PostVo": { "required": [ "metadata" ], "type": "object", "properties": { "categories": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryVo" } }, "content": { "$ref": "#/components/schemas/ContentVo" }, "contributors": { "type": "array", "items": { "$ref": "#/components/schemas/ContributorVo" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "owner": { "$ref": "#/components/schemas/ContributorVo" }, "spec": { "$ref": "#/components/schemas/PostSpec" }, "stats": { "$ref": "#/components/schemas/StatsVo" }, "status": { "$ref": "#/components/schemas/PostStatus" }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/TagVo" } } }, "description": "A value object for {@link Post Post}." }, "Reason": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ReasonSpec" } }, "description": "Reason extension that represents one notification event instance of a {@link ReasonType ReasonType}.\n\n \u003cp\u003eIt can be understood as an event that triggers a notification." }, "ReasonAttributes": { "type": "object", "properties": { "empty": { "type": "boolean" } }, "description": "{@link ReasonAttributes ReasonAttributes} is a map that stores the attributes of the reason." }, "ReasonList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Reason" } }, "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" } } }, "ReasonProperty": { "required": [ "name", "type" ], "type": "object", "properties": { "description": { "type": "string", "description": "Human-readable description of the attribute." }, "name": { "minLength": 1, "type": "string", "description": "Attribute name." }, "optional": { "type": "boolean", "description": "Whether the attribute may be absent from a reason.", "default": false }, "type": { "minLength": 1, "type": "string", "description": "Attribute value type, such as string, number, boolean, or object." } }, "description": "Attribute definition for reasons of a reason type." }, "ReasonSelector": { "required": [ "language", "reasonType" ], "type": "object", "properties": { "language": { "minLength": 1, "type": "string", "description": "Language tag this template applies to, or default for the fallback template.", "default": "default" }, "reasonType": { "minLength": 1, "type": "string", "description": "ReasonType metadata.name this template applies to." } }, "description": "Selector used to match a notification template to a reason type and language." }, "ReasonSpec": { "required": [ "author", "reasonType", "subject" ], "type": "object", "properties": { "attributes": { "$ref": "#/components/schemas/ReasonAttributes" }, "author": { "type": "string", "description": "User metadata.name or system actor that created the reason." }, "reasonType": { "type": "string", "description": "ReasonType metadata.name that defines this reason." }, "subject": { "$ref": "#/components/schemas/ReasonSubject" } }, "description": "Notification reason data used to render and dispatch notifications." }, "ReasonSubject": { "required": [ "apiVersion", "kind", "name", "title" ], "type": "object", "properties": { "apiVersion": { "type": "string", "description": "Subject API version." }, "kind": { "type": "string", "description": "Subject kind." }, "name": { "type": "string", "description": "Subject metadata.name." }, "title": { "type": "string", "description": "Human-readable subject title shown in notifications." }, "url": { "type": "string", "description": "URL that opens the subject." } }, "description": "Resource subject associated with a notification reason." }, "ReasonType": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ReasonTypeSpec" } }, "description": "Reason type extension that defines the schema and display metadata for notification reasons.\n\n \u003cp\u003eOne {@link ReasonType ReasonType} can have multiple {@link Reason Reason}s to notify." }, "ReasonTypeInfo": { "required": [ "name" ], "type": "object", "properties": { "description": { "type": "string", "description": "description of the reason type" }, "displayName": { "type": "string", "description": "display name of the reason type" }, "name": { "type": "string", "description": "reason type \u003ccode\u003emetadata.name\u003c/code\u003e" }, "uiPermissions": { "uniqueItems": true, "type": "array", "description": "UI permissions required to manage this reason type", "items": { "type": "string" } } }, "description": "Reason type metadata used by notification preference UI." }, "ReasonTypeList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ReasonType" } }, "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" } } }, "ReasonTypeNotifierCollectionRequest": { "required": [ "reasonTypeNotifiers" ], "type": "object", "properties": { "reasonTypeNotifiers": { "type": "array", "description": "notifier selections grouped by reason type", "items": { "$ref": "#/components/schemas/ReasonTypeNotifierRequest" } } }, "description": "Payload for saving notifier selections by reason type." }, "ReasonTypeNotifierMatrix": { "required": [ "notifiers", "reasonTypes", "stateMatrix" ], "type": "object", "properties": { "notifiers": { "type": "array", "description": "Notification notifiers available to the user.", "items": { "$ref": "#/components/schemas/NotifierInfo" } }, "reasonTypes": { "type": "array", "description": "Reason types available to the user.", "items": { "$ref": "#/components/schemas/ReasonTypeInfo" } }, "stateMatrix": { "type": "array", "description": "Enabled-state matrix indexed by reason type and notifier.", "items": { "type": "array", "items": { "type": "boolean" } } } }, "description": "Matrix describing which notifiers are enabled for each reason type." }, "ReasonTypeNotifierRequest": { "required": [ "notifiers", "reasonType" ], "type": "object", "properties": { "notifiers": { "type": "array", "description": "\u003ccode\u003emetadata.name\u003c/code\u003e values of enabled notifiers.", "items": { "type": "string" } }, "reasonType": { "type": "string", "description": "\u003ccode\u003emetadata.name\u003c/code\u003e of the reason type." } }, "description": "Notifier selection for one reason type." }, "ReasonTypeSpec": { "required": [ "description", "displayName" ], "type": "object", "properties": { "description": { "minLength": 1, "type": "string", "description": "Human-readable description of when this reason type is triggered." }, "displayName": { "minLength": 1, "type": "string", "description": "Display name shown for this reason type." }, "properties": { "type": "array", "description": "Attribute definitions available on reasons of this type.", "items": { "$ref": "#/components/schemas/ReasonProperty" } } }, "description": "Desired reason type metadata and properties available to templates." }, "Ref": { "required": [ "group", "kind", "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" }, "RememberMeToken": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/RememberMeTokenSpec" } }, "description": "Persistent remember-me token used to keep a user\u0027s browser session signed in across restarts." }, "RememberMeTokenList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/RememberMeToken" } }, "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" } } }, "RememberMeTokenSpec": { "required": [ "series", "tokenValue", "username" ], "type": "object", "properties": { "lastUsed": { "type": "string", "description": "Last time this remember-me token was used successfully.", "format": "date-time" }, "previousTokenValue": { "type": "string", "description": "The previous token value, stored when the token is rotated. Used to accept recently-rotated tokens within a\n grace period to prevent false-positive cookie theft detection during concurrent requests." }, "series": { "minLength": 1, "type": "string", "description": "Browser series identifier used by Spring Security remember-me authentication." }, "tokenValue": { "minLength": 1, "type": "string", "description": "Current remember-me token value expected from the browser cookie." }, "username": { "minLength": 1, "type": "string", "description": "User metadata.name that owns this remember-me token." } }, "description": "Persistent remember-me token values for a user and browser series." }, "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" } }, "description": "Reply extension that belongs to a top-level {@link Comment Comment}." }, "ReplyList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Reply" } }, "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" } } }, "ReplyRequest": { "required": [ "content", "raw" ], "type": "object", "properties": { "allowNotification": { "type": "boolean", "description": "Whether to subscribe the owner to notifications for future replies.", "default": false }, "content": { "minLength": 1, "type": "string", "description": "Rendered HTML content for the reply. Unsafe HTML is rejected." }, "hidden": { "type": "boolean", "description": "Whether the reply should be hidden from normal display.", "default": false }, "owner": { "$ref": "#/components/schemas/CommentEmailOwner" }, "quoteReply": { "type": "string", "description": "Metadata name of the reply being quoted, if this reply quotes another reply." }, "raw": { "minLength": 1, "type": "string", "description": "Original reply text submitted by the editor." } }, "description": "Reply creation payload for console comment APIs." }, "ReplySpec": { "required": [ "allowNotification", "approved", "commentName", "content", "hidden", "owner", "priority", "raw", "top" ], "type": "object", "properties": { "allowNotification": { "type": "boolean", "description": "Whether notification subscriptions should be created for this comment or reply.", "default": true }, "approved": { "type": "boolean", "description": "Whether the comment has passed moderation and may be visible.", "default": false }, "approvedTime": { "type": "string", "description": "Time when the comment was approved.", "format": "date-time" }, "commentName": { "minLength": 1, "type": "string", "description": "Parent Comment metadata.name." }, "content": { "minLength": 1, "type": "string", "description": "Rendered HTML content displayed to REST and theme consumers." }, "creationTime": { "type": "string", "description": "Creation time supplied by the caller. If absent, metadata.creationTimestamp is used.", "format": "date-time" }, "hidden": { "type": "boolean", "description": "Whether the comment should be hidden from public REST and theme output.", "default": false }, "ipAddress": { "type": "string", "description": "IP address recorded when the comment was submitted." }, "owner": { "$ref": "#/components/schemas/CommentOwner" }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32", "default": 0 }, "quoteReply": { "type": "string", "description": "Quoted Reply metadata.name when this reply responds to another reply." }, "raw": { "minLength": 1, "type": "string", "description": "Raw comment body submitted by the owner before HTML sanitization and rendering." }, "top": { "type": "boolean", "description": "Whether the comment is pinned above normal comment ordering.", "default": false }, "userAgent": { "type": "string", "description": "Browser user agent recorded when the comment was submitted." } }, "description": "Desired state of a reply." }, "ReplyStatus": { "type": "object", "properties": { "observedVersion": { "type": "integer", "description": "Metadata version observed by the last successful reconciliation.", "format": "int64" } }, "description": "Observed state of a reply." }, "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 next 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" } } }, "RestoreRequest": { "type": "object", "properties": { "backupName": { "type": "string", "description": "Backup \u003ccode\u003emetadata.name\u003c/code\u003e." }, "downloadUrl": { "type": "string", "description": "Remote backup HTTP URL." }, "file": { "type": "string", "description": "Backup file.", "format": "binary" }, "filename": { "type": "string", "description": "Filename of backup file in backups root." } }, "description": "Multipart payload for restoring a backup." }, "ReverseProxy": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "rules": { "type": "array", "description": "Path mapping rules served by this reverse proxy resource.", "items": { "$ref": "#/components/schemas/ReverseProxyRule" } } }, "description": "The reverse proxy custom resource is used to configure a path to proxy it to a directory or file.\n\n \u003cp\u003eHTTP proxy may be added in the future." }, "ReverseProxyList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ReverseProxy" } }, "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" } } }, "ReverseProxyRule": { "type": "object", "properties": { "file": { "$ref": "#/components/schemas/FileReverseProxyProvider" }, "path": { "type": "string" } }, "description": "A path mapping from a public request path to a file provider." }, "RevertSnapshotForPostParam": { "required": [ "snapshotName" ], "type": "object", "properties": { "snapshotName": { "minLength": 1, "type": "string", "description": "snapshot \u003ccode\u003emetadata.name\u003c/code\u003e to restore as the post\u0027s head content" } }, "description": "Request body for restoring post content from a snapshot." }, "RevertSnapshotForSingleParam": { "required": [ "snapshotName" ], "type": "object", "properties": { "snapshotName": { "minLength": 1, "type": "string", "description": "snapshot \u003ccode\u003emetadata.name\u003c/code\u003e to restore as the single page\u0027s head content" } }, "description": "Request body for restoring single page content from a snapshot." }, "Role": { "required": [ "apiVersion", "kind", "metadata", "rules" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "rules": { "type": "array", "description": "Policy rules granted by this role.", "items": { "$ref": "#/components/schemas/PolicyRule" } } }, "description": "Role extension that defines RBAC policy rules for users and other subjects." }, "RoleBinding": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "roleRef": { "$ref": "#/components/schemas/RoleRef" }, "subjects": { "type": "array", "description": "Subjects that receive the permissions from roleRef.", "items": { "$ref": "#/components/schemas/Subject" } } }, "description": "RoleBinding extension that grants a Role to one or more subjects." }, "RoleBindingList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/RoleBinding" } }, "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" } } }, "RoleList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Role" } }, "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" } } }, "RoleRef": { "type": "object", "properties": { "apiGroup": { "type": "string", "description": "API group of the role resource being referenced." }, "kind": { "type": "string", "description": "Kind of the role resource being referenced." }, "name": { "type": "string", "description": "Metadata name of the role resource being referenced." } }, "description": "RoleRef contains information that points to the role being used." }, "SearchOption": { "required": [ "keyword" ], "type": "object", "properties": { "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional annotations for extending search option by other search engines." }, "filterExposed": { "type": "boolean", "description": "Whether to filter exposed content. If null, it will not filter." }, "filterPublished": { "type": "boolean", "description": "Whether to filter published content. If null, it will not filter." }, "filterRecycled": { "type": "boolean", "description": "Whether to filter recycled content. If null, it will not filter." }, "highlightPostTag": { "type": "string", "description": "Post HTML tag of highlighted fragment." }, "highlightPreTag": { "type": "string", "description": "Pre HTML tag of highlighted fragment." }, "includeCategoryNames": { "type": "array", "description": "Category names to include(and). If null, it will include all categories.", "items": { "type": "string" } }, "includeOwnerNames": { "type": "array", "description": "Owner names to include(or). If null, it will include all owners.", "items": { "type": "string" } }, "includeTagNames": { "type": "array", "description": "Tag names to include(and). If null, it will include all tags.", "items": { "type": "string" } }, "includeTypes": { "type": "array", "description": "Types to include(or). If null, it will include all types.", "items": { "type": "string" } }, "keyword": { "minLength": 1, "type": "string", "description": "Search keyword." }, "limit": { "maximum": 1000, "minimum": 1, "type": "integer", "description": "Limit of result.", "format": "int32" } }, "description": "Search option. It is used to control search behavior." }, "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" } } }, "Secret": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "data": { "type": "object", "additionalProperties": { "type": "string", "format": "byte" }, "description": "The total bytes of the values in the Data field must be less than {@link run.halo.app.extension.Secret#MAX_SECRET_SIZE #MAX_SECRET_SIZE} bytes.\n\n \u003cp\u003e\u003ccode\u003edata\u003c/code\u003e contains the secret data. Each key must consist of alphanumeric characters, \u0027-\u0027, \u0027_\u0027 or \u0027.\u0027. The\n serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string)\n data value here. Described in \u003ca href\u003d\"https://tools.ietf.org/html/rfc4648#section-4\"\u003erfc4648#section-4\u003c/a\u003e" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "stringData": { "type": "object", "additionalProperties": { "type": "string" }, "description": "\u003ccode\u003estringData\u003c/code\u003e allows specifying non-binary secret data in string form. It is provided as a write-only input\n field for convenience. All keys and values are merged into the data field on write, overwriting any existing\n values. The stringData field is never output when reading from the API." }, "type": { "type": "string", "description": "Used to facilitate programmatic handling of secret data. More info: \u003ca\n href\u003d\"https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\"\u003esecret-types\u003c/a\u003e" } }, "description": "Secret is a small piece of sensitive data which should be kept secret, such as a password, a token, or a key." }, "SecretList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Secret" } }, "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" } } }, "Setting": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/SettingSpec" } }, "description": "Setting extension that describes one or more configuration forms and their schema." }, "SettingForm": { "minLength": 1, "required": [ "formSchema", "group" ], "type": "object", "properties": { "formSchema": { "type": "array", "description": "FormKit-compatible schema used to render the form fields.", "items": { "type": "object" } }, "group": { "type": "string", "description": "Stable form group name used to store submitted values." }, "label": { "type": "string", "description": "Display label shown for this form group." } }, "description": "A single form group in a setting definition." }, "SettingList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Setting" } }, "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" } } }, "SettingRef": { "required": [ "group", "name" ], "type": "object", "properties": { "group": { "minLength": 1, "type": "string", "description": "Setting form group name." }, "name": { "minLength": 1, "type": "string", "description": "Setting metadata.name." } }, "description": "Reference to a setting definition used by this provider." }, "SettingSpec": { "required": [ "forms" ], "type": "object", "properties": { "forms": { "minLength": 1, "type": "array", "description": "Form groups rendered for this setting definition.", "items": { "$ref": "#/components/schemas/SettingForm" } } }, "description": "Collection of form groups that make up this setting definition." }, "SetupRequest": { "required": [ "externalUrl", "password", "siteTitle", "username" ], "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "externalUrl": { "pattern": "", "type": "string" }, "language": { "pattern": "^(zh-CN|zh-TW|en|es)$", "type": "string" }, "password": { "maxLength": 257, "minLength": 5, "pattern": "^[A-Za-z0-9!@#$%^\u0026*.?]+$", "type": "string" }, "siteTitle": { "maxLength": 80, "minLength": 0, "type": "string" }, "username": { "maxLength": 63, "minLength": 4, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$", "type": "string" } } }, "SinglePage": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/SinglePageSpec" }, "status": { "$ref": "#/components/schemas/SinglePageStatus" } }, "description": "Single page extension that stores standalone page metadata, publication settings, and derived status." }, "SinglePageList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/SinglePage" } }, "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" } } }, "SinglePageRequest": { "required": [ "content", "page" ], "type": "object", "properties": { "content": { "$ref": "#/components/schemas/ContentUpdateParam" }, "page": { "$ref": "#/components/schemas/SinglePage" } }, "description": "Single page editor payload containing the page extension and its editable content." }, "SinglePageSpec": { "required": [ "allowComment", "deleted", "excerpt", "pinned", "priority", "publish", "slug", "title", "visible" ], "type": "object", "properties": { "allowComment": { "type": "boolean", "description": "Whether new comments are allowed for this single page.", "default": true }, "baseSnapshot": { "type": "string", "description": "Base Snapshot metadata.name used to reconstruct raw and rendered content from patches." }, "cover": { "type": "string", "description": "Cover image URL or attachment URI of the single page." }, "deleted": { "type": "boolean", "description": "Whether the single page is logically deleted and should be treated as recycled.", "default": false }, "excerpt": { "$ref": "#/components/schemas/Excerpt" }, "headSnapshot": { "type": "string", "description": "Snapshot metadata.name containing the latest editable draft content." }, "htmlMetas": { "type": "array", "description": "HTML meta tag attribute maps injected into the rendered single page head.", "items": { "type": "object", "additionalProperties": { "type": "string" } } }, "owner": { "type": "string", "description": "User metadata.name of the single page owner." }, "pinned": { "type": "boolean", "description": "Whether the single page should be pinned ahead of normal page ordering.", "default": false }, "priority": { "type": "integer", "description": "Sorting priority. Higher values sort before lower values where priority ordering is applied.", "format": "int32", "default": 0 }, "publish": { "type": "boolean", "description": "Desired publish state. False keeps the single page as a draft or moves it back to draft.", "default": false }, "publishTime": { "type": "string", "description": "Time when the single page was published or is scheduled to be published.", "format": "date-time" }, "releaseSnapshot": { "type": "string", "description": "Snapshot metadata.name selected as the published content version." }, "slug": { "minLength": 1, "type": "string", "description": "URL slug used to build the single page permalink." }, "template": { "type": "string", "description": "Theme template used to render this single page." }, "title": { "minLength": 1, "type": "string", "description": "Display title of the single page." }, "visible": { "type": "string", "description": "Visibility used by theme-side and public REST queries; anonymous clients only receive PUBLIC single pages.", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" ] } }, "description": "Desired single page content, publication, and rendering configuration." }, "SinglePageStatus": { "type": "object", "properties": { "commentsCount": { "type": "integer", "description": "Total number of comments associated with the content item.", "format": "int32" }, "conditions": { "type": "array", "properties": { "empty": { "type": "boolean" } }, "description": "Reconciliation conditions reported by controllers for this content item.", "items": { "$ref": "#/components/schemas/Condition" } }, "contributors": { "type": "array", "description": "User metadata.name values that contributed to the content snapshots.", "items": { "type": "string" } }, "excerpt": { "type": "string", "description": "Excerpt text resolved from the content excerpt configuration." }, "hideFromList": { "type": "boolean", "description": "Whether any associated category hides this content item from theme-side lists." }, "inProgress": { "type": "boolean", "description": "Whether the latest draft snapshot differs from the released snapshot." }, "lastModifyTime": { "type": "string", "description": "Last modification time of the released snapshot.", "format": "date-time" }, "observedVersion": { "type": "integer", "description": "Metadata version observed by the last successful reconciliation.", "format": "int64" }, "permalink": { "type": "string", "description": "Absolute permalink calculated from the content permalink policy." }, "phase": { "type": "string", "description": "Current publishing phase, such as DRAFT, PENDING_APPROVAL, PUBLISHED, or FAILED." } }, "description": "Observed single page state derived by content reconcilers." }, "SinglePageVo": { "required": [ "metadata" ], "type": "object", "properties": { "content": { "$ref": "#/components/schemas/ContentVo" }, "contributors": { "type": "array", "items": { "$ref": "#/components/schemas/ContributorVo" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "owner": { "$ref": "#/components/schemas/ContributorVo" }, "spec": { "$ref": "#/components/schemas/SinglePageSpec" }, "stats": { "$ref": "#/components/schemas/StatsVo" }, "status": { "$ref": "#/components/schemas/SinglePageStatus" } }, "description": "A value object for {@link SinglePage SinglePage}." }, "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" } }, "description": "A value object for site stats." }, "SnapShotSpec": { "required": [ "owner", "rawType", "subjectRef" ], "type": "object", "properties": { "contentPatch": { "type": "string", "description": "Full rendered content for a base snapshot, or a JSON-encoded line diff from the base rendered content." }, "contributors": { "uniqueItems": true, "type": "array", "description": "User metadata.name values that contributed to this snapshot.", "items": { "type": "string" } }, "lastModifyTime": { "type": "string", "description": "Last time the snapshot content was modified.", "format": "date-time" }, "owner": { "minLength": 1, "type": "string", "description": "User metadata.name of the snapshot owner." }, "parentSnapshotName": { "type": "string", "description": "Parent Snapshot metadata.name in the snapshot revision chain." }, "rawPatch": { "type": "string", "description": "Full raw source content for a base snapshot, or a JSON-encoded line diff from the base raw content." }, "rawType": { "maxLength": 50, "minLength": 1, "type": "string", "description": "Source format of the raw content, such as markdown, html, json, asciidoc, or latex." }, "subjectRef": { "$ref": "#/components/schemas/Ref" } }, "description": "Content snapshot payload and metadata." }, "Snapshot": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/SnapShotSpec" } }, "description": "Snapshot extension that stores a version of post or single page content." }, "SnapshotList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Snapshot" } }, "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" } } }, "Stats": { "type": "object", "properties": { "approvedComment": { "type": "integer", "description": "Total approved comment count.", "format": "int32" }, "totalComment": { "type": "integer", "description": "Total comment count, including comments that may not be approved.", "format": "int32" }, "upvote": { "type": "integer", "description": "Total upvote count.", "format": "int32" }, "visit": { "type": "integer", "description": "Total visit count.", "format": "int32" } }, "description": "Aggregated visit, upvote, and comment counters for a content resource." }, "StatsVo": { "type": "object", "properties": { "comment": { "type": "integer", "format": "int32" }, "upvote": { "type": "integer", "format": "int32" }, "visit": { "type": "integer", "format": "int32" } }, "description": "Stats value object." }, "Subject": { "type": "object", "properties": { "apiGroup": { "type": "string", "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults\n to \"rbac.authorization.halo.run\" for User and Group subjects." }, "kind": { "type": "string", "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n If the Authorizer does not recognize the kind value, the Authorizer should report an error." }, "name": { "type": "string", "description": "Name of the object being referenced." } }, "description": "Subject that receives permissions from a RoleBinding." }, "Subscription": { "required": [ "apiVersion", "kind", "metadata" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/SubscriptionSpec" } }, "description": "Subscription extension that records which subscriber should be notified when a matching reason is triggered.\n\n \u003cp\u003eIt holds a {@link Subscriber Subscriber} to the user to be notified, a {@link InterestReason InterestReason} to subscribe to." }, "SubscriptionList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Subscription" } }, "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" } } }, "SubscriptionSpec": { "required": [ "reason", "subscriber", "unsubscribeToken" ], "type": "object", "properties": { "disabled": { "type": "boolean", "description": "Whether the subscription has been disabled, usually after the subscriber unsubscribes." }, "reason": { "$ref": "#/components/schemas/InterestReason" }, "subscriber": { "$ref": "#/components/schemas/SubscriptionSubscriber" }, "unsubscribeToken": { "type": "string", "description": "Token used to unsubscribe without authenticating as the subscriber." } }, "description": "Desired notification subscription settings." }, "SubscriptionSubscriber": { "required": [ "name" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string", "description": "User metadata.name of the subscriber." } }, "description": "Subscriber that receives notifications." }, "Tag": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/TagSpec" }, "status": { "$ref": "#/components/schemas/TagStatus" } }, "description": "Tag extension for grouping posts by free-form labels." }, "TagList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Tag" } }, "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" } } }, "TagSpec": { "required": [ "displayName", "slug" ], "type": "object", "properties": { "color": { "pattern": "^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$", "type": "string", "description": "Display color of the tag in 3- or 6-digit hex notation, such as #fff or #ffffff." }, "cover": { "type": "string", "description": "Cover image URL or attachment URI of the tag." }, "description": { "type": "string", "description": "Human-readable description of the tag." }, "displayName": { "minLength": 1, "type": "string", "description": "Display name of the tag." }, "slug": { "minLength": 1, "type": "string", "description": "URL slug used to build the tag permalink." } }, "description": "Desired tag display and rendering configuration." }, "TagStatus": { "type": "object", "properties": { "observedVersion": { "type": "integer", "description": "Metadata version observed by the last successful reconciliation.", "format": "int64" }, "permalink": { "type": "string", "description": "Absolute permalink calculated from the tag permalink policy." }, "postCount": { "type": "integer", "description": "Total number of posts associated with the tag.", "format": "int32" }, "visiblePostCount": { "type": "integer", "description": "Total number of published and public posts associated with the tag.", "format": "int32" } }, "description": "Observed tag state derived by content reconcilers." }, "TagVo": { "required": [ "metadata" ], "type": "object", "properties": { "metadata": { "$ref": "#/components/schemas/Metadata" }, "postCount": { "type": "integer", "format": "int32" }, "spec": { "$ref": "#/components/schemas/TagSpec" }, "status": { "$ref": "#/components/schemas/TagStatus" } }, "description": "A value object for {@link Tag Tag}." }, "TagVoList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/TagVo" } }, "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" } } }, "TemplateContent": { "required": [ "title" ], "type": "object", "properties": { "htmlBody": { "type": "string", "description": "HTML body rendered for notification channels that support HTML." }, "rawBody": { "type": "string", "description": "Plain text or source body rendered for notification channels that do not use HTML." }, "title": { "minLength": 1, "type": "string", "description": "Rendered notification title." } }, "description": "Notification template content." }, "TemplateDescriptor": { "required": [ "file", "name" ], "type": "object", "properties": { "description": { "type": "string", "description": "Human-readable description of when to use this template." }, "file": { "minLength": 1, "type": "string", "description": "Template file path relative to the theme templates directory." }, "name": { "minLength": 1, "type": "string", "description": "Template display name shown to users." }, "screenshot": { "type": "string", "description": "Screenshot URL or attachment URI for previewing the template." } }, "description": "Type used to describe custom template page." }, "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" } } }, "Theme": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/ThemeSpec" }, "status": { "$ref": "#/components/schemas/ThemeStatus" } }, "description": "Theme extension that describes an installable frontend theme and its runtime state." }, "ThemeInstallRequest": { "type": "object", "description": "Multipart payload for installing a theme." }, "ThemeList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/Theme" } }, "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" } } }, "ThemeSpec": { "required": [ "author", "displayName" ], "type": "object", "properties": { "author": { "$ref": "#/components/schemas/Author" }, "configMapName": { "type": "string", "description": "ConfigMap metadata.name storing the theme configuration values." }, "customTemplates": { "$ref": "#/components/schemas/CustomTemplates" }, "description": { "type": "string", "description": "Human-readable theme description." }, "displayName": { "minLength": 1, "type": "string", "description": "Display name shown for the theme." }, "homepage": { "type": "string", "description": "Theme homepage URL." }, "issues": { "type": "string", "description": "Issue tracker URL." }, "license": { "type": "array", "description": "Licenses declared by the theme.", "items": { "$ref": "#/components/schemas/License" } }, "logo": { "type": "string", "description": "Logo URL or attachment URI for the theme." }, "repo": { "type": "string", "description": "Source repository URL." }, "requires": { "type": "string", "description": "Required Halo version range. The wildcard value means any Halo version." }, "settingName": { "type": "string", "description": "Setting metadata.name used to render the theme configuration form." }, "version": { "type": "string", "description": "Theme version. The wildcard value means any version." } }, "description": "Desired theme metadata and configuration references." }, "ThemeStatus": { "type": "object", "properties": { "conditions": { "type": "array", "properties": { "empty": { "type": "boolean" } }, "description": "Reconciliation conditions for the theme.", "items": { "$ref": "#/components/schemas/Condition" } }, "entry": { "type": "string", "description": "Resolved Console/User Center UI JavaScript entry URL served from the theme root." }, "inDevelopment": { "type": "boolean", "description": "Whether the theme appears to be a local development workspace." }, "location": { "type": "string", "description": "Local filesystem location where the theme is loaded from." }, "pageLayout": { "$ref": "#/components/schemas/PageLayout" }, "phase": { "type": "string", "description": "Current theme lifecycle phase.", "enum": [ "READY", "FAILED", "UNKNOWN" ] }, "screenshot": { "type": "string", "description": "Resolved preview screenshot URL served from the theme root." }, "stylesheet": { "type": "string", "description": "Resolved Console/User Center UI stylesheet URL served from the theme root." } }, "description": "Observed theme lifecycle and installation state." }, "TotpAuthLinkResponse": { "required": [ "authLink", "rawSecret" ], "type": "object", "properties": { "authLink": { "type": "string", "description": "otpauth URI that can be encoded as a QR code.", "format": "uri" }, "rawSecret": { "type": "string", "description": "Raw TOTP secret for manual authenticator setup." } }, "description": "TOTP provisioning data for configuring an authenticator app." }, "TotpRequest": { "required": [ "code", "password", "secret" ], "type": "object", "properties": { "code": { "type": "string", "description": "TOTP code generated from the new secret." }, "currentTotpCode": { "type": "string", "description": "Current TOTP code, required when replacing an existing TOTP authenticator." }, "password": { "minLength": 1, "type": "string", "description": "Current password of the authenticated user." }, "secret": { "minLength": 1, "type": "string", "description": "Raw TOTP secret returned by the auth-link endpoint." } }, "description": "TOTP configuration payload." }, "TwoFactorAuthSettings": { "required": [ "available", "emailVerified", "enabled", "totpConfigured" ], "type": "object", "properties": { "available": { "type": "boolean", "description": "Check if 2FA is available." }, "emailVerified": { "type": "boolean", "description": "Whether the user\u0027s email address has been verified." }, "enabled": { "type": "boolean", "description": "Whether two-factor authentication is enabled for the user." }, "totpConfigured": { "type": "boolean", "description": "Whether a TOTP authenticator has been configured." } }, "description": "Two-factor authentication settings for the current user." }, "UcUploadFromUrlRequest": { "required": [ "url" ], "type": "object", "properties": { "filename": { "type": "string", "description": "custom file name" }, "url": { "type": "string", "description": "remote file URL to transfer into user-center storage", "format": "url" } }, "description": "User-center request payload for uploading from a URL." }, "UcUserVo": { "required": [ "name", "passwordSet" ], "type": "object", "properties": { "avatar": { "type": "string", "description": "avatar of the current user" }, "displayName": { "type": "string", "description": "display name of the current user" }, "name": { "type": "string", "description": "username of the current user" }, "passwordSet": { "type": "boolean", "description": "whether the current user has a password set" } }, "description": "Masked current user profile. The password hash is never exposed." }, "UiPluginProvider": { "required": [ "kind", "name", "type", "version" ], "type": "object", "properties": { "entry": { "type": "string", "description": "ESM entry URL, required for ESM providers." }, "kind": { "type": "string", "description": "Provider classification and loading mode.", "enum": [ "legacy", "esm", "invalid" ] }, "name": { "type": "string" }, "reason": { "type": "string", "description": "Discovery failure reason, required for invalid providers." }, "style": { "type": "string", "description": "Optional startup stylesheet URL." }, "type": { "type": "string", "enum": [ "plugin", "theme" ] }, "version": { "type": "string" } }, "description": "One ordered UI provider classification." }, "UiPluginProviderDescriptor": { "required": [ "providers" ], "type": "object", "properties": { "legacyScript": { "type": "string", "description": "Legacy aggregate script URL, present when a legacy provider exists." }, "providers": { "type": "array", "items": { "$ref": "#/components/schemas/UiPluginProvider" } } }, "description": "Browser descriptor for the currently enabled plugin and theme UI providers." }, "UpgradeFromUriRequest": { "required": [ "uri" ], "type": "object", "properties": { "uri": { "type": "string", "description": "remote URI of the theme ZIP file", "format": "uri" } }, "description": "Payload for upgrading a theme from a remote URI." }, "UpgradeRequest": { "required": [ "file" ], "type": "object", "properties": { "file": { "type": "string", "description": "Theme zip file.", "format": "binary" } } }, "UploadForm": { "type": "object", "properties": { "file": { "type": "string", "description": "The file to upload. If not provided, the url will be used.", "format": "binary" }, "filename": { "type": "string", "description": "The filename to use when uploading from url. If not provided, the filename will be extracted from the url." }, "url": { "type": "string", "description": "The url to upload from. If not provided, the file will be used." } }, "description": "Upload form from console. The file and url are mutually exclusive. If both are provided, the file will be used." }, "UploadFromUrlRequest": { "required": [ "policyName", "url" ], "type": "object", "properties": { "filename": { "type": "string", "description": "custom file name" }, "groupName": { "type": "string", "description": "attachment group \u003ccode\u003emetadata.name\u003c/code\u003e" }, "policyName": { "type": "string", "description": "storage policy \u003ccode\u003emetadata.name\u003c/code\u003e" }, "url": { "type": "string", "description": "remote file URL to transfer into storage", "format": "url" } }, "description": "Request payload for creating an attachment from a remote URL." }, "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" } }, "description": "User extension that stores profile, authentication, and account state for a Halo user." }, "UserConnection": { "required": [ "apiVersion", "kind", "metadata", "spec" ], "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "spec": { "$ref": "#/components/schemas/UserConnectionSpec" } }, "description": "User connection extension that links a Halo user to an external OAuth2 account." }, "UserConnectionList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/UserConnection" } }, "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" } } }, "UserConnectionSpec": { "required": [ "providerUserId", "registrationId", "username" ], "type": "object", "properties": { "providerUserId": { "type": "string", "description": "The unique identifier for the user\u0027s connection to the OAuth provider. for example, the user\u0027s GitHub id." }, "registrationId": { "type": "string", "description": "The name of the OAuth provider (e.g. Google, Facebook, Twitter)." }, "updatedAt": { "type": "string", "description": "The time when the user connection was last updated.", "format": "date-time" }, "username": { "type": "string", "description": "The {@link Metadata#getName Metadata#getName()} of the user associated with the OAuth connection." } }, "description": "External OAuth2 account binding for a Halo user." }, "UserDevice": { "required": [ "active", "currentDevice", "device" ], "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the device session is still active." }, "currentDevice": { "type": "boolean", "description": "Whether this device matches the current session." }, "device": { "$ref": "#/components/schemas/Device" } }, "description": "User device entry with session state." }, "UserEndpoint.ListedUserList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/ListedUser" } }, "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" } } }, "UserList": { "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 next page." }, "hasPrevious": { "type": "boolean", "description": "Indicates whether current page has previous page." }, "items": { "type": "array", "description": "A chunk of items.", "items": { "$ref": "#/components/schemas/User" } }, "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" } } }, "UserPermission": { "required": [ "permissions", "roles", "uiPermissions" ], "type": "object", "properties": { "permissions": { "type": "array", "description": "Role templates or permissions resolved from granted roles.", "items": { "$ref": "#/components/schemas/Role" } }, "roles": { "type": "array", "description": "Roles granted to the user.", "items": { "$ref": "#/components/schemas/Role" } }, "uiPermissions": { "type": "array", "description": "Resolved UI permission identifiers.", "items": { "type": "string" } } }, "description": "Resolved role and permission information for a user." }, "UserSpec": { "required": [ "displayName" ], "type": "object", "properties": { "avatar": { "type": "string", "description": "Avatar URL or attachment URI for the user." }, "bio": { "type": "string", "description": "User biography shown on profile surfaces." }, "disabled": { "type": "boolean", "description": "Whether the user account is disabled." }, "displayName": { "type": "string", "description": "Display name shown for the user." }, "email": { "type": "string", "description": "Email address used for sign-in and notifications." }, "emailVerified": { "type": "boolean", "description": "Whether the email address has been verified." }, "loginHistoryLimit": { "type": "integer", "description": "Maximum number of login history entries retained for this user.", "format": "int32" }, "password": { "type": "string", "description": "Password hash or encoded password value." }, "phone": { "type": "string", "description": "Phone number associated with the user." }, "registeredAt": { "type": "string", "description": "Time when the user registered.", "format": "date-time" }, "totpEncryptedSecret": { "type": "string", "description": "Encrypted TOTP secret used for two-factor authentication." }, "twoFactorAuthEnabled": { "type": "boolean", "description": "Whether two-factor authentication is enabled for this user." } }, "description": "Desired user profile and authentication settings." }, "UserStatus": { "type": "object", "properties": { "permalink": { "type": "string", "description": "Public permalink of the user\u0027s profile or author page." } }, "description": "Observed user state derived by the application." }, "VerifyCodeRequest": { "required": [ "code", "password" ], "type": "object", "properties": { "code": { "minLength": 1, "type": "string", "description": "email verification code" }, "password": { "type": "string", "description": "current password of the authenticated user" } }, "description": "Payload for verifying an email address by code." }, "VoteRequest": { "required": [ "group", "name", "plural" ], "type": "object", "properties": { "group": { "type": "string", "description": "API group of the extension resource" }, "name": { "type": "string", "description": "extension resource \u003ccode\u003emetadata.name\u003c/code\u003e" }, "plural": { "type": "string", "description": "plural name of the extension resource" } }, "description": "Payload for voting on an extension resource." } }, "securitySchemes": { "basicAuth": { "scheme": "basic", "type": "http" }, "bearerAuth": { "bearerFormat": "JWT", "scheme": "bearer", "type": "http" } } } }