cisd/docs/openapi/cisd-init.openapi.json
2026-03-11 14:23:11 +08:00

1053 lines
25 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "TMS CISD Init Internal API",
"version": "1.0.0",
"description": "CISD 一体机初始化相关内部接口(含设备状态接口)。\n返回体统一为 ApiResponse 包装结构。\n"
},
"servers": [
{
"url": "http://127.0.0.1:8080",
"description": "Local"
}
],
"tags": [
{
"name": "Device",
"description": "设备信息与状态"
},
{
"name": "File",
"description": "内部文件上传与查询"
},
{
"name": "Init",
"description": "CISD 初始化任务"
}
],
"security": [
{
"InternalTokenAuth": [
]
}
],
"paths": {
"/api/v1/device/info": {
"get": {
"tags": [
"Device"
],
"summary": "获取设备信息",
"operationId": "getDeviceInfo",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseDeviceInfoResponse"
}
}
}
}
}
}
},
"/api/v1/device/status": {
"get": {
"tags": [
"Device"
],
"summary": "获取设备状态(含预制版本信息)",
"operationId": "getDeviceStatus",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseDeviceInfoResponse"
}
}
}
}
}
}
},
"/api/v1/device/restart": {
"post": {
"tags": [
"Device"
],
"summary": "重启设备",
"operationId": "restartDevice",
"parameters": [
{
"name": "X-User",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "操作人"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseDeviceActionResponse"
}
}
}
}
}
}
},
"/api/v1/files/upload": {
"post": {
"tags": [
"File"
],
"summary": "上传文件并返回 fileId",
"operationId": "uploadFile",
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseFileUploadResponse"
}
}
}
}
}
}
},
"/api/v1/files/{fileId}": {
"get": {
"tags": [
"File"
],
"summary": "查询文件元数据",
"operationId": "getFileDetail",
"parameters": [
{
"name": "fileId",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "上传接口返回的 fileId"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseFileDetailResponse"
}
}
}
}
}
}
},
"/api/v1/init/template": {
"get": {
"tags": [
"Init"
],
"summary": "获取初始化模板元信息",
"operationId": "getInitTemplate",
"parameters": [
{
"name": "version",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "兼容参数,后端按预置版本返回"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitPlanTemplateResponse"
}
}
}
}
}
}
},
"/api/v1/init/preview": {
"post": {
"tags": [
"Init"
],
"summary": "初始化预检(不落库)",
"operationId": "previewInitPlan",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InitPreviewRequest"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitPreviewResponse"
}
}
}
}
}
}
},
"/api/v1/init/tasks": {
"post": {
"tags": [
"Init"
],
"summary": "创建初始化任务",
"operationId": "createInitTask",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InitPreviewRequest"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitCreateTaskResponse"
}
}
}
}
}
}
},
"/api/v1/init/tasks/{taskId}": {
"get": {
"tags": [
"Init"
],
"summary": "查询任务详情",
"operationId": "getInitTaskDetail",
"parameters": [
{
"name": "taskId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitTaskDetailResponse"
}
}
}
}
}
}
},
"/api/v1/init/tasks/{taskId}/steps": {
"get": {
"tags": [
"Init"
],
"summary": "查询任务步骤",
"operationId": "getInitTaskSteps",
"parameters": [
{
"name": "taskId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitTaskStepResponseList"
}
}
}
}
}
}
},
"/api/v1/init/tasks/{taskId}/steps/{stepNo}/log": {
"get": {
"tags": [
"Init"
],
"summary": "查询步骤日志",
"operationId": "getInitTaskStepLog",
"parameters": [
{
"name": "taskId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "stepNo",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitTaskStepLogResponse"
}
}
}
}
}
}
},
"/api/v1/init/tasks/{taskId}/execute": {
"post": {
"tags": [
"Init"
],
"summary": "执行初始化任务",
"operationId": "executeInitTask",
"parameters": [
{
"name": "taskId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiResponseInitTaskExecuteResponse"
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"InternalTokenAuth": {
"type": "apiKey",
"in": "header",
"name": "X-Internal-Token"
}
},
"schemas": {
"ApiResponseBase": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"example": true
},
"code": {
"type": "integer",
"format": "int32",
"example": 200
},
"msg": {
"type": "string",
"example": "success"
},
"timestamp": {
"type": "integer",
"format": "int64",
"example": 1740902400000
},
"traceId": {
"type": "string",
"nullable": true
},
"path": {
"type": "string",
"nullable": true
},
"details": {
"type": "object",
"additionalProperties": true,
"nullable": true
}
}
},
"ApiResponseDeviceInfoResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/DeviceInfoResponse"
}
}
}
]
},
"ApiResponseDeviceActionResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/DeviceActionResponse"
}
}
}
]
},
"ApiResponseFileUploadResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/FileUploadResponse"
}
}
}
]
},
"ApiResponseFileDetailResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/FileDetailResponse"
}
}
}
]
},
"ApiResponseInitPlanTemplateResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitPlanTemplateResponse"
}
}
}
]
},
"ApiResponseInitPreviewResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitPreviewResponse"
}
}
}
]
},
"ApiResponseInitCreateTaskResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitCreateTaskResponse"
}
}
}
]
},
"ApiResponseInitTaskDetailResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitTaskDetailResponse"
}
}
}
]
},
"ApiResponseInitTaskStepResponseList": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/InitTaskStepResponse"
}
}
}
}
]
},
"ApiResponseInitTaskStepLogResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitTaskStepLogResponse"
}
}
}
]
},
"ApiResponseInitTaskExecuteResponse": {
"allOf": [
{
"$ref": "#/components/schemas/ApiResponseBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/InitTaskExecuteResponse"
}
}
}
]
},
"DeviceInfoResponse": {
"type": "object",
"properties": {
"deviceId": {
"type": "string"
},
"status": {
"type": "string"
},
"version": {
"type": "string"
},
"presetProductType": {
"type": "string",
"enum": [
"ENTERPRISE",
"INDIRECT",
"DIRECT"
]
},
"presetVersion": {
"type": "string"
},
"presetSource": {
"type": "string"
}
}
},
"DeviceActionResponse": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"accepted": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"acceptedAt": {
"type": "string"
}
}
},
"FileUploadResponse": {
"type": "object",
"properties": {
"fileId": {
"type": "string"
},
"size": {
"type": "integer",
"format": "int64"
},
"storagePath": {
"type": "string"
}
}
},
"FileDetailResponse": {
"type": "object",
"properties": {
"fileId": {
"type": "string"
},
"originalFilename": {
"type": "string"
},
"storagePath": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ACTIVE"
]
},
"size": {
"type": "integer",
"format": "int64"
}
}
},
"InitPlanTemplateResponse": {
"type": "object",
"properties": {
"presetProductType": {
"type": "string",
"enum": [
"ENTERPRISE",
"INDIRECT",
"DIRECT"
]
},
"presetVersion": {
"type": "string"
},
"supportedVersions": {
"type": "array",
"items": {
"type": "string"
}
},
"templatePath": {
"type": "string"
}
}
},
"InitPreviewRequest": {
"type": "object",
"required": [
"orgCodeType",
"orgCode",
"orgNameCn",
"deployMode",
"nodes",
"mq",
"licenses"
],
"properties": {
"orgCodeType": {
"type": "string",
"enum": [
"BIC",
"CIPSID",
"LEI"
]
},
"orgCode": {
"type": "string",
"maxLength": 32
},
"orgNameCn": {
"type": "string",
"maxLength": 128
},
"orgNameEn": {
"type": "string",
"maxLength": 256
},
"deployMode": {
"type": "string",
"enum": [
"SINGLE",
"DUAL",
"QUAD"
]
},
"nodes": {
"$ref": "#/components/schemas/InitPreviewRequestNodes"
},
"mq": {
"$ref": "#/components/schemas/InitPreviewRequestMq"
},
"licenses": {
"$ref": "#/components/schemas/InitPreviewRequestLicenses"
},
"signServer": {
"$ref": "#/components/schemas/InitPreviewRequestSignServer"
},
"directTlq": {
"$ref": "#/components/schemas/InitPreviewRequestDirectTlqConfig"
}
},
"description": "初始化请求体。部分字段为条件必填:\n- 先上传文件到 `/api/v1/files/upload`,再将返回的 `fileId` 填入下述 fileId 字段\n- ENTERPRISE: mq.mqType 仅支持 RABBITMQ 或 TLQ\n- INDIRECT: mq.mqType 仅支持 RABBITMQ 或 RABBITMQ_TLQ\n- DIRECT + RABBITMQ_TLQ 需提供 directTlq\n- DIRECT 需提供 signServer 与 licenses.cfgZipFileId\n- ENTERPRISE + TLQ、INDIRECT + RABBITMQ_TLQ、DIRECT + RABBITMQ_TLQ 需提供 mq.tlqLicenseFileId\n- RABBITMQ_CFMQ 需提供 mq.cfmqConfigFileId\n"
},
"InitPreviewRequestNodes": {
"type": "object",
"required": [
"node01Ip"
],
"properties": {
"node01Ip": {
"type": "string",
"pattern": "^(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}$"
},
"node02Ip": {
"type": "string",
"pattern": "^(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}$"
},
"node03Ip": {
"type": "string",
"pattern": "^(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}$"
},
"node04Ip": {
"type": "string",
"pattern": "^(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}$"
}
}
},
"InitPreviewRequestMq": {
"type": "object",
"required": [
"mqType",
"channelUsername",
"channelPassword"
],
"properties": {
"mqType": {
"type": "string",
"description": "按产品区分的支持方式枚举:\n- ENTERPRISE: RABBITMQ | TLQ\n- INDIRECT: RABBITMQ | RABBITMQ_TLQ\n- DIRECT: RABBITMQ_TLQ | RABBITMQ_CFMQ\n"
},
"channelUsername": {
"type": "string",
"maxLength": 32
},
"channelPassword": {
"type": "string",
"maxLength": 128
},
"tlqLicenseFileId": {
"type": "string",
"maxLength": 128
},
"cfmqConfigFileId": {
"type": "string",
"maxLength": 128
}
}
},
"InitPreviewRequestLicenses": {
"type": "object",
"required": [
"receiverLicenseFileId"
],
"properties": {
"receiverLicenseFileId": {
"type": "string",
"maxLength": 128
},
"cfgZipFileId": {
"type": "string",
"maxLength": 128
}
}
},
"InitPreviewRequestSignServer": {
"type": "object",
"properties": {
"signHost": {
"type": "string",
"maxLength": 64
},
"signPort": {
"type": "integer",
"format": "int32",
"minimum": 1,
"maximum": 65535
},
"signType": {
"type": "string",
"enum": [
"Infosec",
"CFCA"
]
},
"signCertDn": {
"type": "string",
"maxLength": 512
},
"signCertSn": {
"type": "string",
"maxLength": 128
},
"signPassword": {
"type": "string",
"maxLength": 128
}
}
},
"InitPreviewRequestDirectTlqConfig": {
"type": "object",
"properties": {
"localNodeSeq": {
"type": "string",
"enum": [
"A",
"B"
]
},
"upstreamInstitutions": {
"type": "string",
"maxLength": 256,
"description": "上级机构编码,支持分号分隔"
},
"upstreamCocCount": {
"type": "integer",
"format": "int32",
"minimum": 1,
"maximum": 2
}
}
},
"InitPreviewResponse": {
"type": "object",
"properties": {
"resolvedProductType": {
"type": "string"
},
"presetVersion": {
"type": "string"
},
"stepCount": {
"type": "integer",
"format": "int32"
},
"summary": {
"type": "string"
}
}
},
"InitCreateTaskResponse": {
"type": "object",
"properties": {
"taskId": {
"type": "string"
},
"status": {
"type": "string"
},
"resolvedProductType": {
"type": "string"
},
"presetVersion": {
"type": "string"
}
}
},
"InitTaskDetailResponse": {
"type": "object",
"properties": {
"taskId": {
"type": "string"
},
"status": {
"type": "string"
},
"resolvedProductType": {
"type": "string"
},
"presetVersion": {
"type": "string"
},
"orgCode": {
"type": "string"
},
"mqType": {
"type": "string"
},
"deployMode": {
"type": "string"
},
"initPlanJson": {
"type": "string"
}
}
},
"InitTaskStepResponse": {
"type": "object",
"properties": {
"stepNo": {
"type": "integer",
"format": "int32"
},
"stepCode": {
"type": "string"
},
"status": {
"type": "string"
},
"message": {
"type": "string"
},
"commandLine": {
"type": "string"
},
"logPath": {
"type": "string"
},
"exitCode": {
"type": "integer",
"format": "int32",
"nullable": true
}
}
},
"InitTaskStepLogResponse": {
"type": "object",
"properties": {
"taskId": {
"type": "string"
},
"stepNo": {
"type": "integer",
"format": "int32"
},
"stepCode": {
"type": "string"
},
"logPath": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"InitTaskExecuteResponse": {
"type": "object",
"properties": {
"taskId": {
"type": "string"
},
"status": {
"type": "string"
},
"totalSteps": {
"type": "integer",
"format": "int32"
},
"successSteps": {
"type": "integer",
"format": "int32"
}
}
}
}
}
}