{"openapi":"3.0.0","paths":{"/openapi/v1/apps":{"post":{"operationId":"create","parameters":[],"responses":{"201":{"description":""}}},"get":{"operationId":"list","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}":{"get":{"operationId":"get","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"patch":{"operationId":"patch","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"delete":{"operationId":"delete","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/scopes":{"patch":{"operationId":"patchScopes","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/keys":{"post":{"operationId":"create","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}},"get":{"operationId":"list","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/keys/{keyId}":{"delete":{"operationId":"revoke","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/keys/{keyId}/regenerate":{"post":{"operationId":"regenerate","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/apps/{clientId}/keys/{keyId}/name":{"patch":{"operationId":"rename","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/keys/{keyId}/renew":{"post":{"operationId":"renew","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/search":{"get":{"operationId":"searchHits","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"types","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/project/list":{"get":{"operationId":"listProjects","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}},{"name":"ragStatus","required":true,"in":"query","schema":{"type":"string"}},{"name":"ownerId","required":true,"in":"query","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"includeArchived","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/project/detail":{"get":{"operationId":"getProject","parameters":[{"name":"id","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/project/create":{"post":{"operationId":"createProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/project/update":{"post":{"operationId":"updateProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/project/archive":{"post":{"operationId":"archiveProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/project/restore":{"post":{"operationId":"restoreProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/project/delete":{"post":{"operationId":"deleteProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/risk/list":{"get":{"operationId":"listRisks","parameters":[{"name":"projectId","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"severity","required":true,"in":"query","schema":{"type":"string"}},{"name":"ownerId","required":true,"in":"query","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdBefore","required":true,"in":"query","schema":{"type":"string"}},{"name":"includeArchived","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/risk/create":{"post":{"operationId":"createRisk","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/risk/update":{"post":{"operationId":"updateRisk","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/risk/archive":{"post":{"operationId":"archiveRisk","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/risk/restore":{"post":{"operationId":"restoreRisk","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/task/list":{"get":{"operationId":"listTasks","parameters":[{"name":"projectId","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"assigneeId","required":true,"in":"query","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"dueAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"dueBefore","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdBefore","required":true,"in":"query","schema":{"type":"string"}},{"name":"includeArchived","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/task/create":{"post":{"operationId":"createTask","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/task/update":{"post":{"operationId":"updateTask","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/task/archive":{"post":{"operationId":"archiveTask","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/task/restore":{"post":{"operationId":"restoreTask","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/task/batch":{"post":{"operationId":"batchCreateTasks","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/list":{"get":{"operationId":"listActionItems","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"projectId","required":true,"in":"query","schema":{"type":"string"}},{"name":"ownerHint","required":true,"in":"query","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"dueAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"dueBefore","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"createdBefore","required":true,"in":"query","schema":{"type":"string"}},{"name":"sort","required":true,"in":"query","schema":{"type":"string"}},{"name":"sortDir","required":true,"in":"query","schema":{"type":"string"}},{"name":"includeArchived","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/action-item/create":{"post":{"operationId":"createActionItem","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/attach-project":{"post":{"operationId":"attachActionItemToProject","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/update":{"post":{"operationId":"updateActionItem","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/archive":{"post":{"operationId":"archiveActionItem","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/restore":{"post":{"operationId":"restoreActionItem","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/delete":{"post":{"operationId":"deleteActionItem","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/batch":{"post":{"operationId":"batchCreateActionItems","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/{actionItemId}/log":{"post":{"operationId":"createExecutionLog","parameters":[{"name":"actionItemId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/action-item/{actionItemId}/logs":{"get":{"operationId":"listExecutionLogs","parameters":[{"name":"actionItemId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"kind","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca":{"get":{"operationId":"list","parameters":[{"name":"phase","required":true,"in":"query","schema":{"type":"string"}},{"name":"projectId","required":true,"in":"query","schema":{"type":"string"}},{"name":"sourceRiskId","required":true,"in":"query","schema":{"type":"string"}},{"name":"includeArchived","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"create","parameters":[],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}":{"get":{"operationId":"get","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/advance":{"post":{"operationId":"advance","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/archive":{"post":{"operationId":"archive","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/nodes":{"get":{"operationId":"listNodes","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"kind","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"createNode","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/nodes/{nodeId}":{"delete":{"operationId":"deleteNode","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"nodeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/corrective-actions":{"post":{"operationId":"emitCorrectiveAction","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}},"get":{"operationId":"listCorrectiveActions","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/similar":{"get":{"operationId":"findSimilar","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/5why/suggest":{"post":{"operationId":"suggest5Why","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/look-across":{"get":{"operationId":"listLookAcross","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/look-across/suggest":{"post":{"operationId":"suggestLookAcross","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/look-across/{suggestionId}/apply":{"post":{"operationId":"applyLookAcross","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"suggestionId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/resource/rrca/{rrcaId}/look-across/{suggestionId}/reject":{"post":{"operationId":"rejectLookAcross","parameters":[{"name":"rrcaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"suggestionId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/openapi.json":{"get":{"operationId":"openapiJson","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/oauth/device/code":{"post":{"operationId":"deviceCode","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/oauth/device/approve":{"post":{"operationId":"deviceApprove","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/oauth/token":{"post":{"operationId":"token","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/oauth/refresh":{"post":{"operationId":"refresh","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/oauth/revoke":{"post":{"operationId":"revoke","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/webhooks":{"post":{"operationId":"create","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}},"get":{"operationId":"list","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/webhooks/{subId}":{"delete":{"operationId":"delete","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"subId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/openapi/v1/apps/{clientId}/webhooks/{subId}/test":{"post":{"operationId":"test","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}},{"name":"subId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/openapi/v1/webhooks/deliveries":{"get":{"operationId":"listDeliveries","parameters":[],"responses":{"200":{"description":""}}}},"/openapi/v1/webhooks/deliveries/{deliveryId}/replay":{"post":{"operationId":"replay","parameters":[{"name":"deliveryId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}}}}},"info":{"title":"EasyAPI","description":"EasyPM 开放平台 API。鉴权: `X-Client-ID: eacli_xxx` + `Authorization: eapk_live_xxx` (无 Bearer 前缀)。","version":"0.1.0","contact":{}},"tags":[{"name":"apps","description":"应用注册 / 列表 / 删除 / 更新"},{"name":"keys","description":"API Key 创建 / 列表 / 撤销"},{"name":"resource","description":"EasyAPI 资源（project / risk）"}],"servers":[],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization"},"clientId":{"type":"apiKey","in":"header","name":"X-Client-ID"}},"schemas":{}}}